aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBetter Together Rust Devs <no-reply@google.com>2023-09-06 23:41:16 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-09-06 23:41:16 +0000
commit70108b85d5538c51f763455dd8e56c78871196bc (patch)
tree3e379aa41aa8e4ac225bf201d32fa3338c630d20
parente58263ca7da4a32473fc1b00f5afedab21eb1829 (diff)
parenta2f8acd56f9e56aa8d11d302e5257429239005a0 (diff)
downloadbeto-rust-70108b85d5538c51f763455dd8e56c78871196bc.tar.gz
Project import generated by Copybara. am: 83c3408737 am: 1da8c88b6e am: a2f8acd56f
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/rust/beto-rust/+/24670016 Change-Id: I23ab2844a92eb5b6ca60bd64ab78c2884cd039a6 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--.dockerignore14
-rw-r--r--.gitignore3
-rw-r--r--Dockerfile (renamed from nearby/Dockerfile)14
-rw-r--r--METADATA2
-rw-r--r--nearby/.cargo/config-boringssl.toml3
-rw-r--r--nearby/.dockerignore17
-rw-r--r--nearby/Cargo.lock1282
-rw-r--r--nearby/Cargo.toml96
-rw-r--r--nearby/README.md2
-rw-r--r--nearby/connections/ukey2/ukey2_c_ffi/Cargo.toml1
-rw-r--r--nearby/connections/ukey2/ukey2_c_ffi/cpp/CMakeLists.txt48
-rw-r--r--nearby/connections/ukey2/ukey2_c_ffi/cpp/ukey2_ffi.h2
-rw-r--r--nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock424
-rw-r--r--nearby/connections/ukey2/ukey2_jni/java/build.gradle.kts5
-rw-r--r--nearby/connections/ukey2/ukey2_jni/java/src/jmh/java/com/google/security/cryptauth/lib/securegcm/Ukey2Benchmark.java83
-rw-r--r--nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DConnectionContextV1.java17
-rw-r--r--nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DHandshakeContext.java43
-rw-r--r--nearby/connections/ukey2/ukey2_jni/java/src/test/java/com/google/security/cryptauth/lib/securegcm/TestUkey2Protocol.kt28
-rw-r--r--nearby/connections/ukey2/ukey2_jni/src/lib.rs4
-rw-r--r--nearby/crypto/crypto_provider/Cargo.toml4
-rw-r--r--nearby/crypto/crypto_provider/src/aead/aes_gcm_siv.rs23
-rw-r--r--nearby/crypto/crypto_provider/src/aead/mod.rs50
-rw-r--r--nearby/crypto/crypto_provider/src/aes/ctr.rs38
-rw-r--r--nearby/crypto/crypto_provider/src/aes/gcm_siv.rs48
-rw-r--r--nearby/crypto/crypto_provider/src/aes/mod.rs5
-rw-r--r--nearby/crypto/crypto_provider/src/ed25519.rs47
-rw-r--r--nearby/crypto/crypto_provider/src/hmac.rs2
-rw-r--r--nearby/crypto/crypto_provider/src/lib.rs11
-rw-r--r--nearby/crypto/crypto_provider_boringssl/Cargo.lock142
-rw-r--r--nearby/crypto/crypto_provider_boringssl/src/ed25519.rs111
-rw-r--r--nearby/crypto/crypto_provider_boringssl/src/lib.rs5
-rw-r--r--nearby/crypto/crypto_provider_default/Cargo.toml2
-rw-r--r--nearby/crypto/crypto_provider_default/src/lib.rs6
-rw-r--r--nearby/crypto/crypto_provider_openssl/Cargo.toml7
-rw-r--r--nearby/crypto/crypto_provider_openssl/src/aes.rs53
-rw-r--r--nearby/crypto/crypto_provider_openssl/src/ed25519.rs27
-rw-r--r--nearby/crypto/crypto_provider_openssl/src/lib.rs4
-rw-r--r--nearby/crypto/crypto_provider_rustcrypto/Cargo.toml5
-rw-r--r--nearby/crypto/crypto_provider_rustcrypto/src/aead/aes_gcm_siv.rs (renamed from nearby/crypto/crypto_provider_rustcrypto/src/aes/gcm_siv.rs)41
-rw-r--r--nearby/crypto/crypto_provider_rustcrypto/src/aead/mod.rs15
-rw-r--r--nearby/crypto/crypto_provider_rustcrypto/src/aes/ctr.rs89
-rw-r--r--nearby/crypto/crypto_provider_rustcrypto/src/aes/mod.rs66
-rw-r--r--nearby/crypto/crypto_provider_rustcrypto/src/ed25519.rs26
-rw-r--r--nearby/crypto/crypto_provider_rustcrypto/src/lib.rs12
-rw-r--r--nearby/crypto/crypto_provider_stubs/src/lib.rs75
-rw-r--r--nearby/crypto/crypto_provider_test/Cargo.toml2
-rw-r--r--nearby/crypto/crypto_provider_test/fuzz/Cargo.lock190
-rw-r--r--nearby/crypto/crypto_provider_test/src/aead/aes_gcm_siv.rs (renamed from nearby/crypto/crypto_provider_test/src/aes/gcm_siv.rs)10
-rw-r--r--nearby/crypto/crypto_provider_test/src/aead/mod.rs16
-rw-r--r--nearby/crypto/crypto_provider_test/src/aes/ctr.rs10
-rw-r--r--nearby/crypto/crypto_provider_test/src/aes/mod.rs1
-rw-r--r--nearby/crypto/crypto_provider_test/src/ed25519.rs19
-rw-r--r--nearby/crypto/crypto_provider_test/src/lib.rs1
-rw-r--r--nearby/crypto/crypto_provider_test/src/p256.rs1
-rw-r--r--nearby/deny.toml2
-rw-r--r--nearby/presence/CMakeLists.txt68
-rw-r--r--nearby/presence/README.md77
-rw-r--r--nearby/presence/array_view/src/lib.rs4
-rw-r--r--nearby/presence/handle_map/Cargo.toml19
-rw-r--r--nearby/presence/handle_map/benches/benches.rs330
-rw-r--r--nearby/presence/handle_map/src/lib.rs608
-rw-r--r--nearby/presence/handle_map/src/tests.rs288
-rw-r--r--nearby/presence/ldt/fuzz/Cargo.lock162
-rw-r--r--nearby/presence/ldt_np_adv/fuzz/Cargo.lock162
-rw-r--r--nearby/presence/ldt_np_adv/src/lib.rs11
-rw-r--r--nearby/presence/ldt_np_adv_ffi/.cargo/config-boringssl.toml2
-rw-r--r--nearby/presence/ldt_np_adv_ffi/Cargo.lock201
-rw-r--r--nearby/presence/ldt_np_adv_ffi/Cargo.toml14
-rw-r--r--nearby/presence/ldt_np_adv_ffi/deny.toml1
-rw-r--r--nearby/presence/ldt_np_adv_ffi/src/lib.rs2
-rw-r--r--nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt24
-rw-r--r--nearby/presence/ldt_np_c_sample/CMakeLists.txt29
-rw-r--r--nearby/presence/ldt_np_c_sample/tests/CMakeLists.txt85
-rw-r--r--nearby/presence/ldt_np_c_sample/tests/ldt_benchmarks.cc (renamed from nearby/presence/ldt_np_c_sample/tests/benchmarks.cc)0
-rw-r--r--nearby/presence/ldt_np_c_sample/tests/ldt_ffi_tests.cc300
-rw-r--r--nearby/presence/ldt_np_c_sample/tests/np_ffi_tests.cc308
-rw-r--r--nearby/presence/ldt_np_jni/.gitignore1
-rw-r--r--nearby/presence/ldt_np_jni/Cargo.toml25
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/build.gradle.kts38
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.jarbin0 -> 60756 bytes
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.properties5
-rwxr-xr-xnearby/presence/ldt_np_jni/java/LdtNpJni/gradlew240
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/gradlew.bat91
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/settings.gradle.kts17
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpCipher.java162
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJni.java62
-rw-r--r--nearby/presence/ldt_np_jni/java/LdtNpJni/src/test/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJniTests.kt51
-rw-r--r--nearby/presence/ldt_np_jni/src/lib.rs319
-rw-r--r--nearby/presence/np_adv/Cargo.toml42
-rw-r--r--nearby/presence/np_adv/benches/deser_adv.rs423
-rw-r--r--nearby/presence/np_adv/resources/test/mic-encrypted-test-vectors.json2295
-rw-r--r--nearby/presence/np_adv/src/credential/mod.rs85
-rw-r--r--nearby/presence/np_adv/src/credential/simple.rs148
-rw-r--r--nearby/presence/np_adv/src/credential/source.rs150
-rw-r--r--nearby/presence/np_adv/src/credential/v0.rs80
-rw-r--r--nearby/presence/np_adv/src/credential/v1.rs343
-rw-r--r--nearby/presence/np_adv/src/de_type.rs88
-rw-r--r--nearby/presence/np_adv/src/deser_v0_tests.rs266
-rw-r--r--nearby/presence/np_adv/src/deser_v1_tests.rs522
-rw-r--r--nearby/presence/np_adv/src/extended/data_elements/mod.rs305
-rw-r--r--nearby/presence/np_adv/src/extended/data_elements/tests.rs183
-rw-r--r--nearby/presence/np_adv/src/extended/de_type.rs143
-rw-r--r--nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mic_decrypt_tests.rs434
-rw-r--r--nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mod.rs477
-rw-r--r--nearby/presence/np_adv/src/extended/deserialize/encrypted_section/signature_decrypt_tests.rs527
-rw-r--r--nearby/presence/np_adv/src/extended/deserialize/mod.rs930
-rw-r--r--nearby/presence/np_adv/src/extended/deserialize/parse_tests.rs711
-rw-r--r--nearby/presence/np_adv/src/extended/deserialize/section_tests.rs679
-rw-r--r--nearby/presence/np_adv/src/extended/deserialize/test_stubs.rs115
-rw-r--r--nearby/presence/np_adv/src/extended/mod.rs93
-rw-r--r--nearby/presence/np_adv/src/extended/section_signature_payload.rs149
-rw-r--r--nearby/presence/np_adv/src/extended/serialize/adv_tests.rs106
-rw-r--r--nearby/presence/np_adv/src/extended/serialize/de_header_tests.rs122
-rw-r--r--nearby/presence/np_adv/src/extended/serialize/mod.rs876
-rw-r--r--nearby/presence/np_adv/src/extended/serialize/section_tests.rs852
-rw-r--r--nearby/presence/np_adv/src/extended/serialize/test_vectors.rs193
-rw-r--r--nearby/presence/np_adv/src/header_parse_tests.rs58
-rw-r--r--nearby/presence/np_adv/src/legacy/actions/macros.rs138
-rw-r--r--nearby/presence/np_adv/src/legacy/actions/mod.rs442
-rw-r--r--nearby/presence/np_adv/src/legacy/actions/tests.rs378
-rw-r--r--nearby/presence/np_adv/src/legacy/data_elements.rs109
-rw-r--r--nearby/presence/np_adv/src/legacy/de_type/mod.rs355
-rw-r--r--nearby/presence/np_adv/src/legacy/de_type/tests.rs112
-rw-r--r--nearby/presence/np_adv/src/legacy/deserialize/mod.rs413
-rw-r--r--nearby/presence/np_adv/src/legacy/deserialize/tests.rs788
-rw-r--r--nearby/presence/np_adv/src/legacy/mod.rs66
-rw-r--r--nearby/presence/np_adv/src/legacy/random_data_elements.rs170
-rw-r--r--nearby/presence/np_adv/src/legacy/serialize/mod.rs391
-rw-r--r--nearby/presence/np_adv/src/legacy/serialize/tests.rs148
-rw-r--r--nearby/presence/np_adv/src/lib.rs637
-rw-r--r--nearby/presence/np_adv/src/shared_data.rs77
-rw-r--r--nearby/presence/np_adv/test.json24122
-rw-r--r--nearby/presence/np_adv/tests/examples_v0.rs101
-rw-r--r--nearby/presence/np_adv/tests/examples_v1.rs182
-rw-r--r--nearby/presence/np_c_ffi/Cargo.lock1221
-rw-r--r--nearby/presence/np_c_ffi/Cargo.toml31
-rw-r--r--nearby/presence/np_c_ffi/build.rs63
-rw-r--r--nearby/presence/np_c_ffi/cbindgen_configs/c_config.toml50
-rw-r--r--nearby/presence/np_c_ffi/cbindgen_configs/cpp_config.toml44
-rw-r--r--nearby/presence/np_c_ffi/include/c/np_c_ffi.h890
-rw-r--r--nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_functions.h268
-rw-r--r--nearby/presence/np_c_ffi/include/cpp/np_cpp_ffi_types.h456
-rw-r--r--nearby/presence/np_c_ffi/rust-toolchain.toml2
-rw-r--r--nearby/presence/np_c_ffi/src/credentials.rs51
-rw-r--r--nearby/presence/np_c_ffi/src/deserialize/mod.rs87
-rw-r--r--nearby/presence/np_c_ffi/src/deserialize/v0.rs149
-rw-r--r--nearby/presence/np_c_ffi/src/deserialize/v1.rs114
-rw-r--r--nearby/presence/np_c_ffi/src/lib.rs230
-rw-r--r--nearby/presence/np_cpp_ffi/CMakeLists.txt48
-rw-r--r--nearby/presence/np_cpp_ffi/benchmarks/CMakeLists.txt32
-rw-r--r--nearby/presence/np_cpp_ffi/benchmarks/np_ffi_bench.cc102
-rw-r--r--nearby/presence/np_cpp_ffi/fuzz/CMakeLists.txt32
-rw-r--r--nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvEmptybin0 -> 1 bytes
-rw-r--r--nearby/presence/np_cpp_ffi/fuzz/corpus/V0AdvSimplebin0 -> 4 bytes
-rw-r--r--nearby/presence/np_cpp_ffi/fuzz/corpus/V1AdvSimple1
-rw-r--r--nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_deserialize.cc48
-rw-r--r--nearby/presence/np_cpp_ffi/fuzz/fuzzer_np_cpp_valid_header.cc54
-rw-r--r--nearby/presence/np_cpp_ffi/fuzz/generate_fuzz_corpus.cc44
-rw-r--r--nearby/presence/np_cpp_ffi/include/nearby_protocol.h518
-rw-r--r--nearby/presence/np_cpp_ffi/nearby_protocol.cc486
-rw-r--r--[-rwxr-xr-x]nearby/presence/np_cpp_ffi/sample/CMakeLists.txt (renamed from nearby/scripts/check-everything.sh)20
-rw-r--r--nearby/presence/np_cpp_ffi/sample/main.cpp272
-rw-r--r--nearby/presence/np_cpp_ffi/shared/shared_test_util.cc50
-rw-r--r--nearby/presence/np_cpp_ffi/shared/shared_test_util.h44
-rw-r--r--nearby/presence/np_cpp_ffi/tests/CMakeLists.txt44
-rw-r--r--nearby/presence/np_cpp_ffi/tests/byte_buffer_tests.cc84
-rw-r--r--nearby/presence/np_cpp_ffi/tests/credential_book_tests.cc80
-rw-r--r--nearby/presence/np_cpp_ffi/tests/deserialize_result_tests.cc286
-rw-r--r--nearby/presence/np_cpp_ffi/tests/deserialize_v0_tests.cc610
-rw-r--r--nearby/presence/np_cpp_ffi/tests/deserialize_v1_tests.cc221
-rw-r--r--nearby/presence/np_cpp_ffi/tests/global_config_tests.cc205
-rw-r--r--nearby/presence/np_ed25519/Cargo.toml14
-rw-r--r--nearby/presence/np_ed25519/src/lib.rs286
-rw-r--r--nearby/presence/np_ffi_core/Cargo.toml17
-rw-r--r--nearby/presence/np_ffi_core/src/common.rs293
-rw-r--r--nearby/presence/np_ffi_core/src/credentials.rs88
-rw-r--r--nearby/presence/np_ffi_core/src/deserialize/mod.rs168
-rw-r--r--nearby/presence/np_ffi_core/src/deserialize/v0.rs445
-rw-r--r--nearby/presence/np_ffi_core/src/deserialize/v1.rs401
-rw-r--r--nearby/presence/np_ffi_core/src/lib.rs32
-rw-r--r--nearby/presence/np_ffi_core/src/utils.rs51
-rw-r--r--nearby/presence/np_hkdf/resources/test/hkdf-test-vectors.json28802
-rw-r--r--nearby/presence/np_hkdf/src/lib.rs26
-rw-r--r--nearby/presence/np_hkdf/src/v1_salt.rs5
-rw-r--r--nearby/presence/np_hkdf/tests/hmac.rs42
-rw-r--r--nearby/presence/np_hkdf/tests/test_vectors.rs14
-rw-r--r--nearby/presence/sink/Cargo.toml12
-rw-r--r--nearby/presence/sink/src/lib.rs91
-rw-r--r--nearby/presence/xts_aes/fuzz/Cargo.lock162
-rw-r--r--nearby/presence/xts_aes/src/lib.rs6
-rwxr-xr-xnearby/scripts/build-script.sh279
-rw-r--r--nearby/scripts/openssl-patches/0002-fix-boringssl-dsa-build-errors.patch25
-rw-r--r--nearby/src/crypto_ffi.rs175
-rw-r--r--nearby/src/ffi.rs124
-rw-r--r--nearby/src/file_header/license.rs45
-rw-r--r--nearby/src/file_header/mod.rs559
-rw-r--r--nearby/src/fuzzers.rs81
-rw-r--r--nearby/src/jni.rs25
-rw-r--r--nearby/src/license.rs103
-rw-r--r--nearby/src/main.rs178
-rw-r--r--nearby/src/support.rs195
-rw-r--r--nearby/src/ukey2.rs41
-rw-r--r--remoteauth/Cargo.lock202
-rw-r--r--remoteauth/Cargo.toml16
-rw-r--r--remoteauth/ctap_protocol/Cargo.toml10
-rw-r--r--remoteauth/ctap_protocol/src/lib.rs90
-rw-r--r--remoteauth/platform/Cargo.toml12
-rw-r--r--remoteauth/platform/src/lib.rs25
-rw-r--r--remoteauth/remote_auth_protool/Cargo.toml12
-rw-r--r--remoteauth/remote_auth_protool/src/lib.rs42
-rw-r--r--remoteauth/remote_auth_protool/src/remote_auth_service.rs251
211 files changed, 58247 insertions, 29119 deletions
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..d8f642c
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,14 @@
+**
+
+!nearby/.cargo
+!nearby/connections/
+!nearby/crypto/
+!nearby/presence/
+nearby/presence/cmake-build
+!nearby/scripts/
+!nearby/src/
+!nearby/Cargo.lock
+!nearby/Cargo.toml
+!nearby/deny.toml
+!nearby/rustfmt.toml
+!third_party
diff --git a/.gitignore b/.gitignore
index 8511834..c1baf38 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,5 +8,6 @@ boringssl-build/
cmake-build/
nearby/presence/lib/
target/
-nearby/connections/ukey2/ukey2_c_ffi/cpp/build
+nearby/connections/ukey2/ukey2_c_ffi/cpp/build/
+nearby/presence/ldt_np_jni/java/LdtNpJni/build/
**/auth_token.txt
diff --git a/nearby/Dockerfile b/Dockerfile
index cd60ac8..00dffc7 100644
--- a/nearby/Dockerfile
+++ b/Dockerfile
@@ -34,25 +34,23 @@ RUN cargo install cargo-prefetch \
# Must use 0.64.0, as version >= 0.65.0 removes the option "--size_t-is-usize", an option
# used by boringssl when generating rust bindings
RUN cargo install bindgen-cli --version 0.64.0
+RUN cargo install wasm-pack --color never 2>&1
RUN rustup toolchain add nightly
# boringssl build wants go
RUN curl -L https://go.dev/dl/go1.20.2.linux-amd64.tar.gz | tar -C /usr/local -xz
ENV PATH="$PATH:/usr/local/go/bin"
-# when the image runs build and test everything to ensure env is setup correctly
-CMD ["cargo", "run", "--", "check-everything"]
-
# needed for boringssl git operations
RUN git config --global user.email "docker@example.com"
RUN git config --global user.name "NP Docker"
-RUN mkdir -p /google/nearby
+RUN mkdir -p /google
+COPY . /google
+
WORKDIR /google/nearby
# prefetch dependencies so later build steps don't re-download on source changes
-COPY Cargo.toml Cargo.lock ./
RUN cargo prefetch --lockfile Cargo.lock
-# copy repo into workdir of docker containter
-COPY . .
-
+# when the image runs build and test everything to ensure env is setup correctly
+CMD ["cargo", "run", "--", "check-everything"]
diff --git a/METADATA b/METADATA
index c172c73..732e21b 100644
--- a/METADATA
+++ b/METADATA
@@ -12,6 +12,6 @@ third_party {
value: "https://team.googlesource.com/beto-rust-devs/beto-core-staging"
}
version: "cf6c62c6e28c808634a13a7be092edef40ec6104"
- last_upgrade_date { year: 2023 month: 4 day: 20 }
+ last_upgrade_date { year: 2023 month: 9 day: 5 }
license_type: NOTICE
}
diff --git a/nearby/.cargo/config-boringssl.toml b/nearby/.cargo/config-boringssl.toml
index d0870ce..bab3518 100644
--- a/nearby/.cargo/config-boringssl.toml
+++ b/nearby/.cargo/config-boringssl.toml
@@ -1,6 +1,7 @@
# The packages to override
paths = [
- "../boringssl-build/boringssl/build/rust/bssl-sys",
+ "../boringssl-build/boringssl/rust/bssl-crypto",
+ "../boringssl-build/boringssl/rust/bssl-sys",
"../boringssl-build/rust-openssl/openssl",
"../boringssl-build/rust-openssl/openssl-sys",
]
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 d048e56..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 @@ dependencies = [
[[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,10 +55,21 @@ dependencies = [
]
[[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 = "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",
]
@@ -67,6 +81,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
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"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
name = "anes"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -89,15 +124,15 @@ dependencies = [
[[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",
]
@@ -123,9 +158,9 @@ dependencies = [
[[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"
@@ -153,6 +188,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
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"
@@ -166,9 +216,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[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"
@@ -183,6 +233,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
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"
@@ -220,10 +276,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "312d12393c060384f2e6ed14c7b4be37b3dd90249857485613c1a91b9a1abb5c"
[[package]]
+name = "bstr"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
+name = "build-scripts"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "base64 0.21.2",
+ "chrono",
+ "clap 4.3.19",
+ "crossbeam",
+ "env_logger",
+ "globset",
+ "log",
+ "owo-colors",
+ "reqwest",
+ "semver",
+ "shell-escape",
+ "tempfile",
+ "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"
@@ -271,6 +360,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
+name = "chrono"
+version = "0.4.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "winapi",
+]
+
+[[package]]
name = "ciborium"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -313,7 +414,7 @@ version = "3.2.25"
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",
@@ -321,9 +422,9 @@ dependencies = [
[[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",
@@ -332,27 +433,26 @@ dependencies = [
[[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]]
@@ -366,9 +466,9 @@ dependencies = [
[[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"
@@ -388,15 +488,21 @@ dependencies = [
[[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"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
[[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",
]
@@ -447,6 +553,20 @@ dependencies = [
]
[[package]]
+name = "crossbeam"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+dependencies = [
+ "cfg-if",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
name = "crossbeam-channel"
version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -469,9 +589,9 @@ dependencies = [
[[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",
@@ -481,10 +601,20 @@ dependencies = [
]
[[package]]
+name = "crossbeam-queue"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[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",
]
@@ -550,11 +680,12 @@ version = "0.1.0"
dependencies = [
"cfg-if",
"crypto_provider",
+ "crypto_provider_stubs",
"crypto_provider_test",
"hex-literal",
"openssl",
"ouroboros",
- "rstest",
+ "rstest 0.17.0",
]
[[package]]
@@ -600,7 +731,7 @@ dependencies = [
"hex-literal",
"rand",
"rand_ext",
- "rstest",
+ "rstest 0.17.0",
"rstest_reuse",
"test_helper",
"wycheproof",
@@ -617,24 +748,37 @@ dependencies = [
[[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 = "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.28",
+]
+
+[[package]]
name = "der"
-version = "0.7.5"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
dependencies = [
"const-oid",
"zeroize",
@@ -659,9 +803,9 @@ checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
[[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",
@@ -680,9 +824,9 @@ dependencies = [
[[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",
@@ -694,15 +838,15 @@ dependencies = [
[[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",
@@ -718,10 +862,32 @@ dependencies = [
]
[[package]]
+name = "encoding_rs"
+version = "0.8.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[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",
@@ -740,12 +906,9 @@ dependencies = [
[[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"
@@ -774,6 +937,12 @@ dependencies = [
]
[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
name = "foreign-types"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -789,6 +958,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]]
+name = "form_urlencoded"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
name = "futures"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -844,7 +1022,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.15",
+ "syn 2.0.28",
]
[[package]]
@@ -896,9 +1074,9 @@ dependencies = [
[[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",
@@ -906,6 +1084,25 @@ dependencies = [
]
[[package]]
+name = "gimli"
+version = "0.27.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+
+[[package]]
+name = "globset"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aca8bbd8e0707c1887a8bbb7e6b40e228f251ff5d62c8220a4a7a53c73aff006"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "fnv",
+ "log",
+ "regex",
+]
+
+[[package]]
name = "group"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -917,18 +1114,59 @@ dependencies = [
]
[[package]]
+name = "h2"
+version = "0.3.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
name = "half"
version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
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"
@@ -959,18 +1197,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
[[package]]
name = "hex"
@@ -980,9 +1209,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[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"
@@ -1003,16 +1232,133 @@ dependencies = [
]
[[package]]
+name = "http"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
name = "indexmap"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
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"
@@ -1023,33 +1369,18 @@ dependencies = [
]
[[package]]
-name = "instant"
-version = "0.1.12"
+name = "ipnet"
+version = "2.8.0"
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",
-]
+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",
]
@@ -1065,9 +1396,9 @@ dependencies = [
[[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"
@@ -1093,9 +1424,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[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",
]
@@ -1115,9 +1446,9 @@ version = "0.1.0"
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",
@@ -1142,7 +1473,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"array_view",
- "base64 0.21.0",
+ "base64 0.21.2",
"criterion",
"crypto_provider",
"crypto_provider_default",
@@ -1161,29 +1492,36 @@ dependencies = [
]
[[package]]
-name = "ldt_tbc"
+name = "ldt_np_jni"
version = "0.1.0"
dependencies = [
+ "cfg-if",
"crypto_provider",
+ "crypto_provider_default",
+ "jni",
+ "ldt",
+ "ldt_np_adv",
+ "np_hkdf",
]
[[package]]
-name = "libc"
-version = "0.2.144"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+name = "ldt_tbc"
+version = "0.1.0"
+dependencies = [
+ "crypto_provider",
+]
[[package]]
-name = "libm"
-version = "0.1.4"
+name = "libc"
+version = "0.2.147"
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"
@@ -1194,9 +1532,9 @@ dependencies = [
[[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",
@@ -1204,12 +1542,9 @@ dependencies = [
[[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"
@@ -1219,14 +1554,20 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[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",
]
[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
name = "minimal-lexical"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1242,6 +1583,17 @@ dependencies = [
]
[[package]]
+name = "mio"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
name = "nom"
version = "7.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1252,6 +1604,56 @@ dependencies = [
]
[[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 = [
@@ -1291,28 +1693,37 @@ dependencies = [
[[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 = "object"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+dependencies = [
+ "memchr",
+]
+
+[[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"
@@ -1328,11 +1739,11 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[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",
@@ -1349,14 +1760,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
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",
@@ -1367,34 +1778,41 @@ dependencies = [
[[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]]
+name = "owo-colors"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
+
+[[package]]
name = "p256"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1405,20 +1823,16 @@ dependencies = [
]
[[package]]
-name = "packed_simd_2"
-version = "0.3.8"
+name = "percent-encoding"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
-dependencies = [
- "cfg-if",
- "libm",
-]
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[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"
@@ -1450,9 +1864,9 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
[[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",
@@ -1463,24 +1877,24 @@ dependencies = [
[[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",
@@ -1489,6 +1903,12 @@ dependencies = [
]
[[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"
@@ -1496,9 +1916,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[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",
]
@@ -1529,9 +1949,9 @@ dependencies = [
[[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",
]
@@ -1589,9 +2009,9 @@ dependencies = [
[[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",
]
@@ -1660,12 +2080,6 @@ dependencies = [
]
[[package]]
-name = "raw-parts"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1e22ce49f28be0887a992cf42172c8c75facdb74e3e1a7eb0f459cf2fcc95d7"
-
-[[package]]
name = "rayon"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1693,14 +2107,26 @@ version = "0.3.5"
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",
+ "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",
@@ -1709,9 +2135,63 @@ dependencies = [
[[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"
+version = "0.11.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+dependencies = [
+ "base64 0.21.2",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "ring"
+version = "0.16.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+dependencies = [
+ "cc",
+ "libc",
+ "once_cell",
+ "spin 0.5.2",
+ "untrusted",
+ "web-sys",
+ "winapi",
+]
[[package]]
name = "rstest"
@@ -1721,7 +2201,17 @@ checksum = "b07f2d176c472198ec1e6551dc7da28f1c089652f66a7b722676c2238ebc0edf"
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",
]
@@ -1740,6 +2230,20 @@ dependencies = [
]
[[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"
@@ -1752,6 +2256,12 @@ dependencies = [
]
[[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"
@@ -1762,23 +2272,59 @@ dependencies = [
[[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",
]
[[package]]
+name = "rustls"
+version = "0.21.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79ea77c539259495ce8ca47f53e66ae0330a8819f67e23ac96ca02f50e7b7d36"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+dependencies = [
+ "base64 0.21.2",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[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"
@@ -1791,15 +2337,25 @@ dependencies = [
[[package]]
name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sct"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+dependencies = [
+ "ring",
+ "untrusted",
+]
[[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",
@@ -1810,35 +2366,35 @@ dependencies = [
[[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",
@@ -1846,10 +2402,22 @@ dependencies = [
]
[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[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",
@@ -1857,12 +2425,25 @@ dependencies = [
]
[[package]]
+name = "shell-escape"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
+
+[[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 = "slab"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1872,6 +2453,16 @@ dependencies = [
]
[[package]]
+name = "socket2"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
name = "spin"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1897,16 +2488,41 @@ dependencies = [
]
[[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 = "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.4.1"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
[[package]]
name = "syn"
@@ -1921,9 +2537,9 @@ dependencies = [
[[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",
@@ -1932,15 +2548,24 @@ dependencies = [
[[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]]
+name = "termcolor"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+dependencies = [
+ "winapi-util",
]
[[package]]
@@ -1959,22 +2584,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[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]]
@@ -1988,6 +2613,94 @@ dependencies = [
]
[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+dependencies = [
+ "autocfg",
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+dependencies = [
+ "cfg-if",
+ "pin-project-lite",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+[[package]]
name = "typenum"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2005,7 +2718,6 @@ dependencies = [
"log",
"rand",
"rand_chacha",
- "raw-parts",
"ukey2_connections",
"ukey2_rs",
]
@@ -2021,7 +2733,7 @@ dependencies = [
"crypto_provider_rustcrypto",
"nom",
"rand",
- "rstest",
+ "rstest 0.16.0",
"ukey2_proto",
"ukey2_rs",
]
@@ -2063,7 +2775,7 @@ dependencies = [
"log",
"num-bigint",
"rand",
- "rstest",
+ "rstest 0.16.0",
"sha2",
"ukey2_proto",
]
@@ -2072,29 +2784,61 @@ dependencies = [
name = "ukey2_shell"
version = "0.1.0"
dependencies = [
- "clap 4.2.7",
+ "clap 4.3.19",
"crypto_provider_rustcrypto",
"ukey2_connections",
"ukey2_rs",
]
[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
[[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",
]
[[package]]
+name = "untrusted"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+[[package]]
+name = "url"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
name = "utf8parse"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2123,6 +2867,15 @@ dependencies = [
]
[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2130,9 +2883,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[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",
@@ -2140,24 +2893,36 @@ dependencies = [
[[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.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[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",
@@ -2165,34 +2930,53 @@ dependencies = [
[[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",
]
[[package]]
+name = "webpki"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
+dependencies = [
+ "webpki",
+]
+
+[[package]]
name = "which"
version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2235,6 +3019,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets 0.48.1",
+]
+
+[[package]]
name = "windows-sys"
version = "0.45.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2249,7 +3042,7 @@ version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.1",
]
[[package]]
@@ -2269,9 +3062,9 @@ dependencies = [
[[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",
@@ -2367,6 +3160,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
name = "wycheproof"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2380,9 +3182,9 @@ dependencies = [
[[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",
@@ -2405,7 +3207,7 @@ dependencies = [
"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 1d64014..8ce92ea 100644
--- a/nearby/Cargo.toml
+++ b/nearby/Cargo.toml
@@ -12,32 +12,46 @@ members = [
"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_openssl = { path = "crypto/crypto_provider_openssl" }
crypto_provider_rustcrypto = { path = "crypto/crypto_provider_rustcrypto" }
crypto_provider_stubs = { path = "crypto/crypto_provider_stubs" }
-crypto_provider_default = {path = "crypto/crypto_provider_default" }
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" }
@@ -47,48 +61,66 @@ xts_aes = { path = "presence/xts_aes" }
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" }
-# RustCrypto crates
+# 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", 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", 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 = { version = "0.24.1", default-features=false }
+strum_macros = { version = "0.24.2", default-features=false }
+owo-colors = "3.5.0"
[workspace.package]
version = "0.1.0"
@@ -103,3 +135,41 @@ opt-level = 3
# Since xts, ldt, etc are in separate crates, use LTO to allow cross-crate inlining.
# 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
+edition.workspace = true
+publish.workspace = true
+rust-version = "1.71.0"
+
+[dependencies]
+clap.workspace = true
+anyhow.workspace = true
+shell-escape = "0.1.5"
+owo-colors.workspace = true
+reqwest = { version = "0.11.17", default-features = false, features = ["blocking", "rustls-tls"] }
+semver = "1.0.17"
+base64.workspace = true
+walkdir = "2.3.3"
+globset = "0.4.10"
+crossbeam = "0.8.2"
+tinytemplate = "1.2.1"
+chrono.workspace = true
+thiserror.workspace = true
+log.workspace = true
+env_logger.workspace = true
+which = "4.4.0"
+
+[dev-dependencies]
+tempfile.workspace = true
diff --git a/nearby/README.md b/nearby/README.md
index 85387a0..86db67d 100644
--- a/nearby/README.md
+++ b/nearby/README.md
@@ -35,7 +35,7 @@ use Docker to handle setting up the environment in a container.
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/Cargo.toml b/nearby/connections/ukey2/ukey2_c_ffi/Cargo.toml
index 445ffe4..3ca55f4 100644
--- a/nearby/connections/ukey2/ukey2_c_ffi/Cargo.toml
+++ b/nearby/connections/ukey2/ukey2_c_ffi/Cargo.toml
@@ -16,7 +16,6 @@ lazy_static.workspace = true
log.workspace = true
rand.workspace = true
rand_chacha.workspace = true
-raw-parts = "1.1.2"
[features]
default = ["rustcrypto"]
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 @@ ExternalProject_Add(
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 @@ add_executable(ffi_test
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_c_ffi/cpp/ukey2_ffi.h b/nearby/connections/ukey2/ukey2_c_ffi/cpp/ukey2_ffi.h
index 3ec5cc9..b269da8 100644
--- a/nearby/connections/ukey2/ukey2_c_ffi/cpp/ukey2_ffi.h
+++ b/nearby/connections/ukey2/ukey2_c_ffi/cpp/ukey2_ffi.h
@@ -46,7 +46,7 @@ class D2DConnectionContextV1 {
// -------------------------------------------------------------------------------------------
// Protocol version | Encode sequence number | Decode sequence number | Encode key | Decode key
// (always 1)
- static D2DRestoreConnectionContextV1Result FromSavedSession(std::string saved_session);
+ static D2DRestoreConnectionContextV1Result FromSavedSession(std::string data);
private:
friend class Ukey2Handshake;
diff --git a/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock b/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
index b3ae18a..c4aad27 100644
--- a/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
+++ b/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
[[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 @@ dependencies = [
[[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 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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",
@@ -375,23 +375,36 @@ dependencies = [
[[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 = "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.26",
+]
+
+[[package]]
name = "der"
-version = "0.7.1"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
dependencies = [
"const-oid",
"zeroize",
@@ -399,9 +412,9 @@ dependencies = [
[[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",
@@ -410,20 +423,20 @@ dependencies = [
[[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",
@@ -441,9 +454,9 @@ dependencies = [
[[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",
@@ -459,9 +472,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
[[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",
@@ -478,13 +491,13 @@ dependencies = [
[[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]]
@@ -524,9 +537,9 @@ checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
[[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",
@@ -535,9 +548,9 @@ dependencies = [
[[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",
@@ -578,18 +591,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
[[package]]
name = "hkdf"
@@ -640,13 +644,13 @@ dependencies = [
[[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]]
@@ -660,9 +664,9 @@ dependencies = [
[[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"
@@ -675,9 +679,9 @@ dependencies = [
[[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",
]
@@ -690,9 +694,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[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"
@@ -706,25 +710,16 @@ dependencies = [
]
[[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"
@@ -734,9 +729,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[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",
]
@@ -789,19 +784,19 @@ dependencies = [
[[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"
@@ -817,31 +812,21 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[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"
@@ -849,9 +834,9 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
[[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",
@@ -862,24 +847,24 @@ dependencies = [
[[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",
@@ -895,18 +880,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[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",
]
@@ -964,9 +949,9 @@ dependencies = [
[[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",
]
@@ -1025,18 +1010,30 @@ dependencies = [
[[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",
@@ -1045,29 +1042,38 @@ dependencies = [
[[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"
@@ -1080,15 +1086,15 @@ dependencies = [
[[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",
@@ -1098,30 +1104,36 @@ dependencies = [
]
[[package]]
+name = "semver"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[package]]
name = "serde"
-version = "1.0.160"
+version = "1.0.171"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
+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",
@@ -1130,9 +1142,9 @@ dependencies = [
[[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",
@@ -1147,9 +1159,9 @@ checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
[[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"
@@ -1164,9 +1176,9 @@ dependencies = [
[[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",
@@ -1175,15 +1187,16 @@ dependencies = [
[[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]]
@@ -1194,22 +1207,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[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]]
@@ -1275,15 +1288,15 @@ dependencies = [
[[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",
@@ -1313,9 +1326,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[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",
@@ -1323,24 +1336,24 @@ dependencies = [
[[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",
@@ -1348,28 +1361,28 @@ dependencies = [
[[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",
@@ -1419,33 +1432,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
-version = "0.42.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"
+version = "0.48.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",
@@ -1458,51 +1456,51 @@ dependencies = [
[[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",
@@ -1510,6 +1508,6 @@ dependencies = [
[[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/connections/ukey2/ukey2_jni/java/build.gradle.kts b/nearby/connections/ukey2/ukey2_jni/java/build.gradle.kts
index 56d4c04..58c58fc 100644
--- a/nearby/connections/ukey2/ukey2_jni/java/build.gradle.kts
+++ b/nearby/connections/ukey2/ukey2_jni/java/build.gradle.kts
@@ -27,6 +27,7 @@ plugins {
// Apply the java-library plugin for API and implementation separation.
`java-library`
kotlin("jvm") version "1.8.0"
+ id("me.champeau.jmh") version "0.7.1"
}
repositories {
@@ -49,6 +50,10 @@ kotlin {
jvmToolchain(17)
}
+tasks.jmh {
+ jvmArgs.value(mutableListOf("-Djava.library.path=../../../../target/release"))
+}
+
tasks.test {
useJUnitPlatform()
jvmArgs = mutableListOf("-Djava.library.path=../../../../target/debug")
diff --git a/nearby/connections/ukey2/ukey2_jni/java/src/jmh/java/com/google/security/cryptauth/lib/securegcm/Ukey2Benchmark.java b/nearby/connections/ukey2/ukey2_jni/java/src/jmh/java/com/google/security/cryptauth/lib/securegcm/Ukey2Benchmark.java
new file mode 100644
index 0000000..eb063cc
--- /dev/null
+++ b/nearby/connections/ukey2/ukey2_jni/java/src/jmh/java/com/google/security/cryptauth/lib/securegcm/Ukey2Benchmark.java
@@ -0,0 +1,83 @@
+/*
+ * 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.
+ */
+
+package com.google.security.cryptauth.lib.securegcm;
+
+import org.openjdk.jmh.annotations.*;
+import org.openjdk.jmh.infra.Blackhole;
+import org.openjdk.jmh.profile.GCProfiler;
+import org.openjdk.jmh.runner.Runner;
+import org.openjdk.jmh.runner.RunnerException;
+import org.openjdk.jmh.runner.options.Options;
+import org.openjdk.jmh.runner.options.OptionsBuilder;
+
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.util.concurrent.TimeUnit;
+import java.util.Random;
+
+/**
+ * Benchmark for encoding and decoding UKEY2 messages over the JNI, analogous to
+ * `ukey2_benches.rs`. The parameters and the operations also roughly matches the that of the Rust
+ * Criterion benchmark. That said, since the benchmark infrastructure is different, there will
+ * inevitably be differences the skews the number in certain ways – comparison of numbers from the
+ * different benchmarks should compared on order-of-magnitudes only. To get the JNI overhead, for
+ * example, it would be better use this JMH infra to measure a call into a no-op Rust function,
+ * which is a more apples-to-apples comparison.
+ *
+ * To run this benchmark, run
+ * cargo build -p ukey2_jni --release && ./gradlew jmh
+ */
+@State(Scope.Benchmark)
+@OutputTimeUnit(TimeUnit.SECONDS)
+@BenchmarkMode(Mode.Throughput)
+public class Ukey2Benchmark {
+
+ @State(Scope.Thread)
+ public static class ConnectionState {
+ D2DConnectionContextV1 connContext;
+ D2DConnectionContextV1 serverConnContext;
+ @Param({"10", "1024"})
+ int sizeKibs;
+ byte[] inputBytes;
+
+ @Setup
+ public void setup() throws Exception {
+ D2DHandshakeContext initiatorContext =
+ new D2DHandshakeContext(D2DHandshakeContext.Role.Initiator);
+ D2DHandshakeContext serverContext =
+ new D2DHandshakeContext(D2DHandshakeContext.Role.Responder);
+ serverContext.parseHandshakeMessage(initiatorContext.getNextHandshakeMessage());
+ initiatorContext.parseHandshakeMessage(serverContext.getNextHandshakeMessage());
+ serverContext.parseHandshakeMessage(initiatorContext.getNextHandshakeMessage());
+ connContext = initiatorContext.toConnectionContext();
+ serverConnContext = serverContext.toConnectionContext();
+ Random random = new Random();
+ inputBytes = new byte[sizeKibs * 1024];
+ random.nextBytes(inputBytes);
+ }
+ }
+
+ @Benchmark
+ @Fork(3)
+ @Warmup(iterations = 2, time = 500, timeUnit = TimeUnit.MILLISECONDS)
+ @Measurement(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
+ public void encodeAndDecode(ConnectionState state, Blackhole blackhole) throws Exception {
+ byte[] encoded = state.connContext.encodeMessageToPeer(state.inputBytes, null);
+ byte[] decoded = state.serverConnContext.decodeMessageFromPeer(encoded, null);
+ blackhole.consume(decoded);
+ }
+}
diff --git a/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DConnectionContextV1.java b/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DConnectionContextV1.java
index bb5c1f8..7874cd9 100644
--- a/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DConnectionContextV1.java
+++ b/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DConnectionContextV1.java
@@ -37,7 +37,7 @@ public class D2DConnectionContextV1 {
private static native byte[] save_session(long contextPtr) throws BadHandleException;
- private static native long from_saved_session(byte[] saved_session_info);
+ private static native long from_saved_session(byte[] savedSessionInfo);
private final long contextPtr;
@@ -56,7 +56,8 @@ public class D2DConnectionContextV1 {
* @param payload The message to be encrypted.
* @return The encrypted/encoded message.
*/
- public @Nonnull byte[] encodeMessageToPeer(@Nonnull byte[] payload, @Nullable byte[] associatedData) throws BadHandleException {
+ @Nonnull
+ public byte[] encodeMessageToPeer(@Nonnull byte[] payload, @Nullable byte[] associatedData) throws BadHandleException {
return encode_message_to_peer(contextPtr, payload, associatedData);
}
@@ -66,7 +67,8 @@ public class D2DConnectionContextV1 {
* @param message The message received over the connection.
* @return The decoded message from the connection peer.
*/
- public @Nonnull byte[] decodeMessageFromPeer(@Nonnull byte[] message, @Nullable byte[] associatedData) throws CryptoException {
+ @Nonnull
+ public byte[] decodeMessageFromPeer(@Nonnull byte[] message, @Nullable byte[] associatedData) throws CryptoException {
return decode_message_from_peer(contextPtr, message, associatedData);
}
@@ -75,7 +77,8 @@ public class D2DConnectionContextV1 {
*
* @return The session unique identifier
*/
- public @Nonnull byte[] getSessionUnique() throws BadHandleException {
+ @Nonnull
+ public byte[] getSessionUnique() throws BadHandleException {
return get_session_unique(contextPtr);
}
@@ -102,7 +105,8 @@ public class D2DConnectionContextV1 {
*
* @return a byte array representing the current session.
*/
- public @Nonnull byte[] saveSession() throws BadHandleException {
+ @Nonnull
+ public byte[] saveSession() throws BadHandleException {
return save_session(contextPtr);
}
@@ -111,9 +115,8 @@ public class D2DConnectionContextV1 {
*
* @param savedSessionInfo the byte array from saveSession()
* @return a D2DConnectionContextV1 session with the same properties as the context saved.
- * @throws SessionRestoreException if the session was unable to be restored.
*/
- public static D2DConnectionContextV1 fromSavedSession(@Nonnull byte[] savedSessionInfo) throws SessionRestoreException {
+ public static D2DConnectionContextV1 fromSavedSession(@Nonnull byte[] savedSessionInfo) {
return new D2DConnectionContextV1(from_saved_session(savedSessionInfo));
}
diff --git a/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DHandshakeContext.java b/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DHandshakeContext.java
index 94827b0..39f7aa9 100644
--- a/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DHandshakeContext.java
+++ b/nearby/connections/ukey2/ukey2_jni/java/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DHandshakeContext.java
@@ -24,26 +24,26 @@ public class D2DHandshakeContext {
}
public enum Role {
- Initiator,
- Responder,
+ INITIATOR,
+ RESPONDER,
}
- private final long context_ptr;
+ private final long contextPtr;
- private static native boolean is_handshake_complete(long context_ptr) throws BadHandleException;
+ private static native boolean is_handshake_complete(long contextPtr) throws BadHandleException;
- private static native long create_context(boolean is_client);
+ private static native long create_context(boolean isClient);
- private static native byte[] get_next_handshake_message(long context_ptr) throws BadHandleException;
+ private static native byte[] get_next_handshake_message(long contextPtr) throws BadHandleException;
- private static native void parse_handshake_message(long context_ptr, byte[] message) throws BadHandleException, HandshakeException;
+ private static native void parse_handshake_message(long contextPtr, byte[] message) throws BadHandleException, HandshakeException;
- private static native byte[] get_verification_string(long context_ptr, int length) throws BadHandleException, HandshakeException;
+ private static native byte[] get_verification_string(long contextPtr, int length) throws BadHandleException, HandshakeException;
- private static native long to_connection_context(long context_ptr) throws HandshakeException;
+ private static native long to_connection_context(long contextPtr) throws HandshakeException;
public D2DHandshakeContext(@Nonnull Role role) {
- this.context_ptr = create_context(role == Role.Initiator);
+ this.contextPtr = create_context(role == Role.INITIATOR);
}
/**
@@ -52,7 +52,7 @@ public class D2DHandshakeContext {
* @return a D2DHandshakeContext for the role of initiator in the handshake.
*/
public static D2DHandshakeContext forInitiator() {
- return new D2DHandshakeContext(Role.Initiator);
+ return new D2DHandshakeContext(Role.INITIATOR);
}
/**
@@ -61,7 +61,7 @@ public class D2DHandshakeContext {
* @return a D2DHandshakeContext for the role of responder/server in the handshake.
*/
public static D2DHandshakeContext forResponder() {
- return new D2DHandshakeContext(Role.Responder);
+ return new D2DHandshakeContext(Role.RESPONDER);
}
/**
@@ -70,7 +70,7 @@ public class D2DHandshakeContext {
* @return true/false depending on if the handshake is complete.
*/
public boolean isHandshakeComplete() throws BadHandleException {
- return is_handshake_complete(context_ptr);
+ return is_handshake_complete(contextPtr);
}
/**
@@ -78,8 +78,9 @@ public class D2DHandshakeContext {
*
* @return handshake message encoded in a SecureMessage.
*/
- public @Nonnull byte[] getNextHandshakeMessage() throws BadHandleException {
- return get_next_handshake_message(context_ptr);
+ @Nonnull
+ public byte[] getNextHandshakeMessage() throws BadHandleException {
+ return get_next_handshake_message(contextPtr);
}
/**
@@ -87,8 +88,9 @@ public class D2DHandshakeContext {
*
* @param message - handshake message from the other side.
*/
- public @Nonnull void parseHandshakeMessage(@Nonnull byte[] message) throws BadHandleException, HandshakeException {
- parse_handshake_message(context_ptr, message);
+ @Nonnull
+ public void parseHandshakeMessage(@Nonnull byte[] message) throws BadHandleException, HandshakeException {
+ parse_handshake_message(contextPtr, message);
}
/**
@@ -102,8 +104,9 @@ public class D2DHandshakeContext {
* @throws BadHandleException - Thrown if the handle is no longer valid, for example after calling {@link D2DHandshakeContext#toConnectionContext}
* @throws HandshakeException - Thrown if the handshake is not complete when this function is called.
*/
- public @Nonnull byte[] getVerificationString(int length) throws BadHandleException, HandshakeException {
- return get_verification_string(context_ptr, length);
+ @Nonnull
+ public byte[] getVerificationString(int length) throws BadHandleException, HandshakeException {
+ return get_verification_string(contextPtr, length);
}
/**
@@ -114,6 +117,6 @@ public class D2DHandshakeContext {
* @throws HandshakeException if the handsshake is not complete when this function is called.
*/
public D2DConnectionContextV1 toConnectionContext() throws HandshakeException {
- return new D2DConnectionContextV1(to_connection_context(context_ptr));
+ return new D2DConnectionContextV1(to_connection_context(contextPtr));
}
}
diff --git a/nearby/connections/ukey2/ukey2_jni/java/src/test/java/com/google/security/cryptauth/lib/securegcm/TestUkey2Protocol.kt b/nearby/connections/ukey2/ukey2_jni/java/src/test/java/com/google/security/cryptauth/lib/securegcm/TestUkey2Protocol.kt
index 1090c7e..79cbd15 100644
--- a/nearby/connections/ukey2/ukey2_jni/java/src/test/java/com/google/security/cryptauth/lib/securegcm/TestUkey2Protocol.kt
+++ b/nearby/connections/ukey2/ukey2_jni/java/src/test/java/com/google/security/cryptauth/lib/securegcm/TestUkey2Protocol.kt
@@ -36,10 +36,10 @@ class TestUkey2Protocol {
@Test
fun testHandshake() {
val initiatorContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Initiator, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.INITIATOR)
assertFalse(initiatorContext.isHandshakeComplete)
val serverContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Responder, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.RESPONDER)
assertFalse(serverContext.isHandshakeComplete)
assertDoesNotThrow {
serverContext.parseHandshakeMessage(initiatorContext.nextHandshakeMessage)
@@ -53,9 +53,9 @@ class TestUkey2Protocol {
@Test
fun testSendReceiveMessage() {
val initiatorContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Initiator, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.INITIATOR)
val serverContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Responder, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.RESPONDER)
assertDoesNotThrow {
serverContext.parseHandshakeMessage(initiatorContext.nextHandshakeMessage)
initiatorContext.parseHandshakeMessage(serverContext.nextHandshakeMessage)
@@ -77,9 +77,9 @@ class TestUkey2Protocol {
@Test
fun testSaveRestoreSession() {
val initiatorContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Initiator, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.INITIATOR)
val serverContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Responder, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.RESPONDER)
assertDoesNotThrow {
serverContext.parseHandshakeMessage(initiatorContext.nextHandshakeMessage)
initiatorContext.parseHandshakeMessage(serverContext.nextHandshakeMessage)
@@ -103,9 +103,9 @@ class TestUkey2Protocol {
@Test
fun testSaveRestoreBadSession() {
val initiatorContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Initiator, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.INITIATOR)
val serverContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Responder, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.RESPONDER)
val deriveInitiatorSavedSession = {
assertDoesNotThrow {
serverContext.parseHandshakeMessage(initiatorContext.nextHandshakeMessage)
@@ -124,9 +124,9 @@ class TestUkey2Protocol {
@Test
fun tryReuseHandshakeContext() {
val initiatorContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Initiator, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.INITIATOR)
val serverContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Responder, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.RESPONDER)
assertDoesNotThrow {
serverContext.parseHandshakeMessage(initiatorContext.nextHandshakeMessage)
initiatorContext.parseHandshakeMessage(serverContext.nextHandshakeMessage)
@@ -142,9 +142,9 @@ class TestUkey2Protocol {
@Test
fun testSendReceiveMessageWithAssociatedData() {
val initiatorContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Initiator, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.INITIATOR)
val serverContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Responder, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.RESPONDER)
val associatedData = "Associated data.".toByteArray()
assertDoesNotThrow {
serverContext.parseHandshakeMessage(initiatorContext.nextHandshakeMessage)
@@ -167,9 +167,9 @@ class TestUkey2Protocol {
@Test
fun testVerificationString() {
val initiatorContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Initiator, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.INITIATOR)
val serverContext =
- D2DHandshakeContext(D2DHandshakeContext.Role.Responder, NoOpLogger)
+ D2DHandshakeContext(D2DHandshakeContext.Role.RESPONDER)
assertDoesNotThrow {
serverContext.parseHandshakeMessage(initiatorContext.nextHandshakeMessage)
initiatorContext.parseHandshakeMessage(serverContext.nextHandshakeMessage)
diff --git a/nearby/connections/ukey2/ukey2_jni/src/lib.rs b/nearby/connections/ukey2/ukey2_jni/src/lib.rs
index f98232a..0e11793 100644
--- a/nearby/connections/ukey2/ukey2_jni/src/lib.rs
+++ b/nearby/connections/ukey2/ukey2_jni/src/lib.rs
@@ -378,7 +378,9 @@ pub extern "system" fn Java_com_google_security_cryptauth_lib_securegcm_D2DConne
_: JClass,
session_info: jbyteArray,
) -> jlong {
- let session_info_rust = env.convert_byte_array(session_info).expect("bad session_info data");
+ let session_info_rust = env
+ .convert_byte_array(session_info)
+ .expect("bad session_info data");
let ctx =
D2DConnectionContextV1::from_saved_session::<CryptoProvider>(session_info_rust.as_slice());
if ctx.is_err() {
diff --git a/nearby/crypto/crypto_provider/Cargo.toml b/nearby/crypto/crypto_provider/Cargo.toml
index 53eb974..60f8626 100644
--- a/nearby/crypto/crypto_provider/Cargo.toml
+++ b/nearby/crypto/crypto_provider/Cargo.toml
@@ -13,10 +13,10 @@ rand_ext.workspace = true
rand.workspace = true
[features]
-default = ["alloc", "gcm_siv"]
+default = ["alloc"]
std = []
alloc = []
-gcm_siv = []
+test_vectors = []
[[bench]]
name = "hmac_bench"
diff --git a/nearby/crypto/crypto_provider/src/aead/aes_gcm_siv.rs b/nearby/crypto/crypto_provider/src/aead/aes_gcm_siv.rs
new file mode 100644
index 0000000..3be7db3
--- /dev/null
+++ b/nearby/crypto/crypto_provider/src/aead/aes_gcm_siv.rs
@@ -0,0 +1,23 @@
+// 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 for AES-GCM-SIV.
+
+extern crate alloc;
+use crate::aead::Aead;
+
+/// An implementation of AES-GCM-SIV.
+///
+/// An AesGcmSiv impl may be used for encryption and decryption.
+pub trait AesGcmSiv: Aead<Nonce = [u8; 12]> {}
diff --git a/nearby/crypto/crypto_provider/src/aead/mod.rs b/nearby/crypto/crypto_provider/src/aead/mod.rs
new file mode 100644
index 0000000..27284a9
--- /dev/null
+++ b/nearby/crypto/crypto_provider/src/aead/mod.rs
@@ -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.
+
+extern crate alloc;
+use alloc::vec::Vec;
+
+/// Contains traits for the AES-GCM-SIV AEAD algorithm.
+pub mod aes_gcm_siv;
+
+/// Error returned on unsuccessful AEAD operation.
+pub struct AeadError;
+
+/// Authenticated Encryption with Associated Data (AEAD) algorithm, where `N` is the size of the
+/// Nonce. Encrypts and decrypts buffers in-place.
+pub trait Aead {
+ /// The size of the authentication tag, this is appended to the message on the encrypt operation
+ /// and truncated from the plaintext after decrypting.
+ const TAG_SIZE: usize;
+
+ /// The cryptographic nonce used by the AEAD. The nonce must be unique for all messages with
+ /// the same key. This is critically important - nonce reuse may completely undermine the
+ /// security of the AEAD. Nonces may be predictable and public, so long as they are unique.
+ type Nonce;
+
+ /// The key material used to initialize the AEAD.
+ type Key;
+
+ /// Instantiates a new instance of the AEAD from key material.
+ fn new(key: &Self::Key) -> Self;
+
+ /// Encrypt the given buffer containing a plaintext message in-place. On success increases the
+ /// buffer by `Self::TAG_SIZE` bytes and appends the auth tag to the end of `msg`.
+ fn encrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &Self::Nonce) -> Result<(), AeadError>;
+
+ /// Decrypt the message in-place, returning an error in the event the provided authentication
+ /// tag does not match the given ciphertext. The buffer will be truncated to the length of the
+ /// original plaintext message upon success.
+ fn decrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &Self::Nonce) -> Result<(), AeadError>;
+}
diff --git a/nearby/crypto/crypto_provider/src/aes/ctr.rs b/nearby/crypto/crypto_provider/src/aes/ctr.rs
index acfe4ef..73d4f55 100644
--- a/nearby/crypto/crypto_provider/src/aes/ctr.rs
+++ b/nearby/crypto/crypto_provider/src/aes/ctr.rs
@@ -13,7 +13,15 @@
// limitations under the License.
//! Traits for AES-CTR.
-use super::AesKey;
+use super::{AesBlock, AesKey, BLOCK_SIZE};
+
+/// The number of bytes used for the nonce, with the remaining bytes in a block used as the counter.
+///
+/// Other lengths may be used, but 12 is a good general purpose choice.
+pub const AES_CTR_NONCE_LEN: usize = 12;
+
+/// The nonce portion of the nonce+counter block used by CTR mode.
+pub type AesCtrNonce = [u8; AES_CTR_NONCE_LEN];
/// An implementation of AES-CTR.
///
@@ -26,10 +34,36 @@ pub trait AesCtr {
type Key: AesKey;
/// Build a `Self` from key material.
- fn new(key: &Self::Key, iv: [u8; 16]) -> Self;
+ fn new(key: &Self::Key, nonce_and_counter: NonceAndCounter) -> Self;
/// Encrypt the data in place, advancing the counter state appropriately.
fn encrypt(&mut self, data: &mut [u8]);
/// Decrypt the data in place, advancing the counter state appropriately.
fn decrypt(&mut self, data: &mut [u8]);
}
+
+/// The combined nonce and counter that CTR increments and encrypts to form the keystream.
+pub struct NonceAndCounter {
+ block: AesBlock,
+}
+
+impl NonceAndCounter {
+ /// Appends 4 zero bytes of counter to the nonce
+ pub fn from_nonce(nonce: AesCtrNonce) -> Self {
+ let mut block = [0; BLOCK_SIZE];
+ block[..12].copy_from_slice(nonce.as_slice());
+ NonceAndCounter { block }
+ }
+
+ /// Initialize from an already concatenated nonce and counter
+ // Not recommended for general use, so restricted so only test vectors can use it
+ #[cfg(feature = "test_vectors")]
+ pub fn from_block(block: AesBlock) -> Self {
+ Self { block }
+ }
+
+ /// Nonce and counter as an AES block-sized byte array
+ pub fn as_block_array(&self) -> AesBlock {
+ self.block
+ }
+}
diff --git a/nearby/crypto/crypto_provider/src/aes/gcm_siv.rs b/nearby/crypto/crypto_provider/src/aes/gcm_siv.rs
deleted file mode 100644
index dabb10d..0000000
--- a/nearby/crypto/crypto_provider/src/aes/gcm_siv.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-// 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 for AES-GCM-SIV.
-
-use super::AesKey;
-extern crate alloc;
-use alloc::vec::Vec;
-
-/// An enum for indicating issues with the GCM-SIV encryption/decryption operations.
-pub enum GcmSivError {
- /// Returned if the output buffer is too small to store the resulting ciphertext + tag.
- EncryptOutBufferTooSmall,
- /// Returned if the ciphertext + tag combination does not match when decrypting a blob.
- DecryptTagDoesNotMatch,
-}
-
-/// An implementation of AES-GCM-SIV.
-///
-/// An AesGcmSiv impl may be used for encryption and decryption.
-pub trait AesGcmSiv {
- /// The [AesKey] this cipher uses. See [super::Aes128Key] and [super::Aes256Key] for the common AES-128 and
- /// AES-256 cases.
- type Key: AesKey;
-
- /// Build a `Self` from key material.
- fn new(key: &Self::Key) -> Self;
-
- /// Encrypt the data in place with a nonce to make sure each ciphertext is unique.
- /// This will need 16 bytes reserved in the data array for the tag.
- /// Optionally, additional associated data can be passed in for computation of the cryptographic tag.
- fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError>;
- /// Decrypt the ciphertext concatenated with its tag in place with the nonce used for encryption.
- /// If associated data was passed in when creating the ciphertext, it should be passed in here as well
- /// in order to properly decrypt the message.
- fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError>;
-}
diff --git a/nearby/crypto/crypto_provider/src/aes/mod.rs b/nearby/crypto/crypto_provider/src/aes/mod.rs
index 9526488..83e48de 100644
--- a/nearby/crypto/crypto_provider/src/aes/mod.rs
+++ b/nearby/crypto/crypto_provider/src/aes/mod.rs
@@ -16,17 +16,12 @@
//!
//! The design is an attempt to make it easy to provide implementations that are both idiomatic
//! Rust (e.g. RustCrypto) as well as FFI-backed (e.g. openssl and other C impls).
-#![forbid(unsafe_code)]
-#![deny(missing_docs)]
-
use core::{array, fmt};
pub mod ctr;
#[cfg(feature = "alloc")]
pub mod cbc;
-#[cfg(feature = "gcm_siv")]
-pub mod gcm_siv;
/// Block size in bytes for AES (and XTS-AES)
pub const BLOCK_SIZE: usize = 16;
diff --git a/nearby/crypto/crypto_provider/src/ed25519.rs b/nearby/crypto/crypto_provider/src/ed25519.rs
index e8fc176..48c2c50 100644
--- a/nearby/crypto/crypto_provider/src/ed25519.rs
+++ b/nearby/crypto/crypto_provider/src/ed25519.rs
@@ -28,11 +28,20 @@ pub trait Ed25519Provider {
/// The length of a ed25519 `Signature`, in bytes.
pub const SIGNATURE_LENGTH: usize = 64;
-/// The length of an ed25519 `KeyPair`, in bytes.
-pub const KEY_PAIR_LENGTH: usize = 64;
+/// The length of an ed25519 `PrivateKey`, in bytes.
+pub const PRIVATE_KEY_LENGTH: usize = 32;
-/// The length of an ed25519 `PublicKey`, in bytes.
-pub const KEY_LENGTH: usize = 32;
+/// The length of an ed25519 `PrivateKey`, in bytes.
+pub const PUBLIC_KEY_LENGTH: usize = 32;
+
+/// A byte buffer the size of a ed25519 `Signature`.
+pub type RawSignature = [u8; SIGNATURE_LENGTH];
+
+/// A byte buffer the size of a ed25519 `PublicKey`.
+pub type RawPublicKey = [u8; PUBLIC_KEY_LENGTH];
+
+/// A byte buffer the size of a ed25519 `PrivateKey`.
+pub type RawPrivateKey = [u8; PRIVATE_KEY_LENGTH];
/// The keypair which includes both public and secret halves of an asymmetric key.
pub trait KeyPair: Sized {
@@ -42,17 +51,13 @@ pub trait KeyPair: Sized {
/// The ed25519 signature returned when signing a message
type Signature: Signature;
- /// Converts the key-pair to an array of bytes consisting
- /// of the bytes of the private key followed by the bytes
- /// of the public key. This method should only ever be called
- /// by code which securely stores private credentials.
- fn to_bytes(&self) -> [u8; KEY_PAIR_LENGTH];
-
- /// Builds this key-pair from an array of bytes in the
- /// format yielded by `to_bytes`. This method should
- /// only ever be called by code which securely stores private
- /// credentials.
- fn from_bytes(bytes: [u8; KEY_PAIR_LENGTH]) -> Result<Self, InvalidBytes>
+ /// Returns the private key bytes of the `KeyPair`.
+ /// This method should only ever be called by code which securely stores private credentials.
+ fn private_key(&self) -> RawPrivateKey;
+
+ /// Builds a key-pair from a `RawPrivateKey` array of bytes.
+ /// This should only ever be called by code which securely stores private credentials.
+ fn from_private_key(bytes: &RawPrivateKey) -> Self
where
Self: Sized;
@@ -73,10 +78,10 @@ pub trait Signature: Sized {
/// Create a new signature from a byte slice, and return an error on an invalid signature
/// An `Ok` result does not guarantee that the Signature is valid, however it will catch a
/// number of invalid signatures relatively inexpensively.
- fn from_bytes(bytes: &[u8]) -> Result<Self, InvalidSignature>;
+ fn from_bytes(bytes: &RawSignature) -> Self;
/// Returns a slice of the signature bytes
- fn to_bytes(&self) -> [u8; SIGNATURE_LENGTH];
+ fn to_bytes(&self) -> RawSignature;
}
/// An ed25519 public key
@@ -86,12 +91,12 @@ pub trait PublicKey {
/// Builds this public key from an array of bytes in
/// the format yielded by `to_bytes`.
- fn from_bytes(bytes: [u8; KEY_LENGTH]) -> Result<Self, InvalidBytes>
+ fn from_bytes(bytes: &RawPublicKey) -> Result<Self, InvalidBytes>
where
Self: Sized;
/// Yields the bytes of the public key
- fn to_bytes(&self) -> [u8; KEY_LENGTH];
+ fn to_bytes(&self) -> RawPublicKey;
/// Succeeds if the signature was a valid signature created by this Keypair on the prehashed_message.
fn verify_strict(
@@ -108,7 +113,3 @@ pub struct InvalidBytes;
/// Error returned if the verification on the signature + message fails
#[derive(Debug)]
pub struct SignatureError;
-
-/// Error returned if invalid signature bytes are provided
-#[derive(Debug)]
-pub struct InvalidSignature;
diff --git a/nearby/crypto/crypto_provider/src/hmac.rs b/nearby/crypto/crypto_provider/src/hmac.rs
index c5a9ae1..e7f6d0c 100644
--- a/nearby/crypto/crypto_provider/src/hmac.rs
+++ b/nearby/crypto/crypto_provider/src/hmac.rs
@@ -38,7 +38,7 @@ pub trait Hmac<const N: usize>: Sized {
/// Error type for when the output of the hmac operation
/// is not equal to the expected value.
-#[derive(Debug)]
+#[derive(Debug, PartialEq, Eq)]
pub struct MacError;
/// Error output when the provided key material length is invalid
diff --git a/nearby/crypto/crypto_provider/src/lib.rs b/nearby/crypto/crypto_provider/src/lib.rs
index 84d0dd7..624072a 100644
--- a/nearby/crypto/crypto_provider/src/lib.rs
+++ b/nearby/crypto/crypto_provider/src/lib.rs
@@ -39,9 +39,12 @@ pub mod elliptic_curve;
/// mod containing SHA256 trait.
pub mod sha2;
-/// mod containing aes trait
+/// mod containing aes trait.
pub mod aes;
+/// mod containing aead trait.
+pub mod aead;
+
/// mod containing traits for ed25519 key generation, signing, and verification
pub mod ed25519;
@@ -77,11 +80,9 @@ pub trait CryptoProvider: Clone + Debug + PartialEq + Eq + Send {
/// using SHA-512 (SHA-2) and Curve25519
type Ed25519: ed25519::Ed25519Provider;
/// The trait defining AES-128-GCM-SIV, a nonce-misuse resistant AEAD with a key size of 16 bytes.
- #[cfg(feature = "gcm_siv")]
- type Aes128GcmSiv: aes::gcm_siv::AesGcmSiv<Key = Aes128Key>;
+ type Aes128GcmSiv: aead::aes_gcm_siv::AesGcmSiv<Key = Aes128Key>;
/// The trait defining AES-256-GCM-SIV, a nonce-misuse resistant AEAD with a key size of 32 bytes.
- #[cfg(feature = "gcm_siv")]
- type Aes256GcmSiv: aes::gcm_siv::AesGcmSiv<Key = Aes256Key>;
+ type Aes256GcmSiv: aead::aes_gcm_siv::AesGcmSiv<Key = Aes256Key>;
/// The cryptographically secure random number generator
type CryptoRng: CryptoRng;
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 @@ dependencies = [
]
[[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 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[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 @@ dependencies = [
]
[[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 @@ dependencies = [
[[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 @@ dependencies = [
]
[[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_boringssl/src/ed25519.rs b/nearby/crypto/crypto_provider_boringssl/src/ed25519.rs
new file mode 100644
index 0000000..7c671ae
--- /dev/null
+++ b/nearby/crypto/crypto_provider_boringssl/src/ed25519.rs
@@ -0,0 +1,111 @@
+// 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::ed25519::{
+ InvalidBytes, RawPrivateKey, RawPublicKey, RawSignature, Signature as _, SignatureError,
+};
+
+pub struct Ed25519;
+
+impl crypto_provider::ed25519::Ed25519Provider for Ed25519 {
+ type KeyPair = KeyPair;
+ type PublicKey = PublicKey;
+ type Signature = Signature;
+}
+
+pub struct KeyPair(bssl_crypto::ed25519::PrivateKey);
+
+impl crypto_provider::ed25519::KeyPair for KeyPair {
+ type PublicKey = PublicKey;
+ type Signature = Signature;
+
+ fn private_key(&self) -> RawPrivateKey {
+ self.0.to_seed()
+ }
+
+ fn from_private_key(bytes: &RawPrivateKey) -> Self
+ where
+ Self: Sized,
+ {
+ let private_key = bssl_crypto::ed25519::PrivateKey::new_from_seed(bytes);
+ Self(private_key)
+ }
+
+ fn sign(&self, msg: &[u8]) -> Self::Signature {
+ Signature(self.0.sign(msg))
+ }
+
+ fn generate() -> Self {
+ Self(bssl_crypto::ed25519::PrivateKey::generate())
+ }
+
+ fn public(&self) -> Self::PublicKey {
+ PublicKey(self.0.public())
+ }
+}
+
+pub struct Signature(bssl_crypto::ed25519::Signature);
+
+impl crypto_provider::ed25519::Signature for Signature {
+ fn from_bytes(bytes: &RawSignature) -> Self {
+ Self(bssl_crypto::ed25519::Signature::from_bytes(*bytes))
+ }
+
+ fn to_bytes(&self) -> RawSignature {
+ self.0.to_bytes()
+ }
+}
+
+pub struct PublicKey(bssl_crypto::ed25519::PublicKey);
+
+impl crypto_provider::ed25519::PublicKey for PublicKey {
+ type Signature = Signature;
+
+ fn from_bytes(bytes: &RawPublicKey) -> Result<Self, InvalidBytes>
+ where
+ Self: Sized,
+ {
+ Ok(Self(bssl_crypto::ed25519::PublicKey::from_bytes(*bytes)))
+ }
+
+ fn to_bytes(&self) -> RawPublicKey {
+ self.0.to_bytes()
+ }
+
+ fn verify_strict(
+ &self,
+ message: &[u8],
+ signature: &Self::Signature,
+ ) -> Result<(), SignatureError> {
+ self.0
+ .verify(message, bssl_crypto::ed25519::Signature::from_bytes(signature.to_bytes()))
+ .map_err(|_| SignatureError)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use crypto_provider_test::ed25519::{run_rfc_test_vectors, run_wycheproof_test_vectors};
+
+ #[test]
+ fn wycheproof_test_ed25519_boringssl() {
+ run_wycheproof_test_vectors::<Ed25519>()
+ }
+
+ #[test]
+ fn rfc_test_ed25519_boringssl() {
+ run_rfc_test_vectors::<Ed25519>()
+ }
+}
diff --git a/nearby/crypto/crypto_provider_boringssl/src/lib.rs b/nearby/crypto/crypto_provider_boringssl/src/lib.rs
index 6618bab..3b78898 100644
--- a/nearby/crypto/crypto_provider_boringssl/src/lib.rs
+++ b/nearby/crypto/crypto_provider_boringssl/src/lib.rs
@@ -37,6 +37,9 @@ pub mod hkdf;
/// Implementations of crypto_provider::hmac traits backed by BoringSSL
pub mod hmac;
+/// Implementations of crypto_provider::ed25519 traits backed by BoringSSL
+mod ed25519;
+
/// The BoringSSL backed struct which implements CryptoProvider
#[derive(Default, Clone, Debug, PartialEq, Eq)]
pub struct Boringssl;
@@ -55,7 +58,7 @@ impl CryptoProvider for Boringssl {
type Aes256 = aes::Aes256;
type AesCtr128 = Aes128Stubs;
type AesCtr256 = Aes256Stubs;
- type Ed25519 = Ed25519Stubs;
+ type Ed25519 = ed25519::Ed25519;
type Aes128GcmSiv = Aes128Stubs;
type Aes256GcmSiv = Aes256Stubs;
type CryptoRng = BoringSslRng;
diff --git a/nearby/crypto/crypto_provider_default/Cargo.toml b/nearby/crypto/crypto_provider_default/Cargo.toml
index 2c42bea..2a155bf 100644
--- a/nearby/crypto/crypto_provider_default/Cargo.toml
+++ b/nearby/crypto/crypto_provider_default/Cargo.toml
@@ -12,8 +12,8 @@ crypto_provider_openssl = {workspace = true, optional = true}
cfg-if.workspace = true
[features]
-std = ["crypto_provider_rustcrypto/std"]
default = ["rustcrypto"]
+std = ["crypto_provider_rustcrypto/std"]
rustcrypto = ["crypto_provider_rustcrypto"]
boringssl = ["crypto_provider_boringssl"]
opensslbssl = ["crypto_provider_openssl/boringssl"]
diff --git a/nearby/crypto/crypto_provider_default/src/lib.rs b/nearby/crypto/crypto_provider_default/src/lib.rs
index 831698b..b880ba8 100644
--- a/nearby/crypto/crypto_provider_default/src/lib.rs
+++ b/nearby/crypto/crypto_provider_default/src/lib.rs
@@ -15,12 +15,16 @@
//! Provides multiple implementations of CryptoProvider through the same struct, configurable by
//! feature flag.
+#![no_std]
+#![forbid(unsafe_code)]
+#![deny(missing_docs)]
+
cfg_if::cfg_if! {
if #[cfg(feature = "rustcrypto")] {
pub use crypto_provider_rustcrypto::RustCrypto as CryptoProviderImpl;
} else if #[cfg(feature = "boringssl")] {
pub use crypto_provider_boringssl::Boringssl as CryptoProviderImpl;
- } else if #[cfg(feature = "openssl")] {
+ } else if #[cfg(any(feature = "openssl", feature = "opensslbssl"))] {
pub use crypto_provider_openssl::Openssl as CryptoProviderImpl;
} else {
compile_error!("No crypto_provider feature enabled!");
diff --git a/nearby/crypto/crypto_provider_openssl/Cargo.toml b/nearby/crypto/crypto_provider_openssl/Cargo.toml
index 8fa6faa..84d4380 100644
--- a/nearby/crypto/crypto_provider_openssl/Cargo.toml
+++ b/nearby/crypto/crypto_provider_openssl/Cargo.toml
@@ -5,15 +5,16 @@ edition.workspace = true
publish.workspace = true
[dependencies]
-crypto_provider = { path = "../crypto_provider", default-features = false, features = ["alloc", "std"] }
+crypto_provider = { workspace = true, features = ["alloc", "std"] }
+crypto_provider_stubs.workspace = true
openssl.workspace = true
cfg-if.workspace = true
-ouroboros = "0.15.5"
+ouroboros = "0.17.0"
[features]
default = []
-boringssl = ["openssl/unstable_boringssl", "crypto_provider/gcm_siv"]
+boringssl = ["openssl/unstable_boringssl"]
[dev-dependencies]
crypto_provider_test.workspace = true
diff --git a/nearby/crypto/crypto_provider_openssl/src/aes.rs b/nearby/crypto/crypto_provider_openssl/src/aes.rs
index c4693d0..f5d5b00 100644
--- a/nearby/crypto/crypto_provider_openssl/src/aes.rs
+++ b/nearby/crypto/crypto_provider_openssl/src/aes.rs
@@ -26,9 +26,9 @@
use openssl::symm::{Cipher, Crypter, Mode};
-use crypto_provider::aes::cbc::{AesCbcIv, DecryptionError};
-use crypto_provider::aes::gcm_siv::{AesGcmSiv, GcmSivError};
use crypto_provider::aes::{
+ cbc::{AesCbcIv, DecryptionError},
+ ctr::NonceAndCounter,
Aes, Aes128Key, Aes256Key, AesBlock, AesCipher, AesDecryptCipher, AesEncryptCipher, AesKey,
};
@@ -152,20 +152,20 @@ pub struct OpenSslAesCtr128 {
impl crypto_provider::aes::ctr::AesCtr for OpenSslAesCtr128 {
type Key = crypto_provider::aes::Aes128Key;
- fn new(key: &Self::Key, iv: [u8; 16]) -> Self {
+ fn new(key: &Self::Key, nonce_and_counter: NonceAndCounter) -> Self {
Self {
enc_cipher: Crypter::new(
Cipher::aes_128_ctr(),
Mode::Encrypt,
key.as_slice(),
- Some(&iv),
+ Some(&nonce_and_counter.as_block_array()),
)
.unwrap(),
dec_cipher: Crypter::new(
Cipher::aes_128_ctr(),
Mode::Decrypt,
key.as_slice(),
- Some(&iv),
+ Some(&nonce_and_counter.as_block_array()),
)
.unwrap(),
}
@@ -192,20 +192,20 @@ pub struct OpenSslAesCtr256 {
impl crypto_provider::aes::ctr::AesCtr for OpenSslAesCtr256 {
type Key = crypto_provider::aes::Aes256Key;
- fn new(key: &Self::Key, iv: [u8; 16]) -> Self {
+ fn new(key: &Self::Key, nonce_and_counter: NonceAndCounter) -> Self {
Self {
enc_cipher: Crypter::new(
Cipher::aes_256_ctr(),
Mode::Encrypt,
key.as_slice(),
- Some(&iv),
+ Some(&nonce_and_counter.as_block_array()),
)
.unwrap(),
dec_cipher: Crypter::new(
Cipher::aes_256_ctr(),
Mode::Decrypt,
key.as_slice(),
- Some(&iv),
+ Some(&nonce_and_counter.as_block_array()),
)
.unwrap(),
}
@@ -224,43 +224,6 @@ impl crypto_provider::aes::ctr::AesCtr for OpenSslAesCtr256 {
}
}
-/// Unimplemented AES-GCM-SIV implementation.
-pub struct OpenSslAesGcmSiv128;
-
-impl AesGcmSiv for OpenSslAesGcmSiv128 {
- type Key = Aes128Key;
-
- fn new(_key: &Self::Key) -> Self {
- todo!()
- }
-
- fn encrypt(&self, _data: &mut Vec<u8>, _aad: &[u8], _nonce: &[u8]) -> Result<(), GcmSivError> {
- todo!()
- }
-
- fn decrypt(&self, _data: &mut Vec<u8>, _aad: &[u8], _nonce: &[u8]) -> Result<(), GcmSivError> {
- todo!()
- }
-}
-
-pub struct OpenSslAesGcmSiv256;
-
-impl AesGcmSiv for OpenSslAesGcmSiv256 {
- type Key = Aes256Key;
-
- fn new(_key: &Self::Key) -> Self {
- todo!()
- }
-
- fn encrypt(&self, _data: &mut Vec<u8>, _aad: &[u8], _nonce: &[u8]) -> Result<(), GcmSivError> {
- todo!()
- }
-
- fn decrypt(&self, _data: &mut Vec<u8>, _aad: &[u8], _nonce: &[u8]) -> Result<(), GcmSivError> {
- todo!()
- }
-}
-
#[cfg(test)]
mod tests {
use core::marker::PhantomData;
diff --git a/nearby/crypto/crypto_provider_openssl/src/ed25519.rs b/nearby/crypto/crypto_provider_openssl/src/ed25519.rs
index ac50a9f..110daf2 100644
--- a/nearby/crypto/crypto_provider_openssl/src/ed25519.rs
+++ b/nearby/crypto/crypto_provider_openssl/src/ed25519.rs
@@ -13,8 +13,7 @@
// limitations under the License.
use crypto_provider::ed25519::{
- InvalidBytes, InvalidSignature, Signature as _, SignatureError, KEY_LENGTH, KEY_PAIR_LENGTH,
- SIGNATURE_LENGTH,
+ InvalidBytes, RawPrivateKey, RawPublicKey, RawSignature, Signature as _, SignatureError,
};
use openssl::pkey::{Id, PKey, Private};
use openssl::sign::{Signer, Verifier};
@@ -33,7 +32,7 @@ impl crypto_provider::ed25519::KeyPair for KeyPair {
type PublicKey = PublicKey;
type Signature = Signature;
- fn to_bytes(&self) -> [u8; KEY_PAIR_LENGTH] {
+ fn private_key(&self) -> RawPrivateKey {
let private_key = self.0.raw_private_key().unwrap();
let mut public_key = self.0.raw_public_key().unwrap();
let mut result = private_key;
@@ -41,22 +40,20 @@ impl crypto_provider::ed25519::KeyPair for KeyPair {
result.try_into().unwrap()
}
- fn from_bytes(bytes: [u8; KEY_PAIR_LENGTH]) -> Result<Self, InvalidBytes> {
- PKey::private_key_from_raw_bytes(&bytes[..KEY_LENGTH], Id::ED25519)
- .map(Self)
- .map_err(|_| InvalidBytes)
+ fn from_private_key(bytes: &RawPrivateKey) -> Self {
+ Self(PKey::private_key_from_raw_bytes(bytes, Id::ED25519).unwrap())
}
fn sign(&self, msg: &[u8]) -> Self::Signature {
let mut signer =
Signer::new_without_digest(&self.0).expect("should be able to create a signer");
- let sig_bytes: [u8; SIGNATURE_LENGTH] = signer
+ let sig_bytes: RawSignature = signer
.sign_oneshot_to_vec(msg)
.expect("singing should succeed")
.try_into()
.expect("signature should be a valid size");
- Self::Signature::from_bytes(&sig_bytes).expect("this should never fail")
+ Self::Signature::from_bytes(&sig_bytes)
}
fn generate() -> Self {
@@ -71,14 +68,14 @@ impl crypto_provider::ed25519::KeyPair for KeyPair {
}
}
-pub struct Signature([u8; SIGNATURE_LENGTH]);
+pub struct Signature(RawSignature);
impl crypto_provider::ed25519::Signature for Signature {
- fn from_bytes(bytes: &[u8]) -> Result<Self, InvalidSignature> {
- bytes.try_into().map(Self).map_err(|_| InvalidSignature)
+ fn from_bytes(bytes: &RawSignature) -> Self {
+ Self(*bytes)
}
- fn to_bytes(&self) -> [u8; SIGNATURE_LENGTH] {
+ fn to_bytes(&self) -> RawSignature {
self.0
}
}
@@ -88,14 +85,14 @@ pub struct PublicKey(Vec<u8>);
impl crypto_provider::ed25519::PublicKey for PublicKey {
type Signature = Signature;
- fn from_bytes(bytes: [u8; KEY_LENGTH]) -> Result<Self, InvalidBytes>
+ fn from_bytes(bytes: &RawPublicKey) -> Result<Self, InvalidBytes>
where
Self: Sized,
{
Ok(PublicKey(bytes.to_vec()))
}
- fn to_bytes(&self) -> [u8; KEY_LENGTH] {
+ fn to_bytes(&self) -> RawPublicKey {
//Should be length 32
self.0.as_slice().try_into().unwrap()
}
diff --git a/nearby/crypto/crypto_provider_openssl/src/lib.rs b/nearby/crypto/crypto_provider_openssl/src/lib.rs
index 41c4642..d8157d2 100644
--- a/nearby/crypto/crypto_provider_openssl/src/lib.rs
+++ b/nearby/crypto/crypto_provider_openssl/src/lib.rs
@@ -80,8 +80,8 @@ impl crypto_provider::CryptoProvider for Openssl {
type AesCtr128 = aes::OpenSslAesCtr128;
type AesCtr256 = aes::OpenSslAesCtr256;
type Ed25519 = ed25519::Ed25519;
- type Aes128GcmSiv = aes::OpenSslAesGcmSiv128;
- type Aes256GcmSiv = aes::OpenSslAesGcmSiv256;
+ type Aes128GcmSiv = crypto_provider_stubs::Aes128Stubs;
+ type Aes256GcmSiv = crypto_provider_stubs::Aes256Stubs;
type CryptoRng = OpenSslRng;
fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
diff --git a/nearby/crypto/crypto_provider_rustcrypto/Cargo.toml b/nearby/crypto/crypto_provider_rustcrypto/Cargo.toml
index cd4cf4a..e0bf534 100644
--- a/nearby/crypto/crypto_provider_rustcrypto/Cargo.toml
+++ b/nearby/crypto/crypto_provider_rustcrypto/Cargo.toml
@@ -6,7 +6,7 @@ publish.workspace = true
[dependencies]
aead = "0.5.1"
-aes-gcm-siv = { version = "0.11.1", features = ["aes"], optional = true }
+aes-gcm-siv = { version = "0.11.1", features = ["aes"] }
crypto_provider.workspace = true
hmac.workspace = true
hkdf.workspace = true
@@ -30,7 +30,6 @@ crypto_provider_test.workspace = true
crypto_provider_rustcrypto = { path = ".", features = ["std"] }
[features]
-default = ["alloc", "gcm_siv", "rand_chacha"]
+default = ["alloc", "rand_chacha"]
std = ["ed25519-dalek/default", "rand/std", "rand/std_rng", "crypto_provider/std", "crypto_provider/alloc"]
alloc = ["aead/bytes"]
-gcm_siv = ["crypto_provider/gcm_siv", "dep:aes-gcm-siv"]
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/aes/gcm_siv.rs b/nearby/crypto/crypto_provider_rustcrypto/src/aead/aes_gcm_siv.rs
index c31e09a..402c2ed 100644
--- a/nearby/crypto/crypto_provider_rustcrypto/src/aes/gcm_siv.rs
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/aead/aes_gcm_siv.rs
@@ -15,51 +15,52 @@
use aes_gcm_siv::{AeadInPlace, Aes128GcmSiv, Aes256GcmSiv, KeyInit, Nonce};
extern crate alloc;
use alloc::vec::Vec;
+use crypto_provider::aead::{Aead, AeadError};
-use crypto_provider::aes::gcm_siv::GcmSivError;
+use crypto_provider::aead::aes_gcm_siv::AesGcmSiv;
use crypto_provider::aes::{Aes128Key, Aes256Key, AesKey};
pub struct AesGcmSiv128(Aes128GcmSiv);
-impl crypto_provider::aes::gcm_siv::AesGcmSiv for AesGcmSiv128 {
+impl AesGcmSiv for AesGcmSiv128 {}
+
+impl Aead for AesGcmSiv128 {
+ const TAG_SIZE: usize = 16;
+ type Nonce = [u8; 12];
type Key = Aes128Key;
fn new(key: &Self::Key) -> Self {
Self(Aes128GcmSiv::new(key.as_slice().into()))
}
- fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
- self.0
- .encrypt_in_place(Nonce::from_slice(nonce), aad, data)
- .map_err(|_| GcmSivError::EncryptOutBufferTooSmall)
+ fn encrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
+ self.0.encrypt_in_place(Nonce::from_slice(nonce), aad, msg).map_err(|_| AeadError)
}
- fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
- self.0
- .decrypt_in_place(Nonce::from_slice(nonce), aad, data)
- .map_err(|_| GcmSivError::DecryptTagDoesNotMatch)
+ fn decrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
+ self.0.decrypt_in_place(Nonce::from_slice(nonce), aad, msg).map_err(|_| AeadError)
}
}
pub struct AesGcmSiv256(Aes256GcmSiv);
-impl crypto_provider::aes::gcm_siv::AesGcmSiv for AesGcmSiv256 {
+impl AesGcmSiv for AesGcmSiv256 {}
+
+impl Aead for AesGcmSiv256 {
+ const TAG_SIZE: usize = 16;
+ type Nonce = [u8; 12];
type Key = Aes256Key;
fn new(key: &Self::Key) -> Self {
Self(Aes256GcmSiv::new(key.as_slice().into()))
}
- fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
- self.0
- .encrypt_in_place(Nonce::from_slice(nonce), aad, data)
- .map_err(|_| GcmSivError::EncryptOutBufferTooSmall)
+ fn encrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
+ self.0.encrypt_in_place(Nonce::from_slice(nonce), aad, msg).map_err(|_| AeadError)
}
- fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
- self.0
- .decrypt_in_place(Nonce::from_slice(nonce), aad, data)
- .map_err(|_| GcmSivError::DecryptTagDoesNotMatch)
+ fn decrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
+ self.0.decrypt_in_place(Nonce::from_slice(nonce), aad, msg).map_err(|_| AeadError)
}
}
@@ -67,7 +68,7 @@ impl crypto_provider::aes::gcm_siv::AesGcmSiv for AesGcmSiv256 {
mod tests {
use core::marker::PhantomData;
- use crypto_provider_test::aes::gcm_siv::*;
+ use crypto_provider_test::aead::aes_gcm_siv::*;
use crypto_provider_test::aes::*;
use super::*;
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/aead/mod.rs b/nearby/crypto/crypto_provider_rustcrypto/src/aead/mod.rs
new file mode 100644
index 0000000..7fc561b
--- /dev/null
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/aead/mod.rs
@@ -0,0 +1,15 @@
+// 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.
+
+pub(crate) mod aes_gcm_siv;
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/aes/ctr.rs b/nearby/crypto/crypto_provider_rustcrypto/src/aes/ctr.rs
new file mode 100644
index 0000000..85cdac6
--- /dev/null
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/aes/ctr.rs
@@ -0,0 +1,89 @@
+// 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 aes::cipher::KeyIvInit;
+use aes::cipher::StreamCipher;
+use crypto_provider::aes::{ctr::NonceAndCounter, AesKey};
+
+/// RustCrypto implementation of AES-CTR 128.
+pub struct AesCtr128 {
+ cipher: ctr::Ctr128BE<aes::Aes128>,
+}
+
+impl crypto_provider::aes::ctr::AesCtr for AesCtr128 {
+ type Key = crypto_provider::aes::Aes128Key;
+
+ fn new(key: &Self::Key, nonce_and_counter: NonceAndCounter) -> Self {
+ Self {
+ cipher: ctr::Ctr128BE::new(
+ key.as_array().into(),
+ &nonce_and_counter.as_block_array().into(),
+ ),
+ }
+ }
+
+ fn encrypt(&mut self, data: &mut [u8]) {
+ self.cipher.apply_keystream(data);
+ }
+
+ fn decrypt(&mut self, data: &mut [u8]) {
+ self.cipher.apply_keystream(data);
+ }
+}
+
+/// RustCrypto implementation of AES-CTR 256.
+pub struct AesCtr256 {
+ cipher: ctr::Ctr128BE<aes::Aes256>,
+}
+
+impl crypto_provider::aes::ctr::AesCtr for AesCtr256 {
+ type Key = crypto_provider::aes::Aes256Key;
+
+ fn new(key: &Self::Key, nonce_and_counter: NonceAndCounter) -> Self {
+ Self {
+ cipher: ctr::Ctr128BE::new(
+ key.as_array().into(),
+ &nonce_and_counter.as_block_array().into(),
+ ),
+ }
+ }
+
+ fn encrypt(&mut self, data: &mut [u8]) {
+ self.cipher.apply_keystream(data);
+ }
+
+ fn decrypt(&mut self, data: &mut [u8]) {
+ self.cipher.apply_keystream(data);
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use core::marker::PhantomData;
+
+ use crypto_provider_test::aes::ctr::*;
+ use crypto_provider_test::aes::*;
+
+ use super::*;
+
+ #[apply(aes_128_ctr_test_cases)]
+ fn aes_128_ctr_test(testcase: CryptoProviderTestCase<AesCtr128>) {
+ testcase(PhantomData);
+ }
+
+ #[apply(aes_256_ctr_test_cases)]
+ fn aes_256_ctr_test(testcase: CryptoProviderTestCase<AesCtr256>) {
+ testcase(PhantomData);
+ }
+}
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/aes/mod.rs b/nearby/crypto/crypto_provider_rustcrypto/src/aes/mod.rs
index 0524425..c71f2ec 100644
--- a/nearby/crypto/crypto_provider_rustcrypto/src/aes/mod.rs
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/aes/mod.rs
@@ -15,10 +15,7 @@
//! Implementation of `crypto_provider::aes` types using RustCrypto's `aes`.
#![forbid(unsafe_code)]
-use aes::cipher::{
- generic_array, BlockDecrypt as _, BlockEncrypt as _, KeyInit as _, KeyIvInit as _,
- StreamCipher as _,
-};
+use aes::cipher::{generic_array, BlockDecrypt as _, BlockEncrypt as _, KeyInit as _};
use crypto_provider::aes::{
Aes, Aes128Key, Aes256Key, AesBlock, AesCipher, AesDecryptCipher, AesEncryptCipher, AesKey,
@@ -27,8 +24,8 @@ use crypto_provider::aes::{
/// Module implementing AES-CBC.
#[cfg(feature = "alloc")]
pub(crate) mod cbc;
-#[cfg(feature = "gcm_siv")]
-pub(crate) mod gcm_siv;
+
+pub(crate) mod ctr;
/// Rust crypto implementation of AES-128
pub struct Aes128;
@@ -92,67 +89,12 @@ impl AesDecryptCipher for Aes256Cipher {
}
}
-/// RustCrypto implementation of AES-CTR 128.
-pub struct AesCtr128 {
- cipher: ctr::Ctr128BE<aes::Aes128>,
-}
-
-impl crypto_provider::aes::ctr::AesCtr for AesCtr128 {
- type Key = crypto_provider::aes::Aes128Key;
-
- fn new(key: &Self::Key, iv: [u8; 16]) -> Self {
- Self { cipher: ctr::Ctr128BE::new(key.as_array().into(), &iv.into()) }
- }
-
- fn encrypt(&mut self, data: &mut [u8]) {
- self.cipher.apply_keystream(data);
- }
-
- fn decrypt(&mut self, data: &mut [u8]) {
- self.cipher.apply_keystream(data);
- }
-}
-
-/// RustCrypto implementation of AES-CTR 256.
-pub struct AesCtr256 {
- cipher: ctr::Ctr128BE<aes::Aes256>,
-}
-
-impl crypto_provider::aes::ctr::AesCtr for AesCtr256 {
- type Key = crypto_provider::aes::Aes256Key;
-
- fn new(key: &Self::Key, iv: [u8; 16]) -> Self {
- Self { cipher: ctr::Ctr128BE::new(key.as_array().into(), &iv.into()) }
- }
-
- fn encrypt(&mut self, data: &mut [u8]) {
- self.cipher.apply_keystream(data);
- }
-
- fn decrypt(&mut self, data: &mut [u8]) {
- self.cipher.apply_keystream(data);
- }
-}
-
#[cfg(test)]
mod tests {
+ use super::*;
use core::marker::PhantomData;
-
- use crypto_provider_test::aes::ctr::*;
use crypto_provider_test::aes::*;
- use super::*;
-
- #[apply(aes_128_ctr_test_cases)]
- fn aes_128_ctr_test(testcase: CryptoProviderTestCase<AesCtr128>) {
- testcase(PhantomData);
- }
-
- #[apply(aes_256_ctr_test_cases)]
- fn aes_256_ctr_test(testcase: CryptoProviderTestCase<AesCtr256>) {
- testcase(PhantomData);
- }
-
#[apply(aes_128_encrypt_test_cases)]
fn aes_128_encrypt_test(testcase: CryptoProviderTestCase<Aes128Cipher>) {
testcase(PhantomData);
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/ed25519.rs b/nearby/crypto/crypto_provider_rustcrypto/src/ed25519.rs
index ea6bee1..d11a5ea 100644
--- a/nearby/crypto/crypto_provider_rustcrypto/src/ed25519.rs
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/ed25519.rs
@@ -15,8 +15,8 @@
use ed25519_dalek::Signer;
use crypto_provider::ed25519::{
- InvalidBytes, InvalidSignature, Signature as _, SignatureError, KEY_LENGTH, KEY_PAIR_LENGTH,
- SIGNATURE_LENGTH,
+ InvalidBytes, RawPrivateKey, RawPublicKey, RawSignature, Signature as _, SignatureError,
+ PRIVATE_KEY_LENGTH, PUBLIC_KEY_LENGTH, SIGNATURE_LENGTH,
};
pub struct Ed25519;
@@ -33,18 +33,17 @@ impl crypto_provider::ed25519::KeyPair for KeyPair {
type PublicKey = PublicKey;
type Signature = Signature;
- fn to_bytes(&self) -> [u8; KEY_PAIR_LENGTH] {
- self.0.to_keypair_bytes()
+ fn private_key(&self) -> [u8; PRIVATE_KEY_LENGTH] {
+ self.0.to_bytes()
}
- fn from_bytes(bytes: [u8; KEY_PAIR_LENGTH]) -> Result<Self, InvalidBytes> {
- ed25519_dalek::SigningKey::from_keypair_bytes(&bytes).map(Self).map_err(|_| InvalidBytes)
+ fn from_private_key(bytes: &RawPrivateKey) -> Self {
+ Self(ed25519_dalek::SigningKey::from_bytes(bytes))
}
#[allow(clippy::expect_used)]
fn sign(&self, msg: &[u8]) -> Self::Signature {
Self::Signature::from_bytes(&self.0.sign(msg).to_bytes())
- .expect("a signature will always produce valid bytes for creating a Signature")
}
//TODO: allow providing a crypto rng and make it a no-op for openssl if the need arises to
@@ -63,11 +62,8 @@ impl crypto_provider::ed25519::KeyPair for KeyPair {
pub struct Signature(ed25519_dalek::Signature);
impl crypto_provider::ed25519::Signature for Signature {
- fn from_bytes(bytes: &[u8]) -> Result<Self, InvalidSignature> {
- if bytes.len() != SIGNATURE_LENGTH {
- return Err(InvalidSignature);
- }
- ed25519_dalek::Signature::from_slice(bytes).map(Self).map_err(|_| InvalidSignature)
+ fn from_bytes(bytes: &RawSignature) -> Self {
+ Self(ed25519_dalek::Signature::from_bytes(bytes))
}
fn to_bytes(&self) -> [u8; SIGNATURE_LENGTH] {
@@ -80,14 +76,14 @@ pub struct PublicKey(ed25519_dalek::VerifyingKey);
impl crypto_provider::ed25519::PublicKey for PublicKey {
type Signature = Signature;
- fn from_bytes(bytes: [u8; KEY_LENGTH]) -> Result<Self, InvalidBytes>
+ fn from_bytes(bytes: &RawPublicKey) -> Result<Self, InvalidBytes>
where
Self: Sized,
{
- ed25519_dalek::VerifyingKey::from_bytes(&bytes).map(PublicKey).map_err(|_| InvalidBytes)
+ ed25519_dalek::VerifyingKey::from_bytes(bytes).map(PublicKey).map_err(|_| InvalidBytes)
}
- fn to_bytes(&self) -> [u8; KEY_LENGTH] {
+ fn to_bytes(&self) -> [u8; PUBLIC_KEY_LENGTH] {
self.0.to_bytes()
}
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs b/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs
index ed0a1f0..e95712c 100644
--- a/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs
@@ -32,6 +32,8 @@ use rand::{Rng, RngCore, SeedableRng};
use rand_core::CryptoRng;
use subtle::ConstantTimeEq;
+/// Contains the RustCrypto backed impls for AES-GCM-SIV operations
+mod aead;
/// Contains the RustCrypto backed AES impl for CryptoProvider
pub mod aes;
/// Contains the RustCrypto backed impl for ed25519 key generation, signing, and verification
@@ -86,13 +88,11 @@ impl<R: CryptoRng + SeedableRng + RngCore + Eq + PartialEq + Debug + Clone + Sen
type Sha512 = sha2_rc::RustCryptoSha512;
type Aes128 = aes::Aes128;
type Aes256 = aes::Aes256;
- type AesCtr128 = aes::AesCtr128;
- type AesCtr256 = aes::AesCtr256;
+ type AesCtr128 = aes::ctr::AesCtr128;
+ type AesCtr256 = aes::ctr::AesCtr256;
type Ed25519 = ed25519::Ed25519;
- #[cfg(feature = "gcm_siv")]
- type Aes128GcmSiv = aes::gcm_siv::AesGcmSiv128;
- #[cfg(feature = "gcm_siv")]
- type Aes256GcmSiv = aes::gcm_siv::AesGcmSiv256;
+ type Aes128GcmSiv = aead::aes_gcm_siv::AesGcmSiv128;
+ type Aes256GcmSiv = aead::aes_gcm_siv::AesGcmSiv256;
type CryptoRng = RcRng<R>;
fn constant_time_eq(a: &[u8], b: &[u8]) -> bool {
diff --git a/nearby/crypto/crypto_provider_stubs/src/lib.rs b/nearby/crypto/crypto_provider_stubs/src/lib.rs
index fcfec39..5d54b72 100644
--- a/nearby/crypto/crypto_provider_stubs/src/lib.rs
+++ b/nearby/crypto/crypto_provider_stubs/src/lib.rs
@@ -20,22 +20,23 @@
use std::fmt::Debug;
-use crypto_provider::aes::cbc::{AesCbcIv, AesCbcPkcs7Padded, DecryptionError};
-use crypto_provider::aes::ctr::AesCtr;
-use crypto_provider::aes::gcm_siv::{AesGcmSiv, GcmSivError};
-use crypto_provider::aes::{
- Aes, Aes128Key, Aes256Key, AesBlock, AesCipher, AesDecryptCipher, AesEncryptCipher,
+use crypto_provider::ed25519::{RawPrivateKey, RawPublicKey, RawSignature};
+use crypto_provider::{
+ aead::aes_gcm_siv::AesGcmSiv,
+ aead::{Aead, AeadError},
+ aes::{
+ cbc::{AesCbcIv, AesCbcPkcs7Padded, DecryptionError},
+ ctr::{AesCtr, NonceAndCounter},
+ Aes, Aes128Key, Aes256Key, AesBlock, AesCipher, AesDecryptCipher, AesEncryptCipher,
+ },
+ ed25519,
+ ed25519::{Ed25519Provider, InvalidBytes, KeyPair, Signature, SignatureError},
+ elliptic_curve::{EcdhProvider, EphemeralSecret, PublicKey},
+ hkdf::{Hkdf, InvalidLength},
+ hmac::{Hmac, MacError},
+ p256::{P256PublicKey, P256},
+ x25519::X25519,
};
-use crypto_provider::ed25519;
-use crypto_provider::ed25519::{
- Ed25519Provider, InvalidBytes, InvalidSignature, KeyPair, Signature, SignatureError,
- KEY_LENGTH, KEY_PAIR_LENGTH, SIGNATURE_LENGTH,
-};
-use crypto_provider::elliptic_curve::{EcdhProvider, EphemeralSecret, PublicKey};
-use crypto_provider::hkdf::{Hkdf, InvalidLength};
-use crypto_provider::hmac::{Hmac, MacError};
-use crypto_provider::p256::{P256PublicKey, P256};
-use crypto_provider::x25519::X25519;
#[derive(Default, Clone, Debug, PartialEq, Eq)]
pub struct CryptoProviderStubs;
@@ -316,7 +317,7 @@ impl AesEncryptCipher for Aes128Stubs {
impl AesCtr for Aes128Stubs {
type Key = Aes128Key;
- fn new(_key: &Self::Key, _iv: [u8; 16]) -> Self {
+ fn new(_key: &Self::Key, _nonce_and_counter: NonceAndCounter) -> Self {
unimplemented!()
}
@@ -329,22 +330,26 @@ impl AesCtr for Aes128Stubs {
}
}
-impl AesGcmSiv for Aes128Stubs {
+impl Aead for Aes128Stubs {
+ const TAG_SIZE: usize = 16;
+ type Nonce = [u8; 12];
type Key = Aes128Key;
fn new(key: &Self::Key) -> Self {
unimplemented!()
}
- fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
+ fn encrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
unimplemented!()
}
- fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
+ fn decrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
unimplemented!()
}
}
+impl AesGcmSiv for Aes128Stubs {}
+
pub struct Aes256Stubs;
impl AesCipher for Aes256Stubs {
@@ -370,7 +375,7 @@ impl AesDecryptCipher for Aes256Stubs {
impl AesCtr for Aes256Stubs {
type Key = Aes256Key;
- fn new(_key: &Self::Key, _iv: [u8; 16]) -> Self {
+ fn new(_key: &Self::Key, _nonce_and_counter: NonceAndCounter) -> Self {
unimplemented!()
}
@@ -383,22 +388,26 @@ impl AesCtr for Aes256Stubs {
}
}
-impl AesGcmSiv for Aes256Stubs {
+impl Aead for Aes256Stubs {
+ const TAG_SIZE: usize = 16;
+ type Nonce = [u8; 12];
type Key = Aes256Key;
fn new(key: &Self::Key) -> Self {
unimplemented!()
}
- fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
+ fn encrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
unimplemented!()
}
- fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
+ fn decrypt(&self, msg: &mut Vec<u8>, aad: &[u8], nonce: &[u8; 12]) -> Result<(), AeadError> {
unimplemented!()
}
}
+impl AesGcmSiv for Aes256Stubs {}
+
pub struct Ed25519Stubs;
impl Ed25519Provider for Ed25519Stubs {
@@ -410,14 +419,14 @@ impl Ed25519Provider for Ed25519Stubs {
impl ed25519::PublicKey for PublicKeyStubs {
type Signature = SignatureStubs;
- fn from_bytes(bytes: [u8; KEY_LENGTH]) -> Result<Self, InvalidBytes>
+ fn from_bytes(bytes: &RawPublicKey) -> Result<Self, InvalidBytes>
where
Self: Sized,
{
unimplemented!()
}
- fn to_bytes(&self) -> [u8; KEY_LENGTH] {
+ fn to_bytes(&self) -> RawPublicKey {
unimplemented!()
}
@@ -433,11 +442,11 @@ impl ed25519::PublicKey for PublicKeyStubs {
pub struct SignatureStubs;
impl Signature for SignatureStubs {
- fn from_bytes(_bytes: &[u8]) -> Result<Self, InvalidSignature> {
+ fn from_bytes(_bytes: &RawSignature) -> Self {
unimplemented!()
}
- fn to_bytes(&self) -> [u8; SIGNATURE_LENGTH] {
+ fn to_bytes(&self) -> RawSignature {
unimplemented!()
}
}
@@ -448,15 +457,11 @@ impl KeyPair for KeyPairStubs {
type PublicKey = PublicKeyStubs;
type Signature = SignatureStubs;
- fn generate() -> Self {
+ fn private_key(&self) -> RawPrivateKey {
unimplemented!()
}
- fn to_bytes(&self) -> [u8; KEY_PAIR_LENGTH] {
- unimplemented!()
- }
-
- fn from_bytes(_bytes: [u8; KEY_PAIR_LENGTH]) -> Result<Self, InvalidBytes>
+ fn from_private_key(_bytes: &RawPrivateKey) -> Self
where
Self: Sized,
{
@@ -467,6 +472,10 @@ impl KeyPair for KeyPairStubs {
unimplemented!()
}
+ fn generate() -> Self {
+ unimplemented!()
+ }
+
fn public(&self) -> Self::PublicKey {
unimplemented!()
}
diff --git a/nearby/crypto/crypto_provider_test/Cargo.toml b/nearby/crypto/crypto_provider_test/Cargo.toml
index 1f58c84..a4d92ec 100644
--- a/nearby/crypto/crypto_provider_test/Cargo.toml
+++ b/nearby/crypto/crypto_provider_test/Cargo.toml
@@ -5,7 +5,7 @@ edition.workspace = true
publish.workspace = true
[dependencies]
-crypto_provider.workspace = true
+crypto_provider = { workspace = true, features = ["test_vectors"] }
rand_ext.workspace = true
test_helper.workspace = true
diff --git a/nearby/crypto/crypto_provider_test/fuzz/Cargo.lock b/nearby/crypto/crypto_provider_test/fuzz/Cargo.lock
index b807e4c..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 @@ dependencies = [
[[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 @@ dependencies = [
[[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",
]
@@ -188,6 +182,7 @@ version = "0.1.0"
dependencies = [
"cfg-if",
"crypto_provider",
+ "crypto_provider_stubs",
"openssl",
"ouroboros",
]
@@ -217,6 +212,13 @@ dependencies = [
]
[[package]]
+name = "crypto_provider_stubs"
+version = "0.1.0"
+dependencies = [
+ "crypto_provider",
+]
+
+[[package]]
name = "crypto_provider_test-fuzz"
version = "0.0.0"
dependencies = [
@@ -237,23 +239,36 @@ dependencies = [
[[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 = "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.26",
+]
+
+[[package]]
name = "der"
-version = "0.7.5"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
dependencies = [
"const-oid",
"zeroize",
@@ -261,20 +276,20 @@ dependencies = [
[[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",
@@ -292,9 +307,9 @@ dependencies = [
[[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",
@@ -304,9 +319,9 @@ dependencies = [
[[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",
@@ -365,9 +380,9 @@ dependencies = [
[[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",
@@ -386,6 +401,12 @@ dependencies = [
]
[[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"
@@ -424,9 +445,9 @@ dependencies = [
[[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"
@@ -440,16 +461,10 @@ dependencies = [
]
[[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"
@@ -459,9 +474,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[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",
@@ -480,14 +495,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
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",
@@ -497,25 +512,26 @@ dependencies = [
[[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]]
@@ -529,16 +545,6 @@ dependencies = [
]
[[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"
@@ -552,9 +558,9 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
[[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",
@@ -570,9 +576,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[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",
]
@@ -603,18 +609,18 @@ dependencies = [
[[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",
]
@@ -648,10 +654,19 @@ dependencies = [
]
[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[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",
@@ -661,10 +676,16 @@ dependencies = [
]
[[package]]
+name = "semver"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[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",
@@ -678,10 +699,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[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"
@@ -690,15 +717,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
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",
@@ -713,15 +739,15 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[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",
@@ -747,9 +773,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[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/crypto/crypto_provider_test/src/aes/gcm_siv.rs b/nearby/crypto/crypto_provider_test/src/aead/aes_gcm_siv.rs
index b27e61c..893fba2 100644
--- a/nearby/crypto/crypto_provider_test/src/aes/gcm_siv.rs
+++ b/nearby/crypto/crypto_provider_test/src/aead/aes_gcm_siv.rs
@@ -17,10 +17,10 @@ use core::marker;
use hex_literal::hex;
use rstest_reuse::template;
-use crate::aes::{Aes128Key, Aes256Key};
pub use crate::prelude;
+use crypto_provider::aes::{Aes128Key, Aes256Key};
-use crypto_provider::aes::gcm_siv::AesGcmSiv;
+use crypto_provider::aead::aes_gcm_siv::AesGcmSiv;
/// Test AES-GCM-SIV-128 encryption/decryption
pub fn aes_128_gcm_siv_test<A: AesGcmSiv<Key = Aes128Key>>(_marker: marker::PhantomData<A>) {
@@ -42,6 +42,7 @@ pub fn aes_128_gcm_siv_test<A: AesGcmSiv<Key = Aes128Key>>(_marker: marker::Phan
assert!(aes.encrypt(&mut buf, b"", &nonce).is_ok());
assert_eq!(&buf[..8], &ct);
assert_eq!(&buf[8..], &tag);
+ assert_eq!(A::TAG_SIZE, buf[8..].len());
assert!(aes.decrypt(&mut buf, b"", &nonce).is_ok());
assert_eq!(&buf[..], &msg);
}
@@ -61,6 +62,7 @@ pub fn aes_256_gcm_siv_test<A: AesGcmSiv<Key = Aes256Key>>(_marker: marker::Phan
assert!(aes.encrypt(&mut buf, b"", &nonce).is_ok());
assert_eq!(&buf[..8], &ct);
assert_eq!(&buf[8..], &tag);
+ assert_eq!(A::TAG_SIZE, buf[8..].len());
assert!(aes.decrypt(&mut buf, b"", &nonce).is_ok());
assert_eq!(&buf[..], &msg);
// TC78
@@ -79,7 +81,7 @@ pub fn aes_256_gcm_siv_test<A: AesGcmSiv<Key = Aes256Key>>(_marker: marker::Phan
/// For example, to test `MyAesGcmSiv128Impl`:
///
/// ```
-/// use crypto_provider::aes::gcm_siv::testing::*;
+/// use crypto_provider::aes::aes_gcm_siv::testing::*;
///
/// mod tests {
/// #[apply(aes_128_gcm_siv_test_cases)]
@@ -102,7 +104,7 @@ fn aes_128_gcm_siv_test_cases<F: AesGcmSivFactory<Key = Aes128Key>>(
/// For example, to test `MyAesGcmSiv256Impl`:
///
/// ```
-/// use crypto_provider::aes::gcm_siv::testing::*;
+/// use crypto_provider::aes::aes_gcm_siv::testing::*;
///
/// mod tests {
/// #[apply(aes_256_gcm_siv_test_cases)]
diff --git a/nearby/crypto/crypto_provider_test/src/aead/mod.rs b/nearby/crypto/crypto_provider_test/src/aead/mod.rs
new file mode 100644
index 0000000..962aa49
--- /dev/null
+++ b/nearby/crypto/crypto_provider_test/src/aead/mod.rs
@@ -0,0 +1,16 @@
+// 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.
+
+/// Contains test cases for aes_gcm_siv implementations.
+pub mod aes_gcm_siv;
diff --git a/nearby/crypto/crypto_provider_test/src/aes/ctr.rs b/nearby/crypto/crypto_provider_test/src/aes/ctr.rs
index d5f0c2d..b1d6b8b 100644
--- a/nearby/crypto/crypto_provider_test/src/aes/ctr.rs
+++ b/nearby/crypto/crypto_provider_test/src/aes/ctr.rs
@@ -14,7 +14,7 @@
use crate::aes::{Aes128Key, Aes256Key};
pub use crate::prelude;
use core::marker;
-use crypto_provider::aes::ctr::AesCtr;
+use crypto_provider::aes::ctr::{AesCtr, NonceAndCounter};
use hex_literal::hex;
use rstest_reuse::template;
@@ -24,7 +24,7 @@ pub fn aes_128_ctr_test_encrypt<A: AesCtr<Key = Aes128Key>>(_marker: marker::Pha
let key: Aes128Key = hex!("2b7e151628aed2a6abf7158809cf4f3c").into();
let iv = hex!("f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");
let mut block: [u8; 16];
- let mut cipher = A::new(&key, iv);
+ let mut cipher = A::new(&key, NonceAndCounter::from_block(iv));
block = hex!("6bc1bee22e409f96e93d7e117393172a");
cipher.encrypt(&mut block);
@@ -53,7 +53,7 @@ pub fn aes_128_ctr_test_decrypt<A: AesCtr<Key = Aes128Key>>(_marker: marker::Pha
let key: Aes128Key = hex!("2b7e151628aed2a6abf7158809cf4f3c").into();
let iv = hex!("f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");
let mut block: [u8; 16];
- let mut cipher = A::new(&key, iv);
+ let mut cipher = A::new(&key, NonceAndCounter::from_block(iv));
block = hex!("874d6191b620e3261bef6864990db6ce");
cipher.decrypt(&mut block);
@@ -83,7 +83,7 @@ pub fn aes_256_ctr_test_encrypt<A: AesCtr<Key = Aes256Key>>(_marker: marker::Pha
hex!("603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4").into();
let iv = hex!("f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");
let mut block: [u8; 16];
- let mut cipher = A::new(&key, iv);
+ let mut cipher = A::new(&key, NonceAndCounter::from_block(iv));
block = hex!("6bc1bee22e409f96e93d7e117393172a");
cipher.encrypt(&mut block);
@@ -113,7 +113,7 @@ pub fn aes_256_ctr_test_decrypt<A: AesCtr<Key = Aes256Key>>(_marker: marker::Pha
hex!("603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4").into();
let iv = hex!("f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");
let mut block: [u8; 16];
- let mut cipher = A::new(&key, iv);
+ let mut cipher = A::new(&key, NonceAndCounter::from_block(iv));
block = hex!("601ec313775789a5b7a7f504bbf3d228");
cipher.decrypt(&mut block);
diff --git a/nearby/crypto/crypto_provider_test/src/aes/mod.rs b/nearby/crypto/crypto_provider_test/src/aes/mod.rs
index e1489da..d955f91 100644
--- a/nearby/crypto/crypto_provider_test/src/aes/mod.rs
+++ b/nearby/crypto/crypto_provider_test/src/aes/mod.rs
@@ -14,7 +14,6 @@
pub mod cbc;
pub mod ctr;
-pub mod gcm_siv;
pub use crate::prelude::*;
diff --git a/nearby/crypto/crypto_provider_test/src/ed25519.rs b/nearby/crypto/crypto_provider_test/src/ed25519.rs
index 598e36d..d99605c 100644
--- a/nearby/crypto/crypto_provider_test/src/ed25519.rs
+++ b/nearby/crypto/crypto_provider_test/src/ed25519.rs
@@ -116,27 +116,26 @@ fn extract_string(line: &str) -> String {
}
fn run_test<E>(
- pub_key: Vec<u8>,
- secret_key: Vec<u8>,
+ expected_pub_key: Vec<u8>,
+ private_key: Vec<u8>,
sig: Vec<u8>,
msg: Vec<u8>,
) -> Result<(), &'static str>
where
E: Ed25519Provider,
{
- let kp_bytes: [u8; 64] = [secret_key.as_slice(), pub_key.as_slice()]
- .concat()
- .try_into()
- .map_err(|_| "invalid length keypair")?;
- let kp = E::KeyPair::from_bytes(kp_bytes)
- .map_err(|_| "Should be able to create Keypair from bytes")?;
+ let private_key_bytes: [u8; 32] =
+ private_key.as_slice().try_into().expect("Secret key is the wrong length");
+ let kp = E::KeyPair::from_private_key(&private_key_bytes);
let sig_result = kp.sign(msg.as_slice());
(sig.as_slice() == sig_result.to_bytes()).then_some(()).ok_or("sig not matching expected")?;
- let signature = E::Signature::from_bytes(sig.as_slice())
- .map_err(|_| "unable to parse sign from test case")?;
+ let signature = E::Signature::from_bytes(
+ sig.as_slice().try_into().expect("Test signature should be the correct length"),
+ );
let pub_key = kp.public();
+ assert_eq!(pub_key.to_bytes().as_slice(), expected_pub_key.as_slice());
pub_key.verify_strict(msg.as_slice(), &signature).map_err(|_| "verify failed")?;
Ok(())
diff --git a/nearby/crypto/crypto_provider_test/src/lib.rs b/nearby/crypto/crypto_provider_test/src/lib.rs
index 4984793..8e63f44 100644
--- a/nearby/crypto/crypto_provider_test/src/lib.rs
+++ b/nearby/crypto/crypto_provider_test/src/lib.rs
@@ -23,6 +23,7 @@ use rstest_reuse::template;
pub use rstest_reuse;
+pub mod aead;
pub mod aes;
pub mod ed25519;
pub mod elliptic_curve;
diff --git a/nearby/crypto/crypto_provider_test/src/p256.rs b/nearby/crypto/crypto_provider_test/src/p256.rs
index db0b63c..9869c9e 100644
--- a/nearby/crypto/crypto_provider_test/src/p256.rs
+++ b/nearby/crypto/crypto_provider_test/src/p256.rs
@@ -228,7 +228,6 @@ pub fn wycheproof_p256_test<E: EcdhProviderForP256Test>(_: PhantomData<E>) {
// from the given RNG when generating a new key).
continue;
};
- std::println!("Testing {}", test.tc_id);
let result = p256_ecdh_test_impl::<E>(
&test.public_key,
&test.private_key.try_into().expect("Private key should be 32 bytes long"),
diff --git a/nearby/deny.toml b/nearby/deny.toml
index c289733..d9f6dc8 100644
--- a/nearby/deny.toml
+++ b/nearby/deny.toml
@@ -216,4 +216,4 @@ unknown-git = "warn"
# if not specified. If it is specified but empty, no registries are allowed.
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
# List of URLs for allowed Git repositories
-allow-git = [] \ No newline at end of file
+allow-git = []
diff --git a/nearby/presence/CMakeLists.txt b/nearby/presence/CMakeLists.txt
index bf582f5..15143a1 100644
--- a/nearby/presence/CMakeLists.txt
+++ b/nearby/presence/CMakeLists.txt
@@ -12,28 +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}/../..)
-# we need at least version 3.0.6 for the core.h header used in the fuzzers
-find_package(OpenSSL 3.0.5 REQUIRED)
-if ( OPENSSL_FOUND )
+# 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 -MD)
+endif ()
+
+find_package(OpenSSL REQUIRED)
+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 @@ Implementations of XTS and LDT for Nearby Presence "v0" advertisements.
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 @@ payload validation the way Nearby Presence advertisements need.
### `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 @@ Dependencies:
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 @@ cargo run --release --example ldt_benchmark -- \
```
### `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 @@ make
```
### `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 @@ cmake .. -DENABLE_TESTS=TRUE
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 @@ Crates with fuzzers: `ldt`, `ldt_np_adv`, `xts_aes`
### 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 @@ Build w/ cmake as per `ldt_np_c_sample` instructions. Fuzzers will be in `np_ffi
- 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: fmt::Debug, const N: usize> fmt::Debug for ArrayView<T, N> {
}
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 2f38bca..539197a 100644
--- a/nearby/presence/ldt/fuzz/Cargo.lock
+++ b/nearby/presence/ldt/fuzz/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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",
@@ -196,23 +196,36 @@ dependencies = [
[[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 = "curve25519-dalek-derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "der"
-version = "0.7.1"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
dependencies = [
"const-oid",
"zeroize",
@@ -220,9 +233,9 @@ dependencies = [
[[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",
@@ -231,9 +244,9 @@ dependencies = [
[[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",
@@ -251,9 +264,9 @@ dependencies = [
[[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",
@@ -263,9 +276,9 @@ dependencies = [
[[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",
@@ -298,9 +311,9 @@ checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
[[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",
@@ -309,9 +322,9 @@ dependencies = [
[[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",
@@ -394,9 +407,9 @@ dependencies = [
[[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"
@@ -410,16 +423,10 @@ dependencies = [
]
[[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"
@@ -429,25 +436,15 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[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"
@@ -455,9 +452,9 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
[[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",
@@ -473,27 +470,27 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[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",
]
@@ -527,10 +524,19 @@ dependencies = [
]
[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[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",
@@ -540,10 +546,16 @@ dependencies = [
]
[[package]]
+name = "semver"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[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",
@@ -558,15 +570,15 @@ checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
[[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",
@@ -581,15 +593,15 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[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",
@@ -609,9 +621,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[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",
@@ -628,6 +640,6 @@ dependencies = [
[[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 4922fc2..7b5ba15 100644
--- a/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
+++ b/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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",
@@ -200,23 +200,36 @@ dependencies = [
[[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 = "curve25519-dalek-derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "der"
-version = "0.7.1"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
dependencies = [
"const-oid",
"zeroize",
@@ -224,9 +237,9 @@ dependencies = [
[[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",
@@ -235,9 +248,9 @@ dependencies = [
[[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",
@@ -255,9 +268,9 @@ dependencies = [
[[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",
@@ -267,9 +280,9 @@ dependencies = [
[[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",
@@ -302,9 +315,9 @@ checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
[[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",
@@ -313,9 +326,9 @@ dependencies = [
[[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",
@@ -412,9 +425,9 @@ dependencies = [
[[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"
@@ -428,12 +441,6 @@ dependencies = [
]
[[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 = [
@@ -444,9 +451,9 @@ dependencies = [
[[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"
@@ -456,25 +463,15 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[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"
@@ -482,9 +479,9 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
[[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",
@@ -500,27 +497,27 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[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",
]
@@ -554,10 +551,19 @@ dependencies = [
]
[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[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",
@@ -567,10 +573,16 @@ dependencies = [
]
[[package]]
+name = "semver"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[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",
@@ -585,15 +597,15 @@ checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
[[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",
@@ -608,15 +620,15 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[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",
@@ -636,9 +648,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[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",
@@ -655,6 +667,6 @@ dependencies = [
[[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/src/lib.rs b/nearby/presence/ldt_np_adv/src/lib.rs
index 033941c..3785797 100644
--- a/nearby/presence/ldt_np_adv/src/lib.rs
+++ b/nearby/presence/ldt_np_adv/src/lib.rs
@@ -33,9 +33,7 @@ mod tests;
use array_view::ArrayView;
use core::fmt;
-use crypto_provider::aes::BLOCK_SIZE;
-use crypto_provider::hmac::Hmac;
-use crypto_provider::CryptoProvider;
+use crypto_provider::{aes::BLOCK_SIZE, CryptoProvider};
use ldt::{LdtDecryptCipher, LdtEncryptCipher, LdtError, Mix, Padder, Swap, XorPadder};
use ldt_tbc::TweakableBlockCipher;
use np_hkdf::{legacy_ldt_expanded_salt, NpHmacSha256Key, NpKeySeedHkdf};
@@ -119,7 +117,7 @@ pub struct LdtNpAdvDecrypter<
> {
ldt_decrypter: LdtDecryptCipher<B, T, M>,
metadata_key_tag: [u8; 32],
- metadata_key_hmac_key: np_hkdf::NpHmacSha256Key<C>,
+ metadata_key_hmac_key: NpHmacSha256Key<C>,
}
impl<const B: usize, const O: usize, T, M, C> LdtNpAdvDecrypter<B, O, T, M, C>
@@ -158,9 +156,8 @@ where
LdtError::InvalidLength(l) => LdtAdvDecryptError::InvalidLength(l),
})
.and_then(|_| {
- let mut hmac = self.metadata_key_hmac_key.build_hmac();
- hmac.update(&buffer[..NP_LEGACY_METADATA_KEY_LEN]);
- hmac.verify_slice(&self.metadata_key_tag)
+ self.metadata_key_hmac_key
+ .verify_hmac(&buffer[..NP_LEGACY_METADATA_KEY_LEN], self.metadata_key_tag)
.map_err(|_| LdtAdvDecryptError::MacMismatch)
.map(|_| {
ArrayView::try_from_array(buffer, payload.len())
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 3fbad38..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 @@ dependencies = [
[[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 @@ dependencies = [
[[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",
@@ -199,6 +193,7 @@ version = "0.1.0"
dependencies = [
"cfg-if",
"crypto_provider",
+ "crypto_provider_stubs",
"openssl",
"ouroboros",
]
@@ -245,24 +240,37 @@ dependencies = [
[[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 = "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.22",
+]
+
+[[package]]
name = "der"
-version = "0.7.3"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82b10af9f9f9f2134a42d3f8aa74658660f2e0234b0eb81bd171df8aa32779ed"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
dependencies = [
"const-oid",
"zeroize",
@@ -270,9 +278,9 @@ dependencies = [
[[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",
@@ -291,9 +299,9 @@ dependencies = [
[[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",
@@ -305,9 +313,9 @@ dependencies = [
[[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",
@@ -366,9 +374,9 @@ dependencies = [
[[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",
@@ -387,6 +395,12 @@ dependencies = [
]
[[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"
@@ -471,9 +485,9 @@ dependencies = [
[[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"
@@ -482,16 +496,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
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",
@@ -508,9 +516,9 @@ dependencies = [
[[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"
@@ -520,9 +528,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[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",
@@ -541,14 +549,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
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",
@@ -558,48 +566,39 @@ dependencies = [
[[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"
@@ -617,9 +616,9 @@ dependencies = [
[[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"
@@ -629,9 +628,9 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
[[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",
@@ -647,9 +646,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[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",
]
@@ -680,18 +679,18 @@ dependencies = [
[[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",
]
@@ -727,6 +726,15 @@ dependencies = [
]
[[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"
@@ -734,9 +742,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[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",
@@ -746,16 +754,22 @@ dependencies = [
]
[[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.159"
+version = "1.0.164"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+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",
@@ -785,19 +799,25 @@ dependencies = [
[[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 = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[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"
@@ -806,15 +826,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
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",
@@ -829,15 +848,15 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[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",
@@ -863,9 +882,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[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/Cargo.toml b/nearby/presence/ldt_np_adv_ffi/Cargo.toml
index d53809f..829f932 100644
--- a/nearby/presence/ldt_np_adv_ffi/Cargo.toml
+++ b/nearby/presence/ldt_np_adv_ffi/Cargo.toml
@@ -6,20 +6,20 @@ publish = false
[dependencies]
crypto_provider = { path = "../../crypto/crypto_provider" }
-crypto_provider_openssl = {path = "../../crypto/crypto_provider_openssl", optional = true}
-crypto_provider_rustcrypto = {path = "../../crypto/crypto_provider_rustcrypto", optional = true}
-crypto_provider_boringssl = {path = "../../crypto/crypto_provider_boringssl", optional = true}
+crypto_provider_openssl = { path = "../../crypto/crypto_provider_openssl", optional = true }
+crypto_provider_rustcrypto = { path = "../../crypto/crypto_provider_rustcrypto", optional = true }
+crypto_provider_boringssl = { path = "../../crypto/crypto_provider_boringssl", optional = true }
ldt = { path = "../ldt" }
ldt_np_adv = { path = "../ldt_np_adv" }
-np_hkdf = {path = "../np_hkdf"}
+np_hkdf = { path = "../np_hkdf" }
cfg-if = "1.0.0"
-lazy_static = { version = "1.4.0"}
+lazy_static = { version = "1.4.0" }
# no_std only deps
-libc_alloc = {version = "1.0.4", optional = true }
+libc_alloc = { version = "1.0.4", optional = true }
panic-abort = { version = "0.3.2", optional = true }
-spin = {version = "0.9.8", optional = true }
+spin = { version = "0.9.8", optional = true }
[dev-dependencies]
rand = "0.8.5"
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 @@ allow = [
"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/src/lib.rs b/nearby/presence/ldt_np_adv_ffi/src/lib.rs
index 2ed8d95..b6f7a58 100644
--- a/nearby/presence/ldt_np_adv_ffi/src/lib.rs
+++ b/nearby/presence/ldt_np_adv_ffi/src/lib.rs
@@ -20,6 +20,8 @@
clippy::panic,
clippy::expect_used
)]
+// TODO: Remove usage of `lang_items` when ffi is no longer alloc
+#![allow(internal_features)]
// These features are needed to support no_std + alloc
#![feature(lang_items)]
diff --git a/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt b/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt
index 30de4a6..2144811 100644
--- a/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt
+++ b/nearby/presence/ldt_np_adv_ffi_fuzz/CMakeLists.txt
@@ -15,25 +15,33 @@
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?
add_compile_options(-fsanitize=fuzzer,address)
+# 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)
+ message(STATUS "OpenSSL Found: ${OPENSSL_VERSION}")
+ message(STATUS "OpenSSL Include: ${OPENSSL_INCLUDE_DIR}")
+ message(STATUS "OpenSSL Libraries: ${OPENSSL_LIBRARIES}")
+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/libldt_np_adv_ffi.a"
- debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/libldt_np_adv_ffi.a"
- 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/libldt_np_adv_ffi.a"
- debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/libldt_np_adv_ffi.a"
- 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 58b6f6f..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 @@ ExternalProject_Add(
BINARY_DIR "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi"
INSTALL_COMMAND "")
-add_executable(sample main.c)
-target_link_libraries(sample
- optimized "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/libldt_np_adv_ffi.a"
- debug "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/debug/libldt_np_adv_ffi.a"
- dl pthread)
+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}"
+ 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 b75e427..6edfd63 100644
--- a/nearby/presence/ldt_np_c_sample/tests/CMakeLists.txt
+++ b/nearby/presence/ldt_np_c_sample/tests/CMakeLists.txt
@@ -12,63 +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)
-
-find_package(PkgConfig REQUIRED)
-pkg_check_modules(JSONCPP jsoncpp)
-include_directories("${JSONCPP_INCLUDEDIR}")
-
file(COPY ${CMAKE_SOURCE_DIR}/ldt_np_adv/resources/test/np_adv_test_vectors.json
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
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/libldt_np_adv_ffi.a"
+ 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
- benchmark::benchmark
- 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
)
target_link_libraries(
- np_ffi_tests
- "${CMAKE_SOURCE_DIR}/ldt_np_adv_ffi/target/release/libldt_np_adv_ffi.a"
- ${pkgcfg_lib_JSONCPP_jsoncpp}
- GTest::gtest_main
+ 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
- dl pthread -fsanitize=address
)
-include(GoogleTest)
-gtest_discover_tests(np_ffi_tests)
+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
index d0cfb67..d0cfb67 100644
--- a/nearby/presence/ldt_np_c_sample/tests/benchmarks.cc
+++ b/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/.gitignore b/nearby/presence/ldt_np_jni/.gitignore
new file mode 100644
index 0000000..f3d6549
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/.gitignore
@@ -0,0 +1 @@
+/build/ \ No newline at end of file
diff --git a/nearby/presence/ldt_np_jni/Cargo.toml b/nearby/presence/ldt_np_jni/Cargo.toml
new file mode 100644
index 0000000..6803d56
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/Cargo.toml
@@ -0,0 +1,25 @@
+[package]
+name = "ldt_np_jni"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+[dependencies]
+ldt.workspace = true
+ldt_np_adv.workspace = true
+np_hkdf.workspace = true
+crypto_provider.workspace = true
+crypto_provider_default = {workspace = true, default-features = false}
+
+cfg-if.workspace = true
+jni.workspace = true
+
+[features]
+default = ["rustcrypto"]
+rustcrypto = ["crypto_provider_default/rustcrypto", "crypto_provider_default/std"]
+opensslbssl = ["crypto_provider_default/opensslbssl"]
+boringssl = ["crypto_provider_default/boringssl"]
+
+[lib]
+# JNI wants a .so or equivalent
+crate-type = ["cdylib"]
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/build.gradle.kts b/nearby/presence/ldt_np_jni/java/LdtNpJni/build.gradle.kts
new file mode 100644
index 0000000..3cc0692
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/build.gradle.kts
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+plugins {
+ id("java")
+ kotlin("jvm") version "1.8.0"
+}
+
+group = "com.google.android.gms.nearby.presence.hazmat"
+version = "1.0-SNAPSHOT"
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.1")
+ testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.1")
+ implementation(kotlin("stdlib"))
+}
+
+tasks.getByName<Test>("test") {
+ useJUnitPlatform()
+ jvmArgs = mutableListOf("-Djava.library.path=../../../../target/debug")
+} \ No newline at end of file
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.jar b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..249e583
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.properties b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..070cb70
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/gradlew b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradlew
new file mode 100755
index 0000000..a69d9cb
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradlew
@@ -0,0 +1,240 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# 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.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/gradlew.bat b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradlew.bat
new file mode 100644
index 0000000..53a6b23
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/gradlew.bat
@@ -0,0 +1,91 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/settings.gradle.kts b/nearby/presence/ldt_np_jni/java/LdtNpJni/settings.gradle.kts
new file mode 100644
index 0000000..e58d1f3
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/settings.gradle.kts
@@ -0,0 +1,17 @@
+/*
+ * 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.
+ */
+
+rootProject.name = "LdtNpJni"
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpCipher.java b/nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpCipher.java
new file mode 100644
index 0000000..ecd0a85
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpCipher.java
@@ -0,0 +1,162 @@
+/*
+ * 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.
+ */
+
+package com.google.android.gms.nearby.presence.hazmat;
+
+/**
+ * LDT-XTS-AES128 implementation using the default "swap" mix function. It is suitable for
+ * encryption or decryption of individual Nearby Presence BLE 4.2 legacy format encrypted payloads.
+ *
+ * <p>To avoid leaking resources, call close() once an instance is no longer needed.
+ *
+ * <p>This class is not thread safe.
+ */
+public class LdtNpCipher implements AutoCloseable {
+
+ /**
+ * Size in bytes of key seed used to derive further keys used for in np ldt operations
+ */
+ private static final int KEY_SEED_SIZE = 32;
+ /**
+ * Size in bytes of the metadata keys calculated hmac tag
+ */
+ private static final int TAG_SIZE = 32;
+ /** Block size of AES. */
+ private static final int BLOCK_SIZE = 16;
+
+ private final long ldtHandle;
+ private boolean closed = false;
+
+ private LdtNpCipher(long ldtHandle) {
+ this.ldtHandle = ldtHandle;
+ }
+
+ /**
+ * Create a new Ldt instance using LDT-XTS-AES128 with the "swap" mix function.
+ *
+ * @param key_seed 64-byte key material from the credential for the identity used to broadcast. The
+ * supplied byte[] can be zeroed out once this method returns, as the contents are copied.
+ * @return an instance configured with the supplied key
+ * @throws LdtException if the key is the wrong size
+ * @throws LdtException if the tag is the wrong size
+ * @throws LdtException if creating the instance fails
+ */
+ public static LdtNpCipher fromKey(byte[] key_seed, byte[] metadata_key_tag) throws LdtException {
+ if (key_seed.length != KEY_SEED_SIZE) {
+ throw new LdtException("Key must be " + KEY_SEED_SIZE + " bytes");
+ }
+ if (metadata_key_tag.length != TAG_SIZE) {
+ throw new LdtException("Tag must be " + TAG_SIZE + " bytes");
+ }
+
+ long handle = LdtNpJni.createLdtCipher(key_seed, metadata_key_tag);
+ if (handle == 0) {
+ throw new LdtException("Creating Ldt native resources failed");
+ }
+
+ return new LdtNpCipher(handle);
+ }
+
+ /**
+ * Encode a 2 byte salt as a big-endian char.
+ *
+ * @return a char with b1 in the high bits and b2 in the low bits
+ */
+ public static char saltAsChar(byte b1, byte b2) {
+ // byte widening conversion to int sign-extends
+ int highBits = b1 << 8;
+ int lowBits = b2 & 0xFF;
+ // narrowing conversion truncates to low 16 bits
+ return (char) (highBits | lowBits);
+ }
+
+ /**
+ * Encrypt data in place, XORing bytes derived from the salt into the LDT tweaks.
+ *
+ * @param salt the salt that will be used in the advertisement with this encrypted payload. See
+ * {@link LdtNpCipher#saltAsChar(byte, byte)} for constructing the char
+ * representation.
+ * @param data plaintext to encrypt in place: the metadata key followed by the data elements to be
+ * encrypted. The length must be in [16, 31).
+ * @throws IllegalStateException if this instance has already been closed
+ * @throws IllegalArgumentException if data is the wrong length
+ * @throws LdtException if encryption fails
+ */
+ public void encrypt(char salt, byte[] data) throws LdtException {
+ checkPreconditions(data);
+
+ int res = LdtNpJni.encrypt(ldtHandle, salt, data);
+ if (res < 0) {
+ // TODO is it possible for this to fail if the length is correct?
+ throw new LdtException("Could not encrypt: error code " + res);
+ }
+ }
+
+ /**
+ * Decrypt the data in place, XORing the LDT tweak with the provided bytes.
+ *
+ * @param salt the salt extracted from the advertisement that contained this payload. See {@link
+ * LdtNpCipher#saltAsChar(byte, byte)} for constructing the char representation.
+ * @param data ciphertext to decrypt in place: the metadata key followed by the data elements to
+ * be decrypted. The length must be in [16, 31).
+ * @throws IllegalStateException if this instance has already been closed
+ * @throws IllegalArgumentException if data is the wrong length
+ * @throws LdtException if decryption fails
+ */
+ public void decrypt_and_verify(char salt, byte[] data) throws LdtException {
+ checkPreconditions(data);
+
+ int res = LdtNpJni.decrypt_and_verify(ldtHandle, salt, data);
+ if (res < 0) {
+ // TODO is it possible for this to fail if the length is correct?
+ throw new LdtException("Could not decrypt: error code " + res);
+ }
+ }
+
+ private void checkPreconditions(byte[] data) {
+ if (closed) {
+ throw new IllegalStateException("Instance has been closed");
+ }
+ if (data.length < BLOCK_SIZE || data.length >= BLOCK_SIZE * 2) {
+ throw new IllegalArgumentException(
+ "Data must be at least " + BLOCK_SIZE + " and less than " + BLOCK_SIZE * 2 + " bytes");
+ }
+ }
+
+ /**
+ * Releases native resources.
+ *
+ * <p>Once closed, an Ldt instance cannot be used further.
+ */
+ @Override
+ public void close() {
+ if (closed) {
+ return;
+ }
+ closed = true;
+
+ int res = LdtNpJni.closeLdtCipher(ldtHandle);
+ if (res < 0) {
+ throw new RuntimeException("Could not close Ldt: error code " + res);
+ }
+ }
+
+ public static class LdtException extends Exception {
+ LdtException(String message) {
+ super(message);
+ }
+ }
+}
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJni.java b/nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJni.java
new file mode 100644
index 0000000..bbb0067
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/src/main/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJni.java
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+package com.google.android.gms.nearby.presence.hazmat;
+
+/** JNI for LDT-XTS-AES128 with the "swap" mix function. */
+class LdtNpJni {
+
+ static {
+ System.loadLibrary("ldt_np_jni");
+ }
+
+ /**
+ * Create an instance of LDT-XTS-AES-128 using the Swap mix function.
+ *
+ * @param key key bytes, must be 4x AES key size = 64 bytes
+ * @return 0 on error, and any other value for success
+ */
+ static native long createLdtCipher(byte[] key_seed, byte[] metadata_key_hmac_tag);
+
+ /**
+ * Close the native resources for an Ldt instance.
+ *
+ * @param ldtHandle An ldt handle returned from {@link LdtNpJni#createLdtCipher}.
+ * @return 0 on success, <0 for any error
+ */
+ static native int closeLdtCipher(long ldtHandle);
+
+ /**
+ * Encrypt the data in place.
+ *
+ * @param ldtHandle An ldt handle returned from {@link LdtNpJni#createLdtCipher}.
+ * @param salt big-endian salt to be expanded into bytes XORd into the LDT tweaks
+ * @param data size must be between 16 and 31 bytes
+ * @return 0 on success, -1 if the data size is wrong, or another negative number for any other
+ * error
+ */
+ static native int encrypt(long ldtHandle, char salt, byte[] data);
+
+ /**
+ * Decrypt the data in place using the default LDT tweak padding scheme.
+ *
+ * @param ldtHandle An ldt address returned from {@link LdtNpJni#createLdtCipher}.
+ * @param salt big-endian salt to be expanded into bytes XORd into the LDT tweaks
+ * @param data size must be between 16 and 31 bytes
+ * @return 0 on success, -1 if the data size is wrong, -2 if the calculated hmac
+ * does not match the provided tag or another negative number for any other error
+ */
+ static native int decrypt_and_verify(long ldtHandle, char salt, byte[] data);
+}
diff --git a/nearby/presence/ldt_np_jni/java/LdtNpJni/src/test/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJniTests.kt b/nearby/presence/ldt_np_jni/java/LdtNpJni/src/test/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJniTests.kt
new file mode 100644
index 0000000..dc861c6
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/java/LdtNpJni/src/test/java/com/google/android/gms/nearby/presence/hazmat/LdtNpJniTests.kt
@@ -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.
+ */
+
+package com.google.android.gms.nearby.presence.hazmat
+
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.api.Test
+
+class LdtNpJniTests {
+ @Test
+ fun ldtRoundTripTest() {
+ // Data taken from first test case in ldt_np_adv/resources/test/np_adv_test_vectors.json
+ val key_seed = "CCDB2489E9FCAC42B39348B8941ED19A1D360E75E098C8C15E6B1CC2B620CD39".decodeHex()
+ val hmac_tag = "DFB90A1F9B1FE28D18BBCCA52240B5CC2CCB5F8D5289A3CB64EB3541CA614BB4".decodeHex()
+ val plaintext = "CD683FE1A1D1F846543D0A13D4AEA40040C8D67B".decodeHex()
+ val salt_bytes = "32EE".decodeHex()
+ val expected_ciphertext = "04344411F1E57C841FE0F7150636BC782455059A".decodeHex()
+ val salt = LdtNpCipher.saltAsChar(salt_bytes[0], salt_bytes[1])
+
+ val data = plaintext.copyOf()
+ val LdtCipher = LdtNpCipher.fromKey(key_seed, hmac_tag)
+ LdtCipher.encrypt(salt, data)
+ Assertions.assertArrayEquals(expected_ciphertext, data)
+
+ LdtCipher.decrypt_and_verify(salt, data)
+ Assertions.assertArrayEquals(plaintext, data)
+ }
+}
+
+private fun ByteArray.toHex(): String =
+ joinToString(separator = "") { eachByte -> "%02x".format(eachByte) }
+
+private fun String.decodeHex(): ByteArray {
+ check(length % 2 == 0)
+ return chunked(2)
+ .map { it.toInt(16).toByte() }
+ .toByteArray()
+} \ No newline at end of file
diff --git a/nearby/presence/ldt_np_jni/src/lib.rs b/nearby/presence/ldt_np_jni/src/lib.rs
new file mode 100644
index 0000000..8f7958e
--- /dev/null
+++ b/nearby/presence/ldt_np_jni/src/lib.rs
@@ -0,0 +1,319 @@
+// 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.
+
+//! JNI adapter for LDT.
+//!
+//! Helpful resources:
+//! - <https://developer.ibm.com/articles/j-jni>
+//! - <https://developer.android.com/training/articles/perf-jni>
+//! - <https://www.iitk.ac.in/esc101/05Aug/tutorial/native1.1/index.html>
+//! - <https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/jniTOC.html>
+
+#![no_std]
+#![deny(missing_docs)]
+
+// Allow using Box in no_std
+extern crate alloc;
+
+use alloc::boxed::Box;
+
+use jni::objects::JByteArray;
+use jni::{
+ objects::JClass,
+ sys::{jbyte, jbyteArray, jchar, jint, jlong},
+ JNIEnv,
+};
+
+use ldt::XorPadder;
+use ldt_np_adv::{LdtAdvDecryptError, LdtEncrypterXtsAes128, LdtNpAdvDecrypterXtsAes128};
+use np_hkdf::NpKeySeedHkdf;
+
+use crypto_provider_default::CryptoProviderImpl;
+
+/// Length limits per LDT
+const MIN_DATA_LEN: usize = crypto_provider::aes::BLOCK_SIZE;
+const MAX_DATA_LEN: usize = crypto_provider::aes::BLOCK_SIZE * 2 - 1;
+
+/// Error return value for creating handles
+const CREATE_ERROR: jlong = 0;
+
+// TODO: don't allow panics to cross FFI boundary
+// TODO: JNI null checks? (only if jni crate isn't doing them already).
+
+// TODO: split this into separate APIs for encrypt and decrypt
+struct Ldt {
+ ldt_enc: LdtEncrypterXtsAes128<CryptoProviderImpl>,
+ ldt_dec: LdtNpAdvDecrypterXtsAes128<CryptoProviderImpl>,
+}
+
+/// Create an LDT cipher.
+///
+/// Returns 0 for error, or the pointer as a jlong/i64.
+/// Safety: We know the key pointer is safe as it is coming directly from the JVM.
+#[no_mangle]
+#[allow(clippy::not_unsafe_ptr_arg_deref)]
+pub extern "system" fn Java_com_google_android_gms_nearby_presence_hazmat_LdtNpJni_createLdtCipher(
+ env: JNIEnv,
+ _class: JClass,
+ key_seed: jbyteArray,
+ metadata_key_hmac_tag: jbyteArray,
+) -> jlong {
+ env.get_array_length(unsafe { &JByteArray::from_raw(key_seed) })
+ .map_err(|_| CREATE_ERROR)
+ // check length
+ .and_then(|len| if len as usize != 32 { Err(CREATE_ERROR) } else { Ok(len) })
+ // extract u8 array
+ .and_then(|len| {
+ let mut jbyte_buf = [jbyte::default(); 32];
+ env.get_byte_array_region(
+ unsafe { &JByteArray::from_raw(key_seed) },
+ 0,
+ &mut jbyte_buf[..],
+ )
+ .map_err(|_| CREATE_ERROR)
+ .map(|_| (len, jbyte_array_to_u8_array(jbyte_buf)))
+ })
+ // initialize ldt -- we already know the key is the right length
+ .and_then(|(_len, key_seed_buf)| {
+ let hkdf_key_seed = NpKeySeedHkdf::new(&key_seed_buf);
+ let ldt_enc = ldt_np_adv::LdtEncrypterXtsAes128::<CryptoProviderImpl>::new(
+ &hkdf_key_seed.legacy_ldt_key(),
+ );
+
+ let mut tag_buff = [jbyte::default(); 32];
+ let tag = env
+ .get_byte_array_region(
+ unsafe { &JByteArray::from_raw(metadata_key_hmac_tag) },
+ 0,
+ &mut tag_buff[..],
+ )
+ .map_err(|_| CREATE_ERROR)
+ .map(|_| jbyte_array_to_u8_array(tag_buff))
+ .unwrap();
+ // TODO: Error handling
+
+ let ldt_dec = ldt_np_adv::build_np_adv_decrypter_from_key_seed::<CryptoProviderImpl>(
+ &hkdf_key_seed,
+ tag,
+ );
+ box_to_handle(Ldt { ldt_enc, ldt_dec }).map_err(|_| CREATE_ERROR)
+ })
+ .unwrap_or_else(|e| e)
+}
+
+/// Close an LDT cipher.
+#[no_mangle]
+pub extern "system" fn Java_com_google_android_gms_nearby_presence_hazmat_LdtNpJni_closeLdtCipher(
+ _env: JNIEnv,
+ _class: JClass,
+ ldt_handle: jlong,
+) -> jint {
+ // create the box, let it be dropped
+ let _ = boxed_from_handle::<Ldt>(ldt_handle);
+ // success -- are there any meaningful error condtions we can even detect?
+ 0
+}
+
+/// Encrypt a buffer in place.
+/// Safety: We know the data jArray pointer is safe because it is coming directly from the JVM.
+#[no_mangle]
+#[allow(clippy::not_unsafe_ptr_arg_deref)]
+pub extern "system" fn Java_com_google_android_gms_nearby_presence_hazmat_LdtNpJni_encrypt(
+ env: JNIEnv,
+ _class: JClass,
+ ldt_handle: jlong,
+ salt: jchar,
+ data: jbyteArray,
+) -> jint {
+ jbyte_cipher_data_as_u8_array(&env, data)
+ .and_then(|(len, mut data_u8)| {
+ with_handle::<Ldt, _, _>(ldt_handle, |ldt| {
+ ldt.ldt_enc.encrypt(&mut data_u8[..len], &expand_np_salt_to_padder(salt)).map_err(
+ |err| match err {
+ ldt::LdtError::InvalidLength(_) => CipherOpError::DataLen,
+ },
+ )?;
+ env.set_byte_array_region(
+ unsafe { &JByteArray::from_raw(data) },
+ 0,
+ &u8_slice_to_jbyte_array(data_u8)[..len],
+ )
+ .map_err(|_| CipherOpError::JniOp)
+ .map(|_| 0) // success
+ })
+ })
+ .unwrap_or_else(|e| e.to_jni_error_code())
+}
+
+/// Decrypt a buffer in place.
+/// Safety: We know the data pointer is safe because it is coming directly from the JVM.
+#[no_mangle]
+#[allow(clippy::not_unsafe_ptr_arg_deref)]
+pub extern "system" fn Java_com_google_android_gms_nearby_presence_hazmat_LdtNpJni_decrypt_1and_1verify(
+ env: JNIEnv,
+ _class: JClass,
+ ldt_handle: jlong,
+ salt: jchar,
+ data: jbyteArray,
+) -> jint {
+ jbyte_cipher_data_as_u8_array(&env, data)
+ .and_then(|(len, mut data_u8)| {
+ with_handle::<Ldt, _, _>(ldt_handle, |ldt| {
+ let result = ldt
+ .ldt_dec
+ .decrypt_and_verify(&data_u8[..len], &expand_np_salt_to_padder(salt))
+ .map_err(|err| match err {
+ LdtAdvDecryptError::InvalidLength(_) => CipherOpError::DataLen,
+ LdtAdvDecryptError::MacMismatch => CipherOpError::MacMisMatch,
+ })?;
+ data_u8[..result.len()].copy_from_slice(result.as_slice());
+ env.set_byte_array_region(
+ unsafe { &JByteArray::from_raw(data) },
+ 0,
+ &u8_slice_to_jbyte_array(data_u8)[..len],
+ )
+ .map_err(|_| CipherOpError::JniOp)
+ .map(|_| 0) // success
+ })
+ })
+ .unwrap_or_else(|e| e.to_jni_error_code())
+}
+
+/// Reconstruct a `Box<T>` from `handle`, and invoke `f` with the resulting `&T`.
+///
+/// The `Box<T>` is leaked after invoking `block` rather than dropped so that the handle can be used
+/// again.
+///
+/// Returns the result of evaluating `f`.
+fn with_handle<T, U, F: FnMut(&T) -> U>(handle: jlong, mut f: F) -> U {
+ let boxed = boxed_from_handle(handle);
+ let ret = f(&boxed);
+
+ // don't consume the box -- need to keep the handle alive
+ Box::leak(boxed);
+
+ ret
+}
+
+/// Reconstruct a `Box<T>` from `handle`.
+///
+/// `handle` must be an aligned, non-null `jlong` representation of a pointer produced from
+/// `Box::into_raw` that has not yet been deallocated.
+fn boxed_from_handle<T>(handle: jlong) -> Box<T> {
+ // on 32-bit systems, truncate i64 to low 32 bits (which should be the only bits that were set
+ // when the jlong handle was created).
+ let handle_usize = handle as usize;
+ // convert pointer-sized integer to pointer
+ unsafe { Box::from_raw(handle_usize as *mut _) }
+}
+
+/// Constructs a `Box<T>`, leaks a pointer to it, and converts the pointer to `jlong`.
+///
+/// If the pointer can't fit, `Err` is returned.
+fn box_to_handle<T>(thing: T) -> Result<jlong, ()> {
+ // Box::new heap allocates space for the thing
+ // Box::into_raw intentionally leaks into an aligned, non-null pointer
+ let pointer = Box::into_raw(Box::new(thing));
+ // As a best practice, cast from pointer to usize because usize is always pointer sized, so the
+ // cast is easy to reason about.
+ // https://doc.rust-lang.org/reference/expressions/operator-expr.html#pointer-to-address-cast
+ let ptr_usize = pointer as usize;
+ // Fallible conversion into a u64 -- eventually 128 bit pointer types will fail here.
+ // Assuming it fits, integer cast should be either no conversion or zero extension.
+ ptr_usize
+ .try_into()
+ .map_err(|_| {
+ // resuscitate the Box so that its drop can run, otherwise we would leak on error
+ 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)
+}
+
+/// Extract data suitable for Ldt128 cipher ops from a JNI jbyteArray.
+///
+/// Returns `(data len in buffer, buffer)`, or `Err` if any JNI ops fail.
+fn jbyte_cipher_data_as_u8_array(
+ env: &JNIEnv,
+ cipher_data: jbyteArray,
+) -> Result<(usize, [u8; MAX_DATA_LEN]), CipherOpError> {
+ let data_len = env
+ .get_array_length(unsafe { &JByteArray::from_raw(cipher_data) })
+ .map_err(|_| CipherOpError::JniOp)? as usize;
+ if !(MIN_DATA_LEN..=MAX_DATA_LEN).contains(&data_len) {
+ return Err(CipherOpError::DataLen);
+ }
+
+ let mut buf = [jbyte::default(); MAX_DATA_LEN];
+ env.get_byte_array_region(
+ unsafe { &JByteArray::from_raw(cipher_data) },
+ 0,
+ &mut buf[0..data_len],
+ )
+ .map_err(|_| CipherOpError::JniOp)?;
+
+ Ok((data_len, jbyte_array_to_u8_array(buf)))
+}
+
+/// Convert a jbyte array to a u8 array
+fn jbyte_array_to_u8_array<const N: usize>(src: [jbyte; N]) -> [u8; N] {
+ let mut dest = [0_u8; N];
+ for i in 0..N {
+ // numeric cast doesn't alter bits, which is what we want
+ // https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics
+ dest[i] = src[i] as u8;
+ }
+ dest
+}
+
+fn u8_slice_to_jbyte_array<const N: usize>(src: [u8; N]) -> [jbyte; N] {
+ let mut dest = [0_i8; N];
+ for i in 0..N {
+ // numeric cast doesn't alter bits, which is what we want
+ // https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics
+ dest[i] = src[i] as jbyte;
+ }
+ dest
+}
+
+/// Expand the NP salt to the size needed to be an LDT XorPadder.
+///
+/// Returns a XorPadder containing the HKDF of the salt.
+fn expand_np_salt_to_padder(np_salt: jchar) -> XorPadder<{ crypto_provider::aes::BLOCK_SIZE }> {
+ let salt_bytes = np_salt.to_be_bytes();
+ ldt_np_adv::salt_padder::<16, CryptoProviderImpl>(salt_bytes.into())
+}
+
+#[derive(Debug)]
+enum CipherOpError {
+ /// The mac did not match the provided tag
+ MacMisMatch,
+ /// Data is the wrong length
+ DataLen,
+ /// JNI op failed
+ JniOp,
+}
+
+impl CipherOpError {
+ /// Returns an error code suitable for returning from Ldt encrypt/decrypt JNI calls.
+ fn to_jni_error_code(&self) -> jint {
+ match self {
+ CipherOpError::DataLen => -1,
+ CipherOpError::MacMisMatch => -2,
+ CipherOpError::JniOp => -3,
+ }
+ }
+}
diff --git a/nearby/presence/np_adv/Cargo.toml b/nearby/presence/np_adv/Cargo.toml
new file mode 100644
index 0000000..7f0d5d7
--- /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", default-features = false, 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..bc2789d
--- /dev/null
+++ b/nearby/presence/np_adv/benches/deser_adv.rs
@@ -0,0 +1,423 @@
+// 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::extended::serialize::AdvertisementType;
+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, MicEncryptedSectionEncoder, PublicSectionEncoder,
+ SectionBuilder, SectionEncoder, SignedEncryptedSectionEncoder,
+ },
+ },
+ 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(AdvertisementType::Encrypted);
+
+ // 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(MicEncryptedSectionEncoder::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(SignedEncryptedSectionEncoder::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(AdvertisementType::Plaintext);
+
+ // take the first n identities, one section per identity
+ for _ in 0..num_sections {
+ let mut sb = adv_builder.section_builder(PublicSectionEncoder::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: SectionEncoder>(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..5c17d27
--- /dev/null
+++ b/nearby/presence/np_adv/src/credential/v1.rs
@@ -0,0 +1,343 @@
+// 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)
+ }
+ /// Gets the underlying section-identity resolution material carried around
+ /// within this wrapper for resolution of signed sections.
+ pub(crate) fn as_raw_resolution_material(&self) -> &SectionIdentityResolutionMaterial {
+ &self.0
+ }
+ /// Constructs identity-resolution material for a signed section whose
+ /// discovery credential leverages the provided HKDF and has the given
+ /// expected metadata-key HMAC.
+ 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)
+ }
+ /// Gets the underlying section-identity resolution material carried around
+ /// within this wrapper for resolution of unsigned sections.
+ pub(crate) fn as_raw_resolution_material(&self) -> &SectionIdentityResolutionMaterial {
+ &self.0
+ }
+ /// Constructs identity-resolution material for an unsigned (MIC) section whose
+ /// discovery credential leverages the provided HKDF and has the given
+ /// expected metadata-key HMAC.
+ 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,
+ })
+ }
+}
+
+/// Wrapper enum around signed/unsigned identity resolution material
+/// which may be borrowed. Used only in implementation details
+/// of identity-resolution.
+pub(crate) enum BorrowableIdentityResolutionMaterial<S, U>
+where
+ S: Borrow<SignedSectionIdentityResolutionMaterial>,
+ U: Borrow<UnsignedSectionIdentityResolutionMaterial>,
+{
+ Signed(S),
+ Unsigned(U),
+}
+
+impl<S, U> BorrowableIdentityResolutionMaterial<S, U>
+where
+ S: Borrow<SignedSectionIdentityResolutionMaterial>,
+ U: Borrow<UnsignedSectionIdentityResolutionMaterial>,
+{
+ pub(crate) fn as_raw_resolution_material(&self) -> &SectionIdentityResolutionMaterial {
+ match self {
+ Self::Signed(x) => x.borrow().as_raw_resolution_material(),
+ Self::Unsigned(x) => x.borrow().as_raw_resolution_material(),
+ }
+ }
+ pub(crate) fn signed_from_crypto_material<'a, C, P>(crypto_material: &'a C) -> Self
+ where
+ C: V1CryptoMaterial<
+ SignedIdentityResolverReference<'a> = S,
+ UnsignedIdentityResolverReference<'a> = U,
+ >,
+ P: CryptoProvider,
+ {
+ Self::Signed(crypto_material.signed_identity_resolution_material::<P>())
+ }
+ pub(crate) fn unsigned_from_crypto_material<'a, C, P>(crypto_material: &'a C) -> Self
+ where
+ C: V1CryptoMaterial<
+ SignedIdentityResolverReference<'a> = S,
+ UnsignedIdentityResolverReference<'a> = U,
+ >,
+ P: CryptoProvider,
+ {
+ Self::Unsigned(crypto_material.unsigned_identity_resolution_material::<P>())
+ }
+}
+
+/// 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..4966ed0
--- /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`](crate::legacy::de_type::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..7f4d888
--- /dev/null
+++ b/nearby/presence/np_adv/src/deser_v0_tests.rs
@@ -0,0 +1,266 @@
+// 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, 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();
+ if rng.gen_bool(0.5) {
+ let mut adv_builder = AdvBuilder::new(PublicIdentity::default());
+ add_de(&mut adv_builder);
+
+ (
+ adv_builder.into_advertisement().unwrap(),
+ AdvConfig::new(None, Some(PlaintextIdentityMode::Public)),
+ )
+ } else {
+ 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))
+ }
+}
+
+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..8076e99
--- /dev/null
+++ b/nearby/presence/np_adv/src/deser_v1_tests.rs
@@ -0,0 +1,522 @@
+// 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, AdvertisementType, EncodedAdvertisement, MicEncryptedSectionEncoder,
+ PublicSectionEncoder, SectionBuilder, SectionEncoder, SignedEncryptedSectionEncoder,
+ },
+ },
+ AdvDeserializationError, AdvDeserializationErrorDetailsHazmat, CredentialSource,
+ PlaintextIdentityMode, Section, V1AdvContents, V1Credential, V1DeserializedSection,
+};
+use crypto_provider::{CryptoProvider, CryptoRng};
+use std::{collections, prelude::rust_2021::*, vec};
+use strum::IntoEnumIterator as _;
+
+use crate::extended::NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT;
+use crypto_provider_default::CryptoProviderImpl;
+
+#[test]
+fn v1_plaintext() {
+ 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(AdvertisementType::Plaintext);
+ let section_configs: Vec<SectionConfig<CryptoProviderImpl>> =
+ fill_plaintext_adv(&mut rng, &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 is empty or there is more than one public section
+ if section_configs.is_empty() {
+ 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
+ } else {
+ 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_all_identities_resolvable_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(AdvertisementType::Encrypted);
+ let section_configs = fill_encrypted_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
+ if section_configs.is_empty() {
+ 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
+ } else {
+ 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_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(AdvertisementType::Encrypted);
+ let section_configs = fill_encrypted_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
+ if section_configs.is_empty() {
+ 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
+ } else {
+ 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_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(AdvertisementType::Encrypted);
+ let section_configs = fill_encrypted_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
+ if section_configs.is_empty() {
+ 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
+ } else {
+ 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_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(AdvertisementType::Encrypted);
+ let section_configs = fill_encrypted_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
+ if section_configs.is_empty() {
+ 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
+ } else {
+ 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: &'s 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: &'s 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_plaintext_adv<'a, R: rand::Rng, C: CryptoProvider>(
+ mut rng: &mut R,
+ adv_builder: &mut AdvBuilder,
+) -> Vec<SectionConfig<'a, C>> {
+ let mut expected = Vec::new();
+ // build sections
+ for _ in 0..rng.gen_range(0..=NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT) {
+ let res = adv_builder.section_builder(PublicSectionEncoder::default()).map(|s| {
+ SectionConfig::new(
+ None,
+ Some(PlaintextIdentityMode::Public),
+ None,
+ add_des(s, &mut rng),
+ )
+ });
+ match res {
+ Ok(tuple) => expected.push(tuple),
+ Err(_) => {
+ // couldn't fit that section; maybe another smaller section will fit
+ continue;
+ }
+ }
+ }
+ expected
+}
+
+/// Populate a random number of sections with randomly chosen identities and random DEs
+fn fill_encrypted_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 = if rng.gen_bool(0.5) {
+ adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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),
+ )
+ })
+ } else {
+ adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::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),
+ )
+ })
+ };
+ 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: SectionEncoder, 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..a0f9a2f
--- /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::AdvertisementType;
+use crate::{
+ extended::serialize::{section_tests::SectionBuilderExt, AdvBuilder, PublicSectionEncoder},
+ shared_data::TxPower,
+};
+
+#[test]
+fn serialize_tx_power_de() {
+ let mut adv_builder = AdvBuilder::new(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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..2fe6f69
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mic_decrypt_tests.rs
@@ -0,0 +1,434 @@
+// 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::{AdvertisementType, SingleTypeDataElement, WriteDataElement};
+use crate::shared_data::TxPower;
+use crate::{
+ credential::v1::MinimumFootprintV1CryptoMaterial,
+ de_type::EncryptedIdentityDataElementType,
+ extended::{
+ deserialize::{
+ encrypted_section::{
+ DeserializationError, EncryptedSectionContents,
+ IdentityResolutionOrDeserializationError, MicVerificationError,
+ },
+ parse_sections,
+ test_stubs::{HkdfCryptoMaterial, IntermediateSectionExt},
+ CiphertextSection, OffsetDataElement, RawV1Salt,
+ },
+ serialize::{AdvBuilder, CapacityLimitedVec, MicEncryptedSectionEncoder},
+ },
+ 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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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 contents = if let CiphertextSection::MicEncryptedIdentity(contents) = &enc_section {
+ contents
+ } else {
+ panic!("incorrect flavor");
+ };
+
+ let keypair = np_ed25519::KeyPair::<CryptoProviderImpl>::generate();
+
+ // deserializing 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),
+ keypair.public(),
+ );
+ let identity_resolution_material =
+ crypto_material.unsigned_identity_resolution_material::<CryptoProviderImpl>();
+ let verification_material =
+ crypto_material.unsigned_verification_material::<CryptoProviderImpl>();
+
+ let section = contents
+ .try_resolve_identity_and_deserialize::<CryptoProviderImpl>(
+ &identity_resolution_material,
+ &verification_material,
+ )
+ .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 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 {
+ contents: EncryptedSectionContents {
+ section_header: 19 // encryption info de
+ + 2 // de header
+ + 16 // metadata key
+ + 2 // de contents
+ + 16, // mic hmac tag
+ 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 identity_resolution_contents =
+ contents.contents.compute_identity_resolution_contents::<CryptoProviderImpl>();
+ let identity_match = identity_resolution_contents
+ .try_match::<CryptoProviderImpl>(
+ identity_resolution_material.as_raw_resolution_material(),
+ )
+ .unwrap();
+ let decrypted = contents.contents.decrypt_ciphertext::<CryptoProviderImpl>(identity_match);
+
+ let mut expected = Vec::new();
+ // battery de
+ expected.extend_from_slice(txpower_de.clone().de_header().serialize().as_slice());
+ txpower_de.write_de_contents(&mut expected);
+
+ assert_eq!(metadata_key, decrypted.metadata_key_plaintext);
+ assert_eq!(&expected, decrypted.plaintext_contents.as_slice());
+ }
+}
+
+#[test]
+fn deserialize_mic_encrypted_incorrect_aes_key_error() {
+ // bad aes key -> bad metadata key plaintext
+ do_bad_deserialize_params::<CryptoProviderImpl>(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ 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>(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ 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>(
+ MicVerificationError::MicMismatch.into(),
+ 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>(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ 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(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ |_| {},
+ |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(
+ DeserializationError::DeParseError.into(),
+ |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(
+ MicVerificationError::MicMismatch.into(),
+ |_| {},
+ |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(
+ MicVerificationError::MicMismatch.into(),
+ |_| {},
+ |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: IdentityResolutionOrDeserializationError<MicVerificationError>,
+ 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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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_resolve_identity_and_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: IdentityResolutionOrDeserializationError<MicVerificationError>,
+ 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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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_resolve_identity_and_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..7dc411e
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/mod.rs
@@ -0,0 +1,477 @@
+// 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,
+};
+#[cfg(feature = "devtools")]
+use alloc::vec::Vec;
+use array_view::ArrayView;
+use core::fmt::Debug;
+use crypto_provider::{
+ aes::ctr::{AesCtr, AesCtrNonce, NonceAndCounter},
+ hmac::Hmac,
+ CryptoProvider,
+};
+use np_hkdf::v1_salt::V1Salt;
+
+#[cfg(test)]
+mod mic_decrypt_tests;
+#[cfg(test)]
+mod signature_decrypt_tests;
+
+/// Represents the contents of an encrypted section
+/// which are directly employed in identity resolution.
+/// This does not incorporate any information about credentials.
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct SectionIdentityResolutionContents {
+ /// The ciphertext for the metadata key
+ pub(crate) metadata_key_ciphertext: [u8; METADATA_KEY_LEN],
+ /// The 12-byte cryptographic nonce which is derived from the encryption info
+ /// and the identity metadata for a particular section.
+ pub(crate) nonce: AesCtrNonce,
+}
+
+impl SectionIdentityResolutionContents {
+ /// Decrypt the contained metadata-key ciphertext buffer whose bytes of plaintext are, maybe, the
+ /// metadata key for an NP identity, as specified via pre-calculated cryptographic materials
+ /// stored in some [`SectionIdentityResolutionMaterial`].
+ ///
+ /// This method does not decrypt an entire section's ciphertext aside from the metadata key,
+ /// and so verification (MIC or signature) needs to be done elsewhere.
+ ///
+ /// Returns `Some` if decrypting the metadata-key ciphertext produces plaintext whose HMAC
+ /// matches the expected MAC. Otherwise, returns `None`.
+ pub(crate) fn try_match<C: CryptoProvider>(
+ &self,
+ identity_resolution_material: &SectionIdentityResolutionMaterial,
+ ) -> Option<IdentityMatch<C>> {
+ let mut decrypt_buf = self.metadata_key_ciphertext;
+ let aes_key = &identity_resolution_material.aes_key;
+ let mut cipher = C::AesCtr128::new(aes_key, NonceAndCounter::from_nonce(self.nonce));
+ cipher.decrypt(&mut decrypt_buf[..]);
+
+ 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[..], expected_metadata_key_hmac).ok().map(
+ move |_| IdentityMatch {
+ cipher,
+ metadata_key_plaintext: decrypt_buf,
+ nonce: self.nonce,
+ },
+ )
+ }
+}
+
+/// Carries data about an identity "match" for a particular section
+/// against some particular V1 identity-resolution crypto-materials.
+pub(crate) struct IdentityMatch<C: CryptoProvider> {
+ /// Decrypted metadata key ciphertext
+ metadata_key_plaintext: [u8; METADATA_KEY_LEN],
+ /// The AES-Ctr nonce to be used in section decryption and verification
+ nonce: AesCtrNonce,
+ /// The state of the AES-Ctr cipher after successfully decrypting
+ /// the metadata key ciphertext. May be used to decrypt the remainder
+ /// of the section ciphertext.
+ cipher: C::AesCtr128,
+}
+
+/// Maximum length of a section's contents, after the metadata-key.
+const MAX_SECTION_CONTENTS_LEN: usize = NP_ADV_MAX_SECTION_LEN - METADATA_KEY_LEN;
+
+/// Bare, decrypted contents from an encrypted section,
+/// including the decrypted metadata key and the decrypted section ciphertext.
+/// At this point, verification of the plaintext contents has not yet been performed.
+pub(crate) struct RawDecryptedSection {
+ pub(crate) metadata_key_plaintext: [u8; METADATA_KEY_LEN],
+ pub(crate) nonce: AesCtrNonce,
+ pub(crate) plaintext_contents: ArrayView<u8, MAX_SECTION_CONTENTS_LEN>,
+}
+
+#[cfg(feature = "devtools")]
+impl RawDecryptedSection {
+ pub(crate) fn to_raw_bytes(&self) -> ArrayView<u8, NP_ADV_MAX_SECTION_LEN> {
+ let mut result = Vec::new();
+ result.extend_from_slice(&self.metadata_key_plaintext);
+ result.extend_from_slice(self.plaintext_contents.as_slice());
+ // Won't panic because of the involved lengths
+ ArrayView::try_from_slice(&result).unwrap()
+ }
+}
+
+/// Represents the contents of an encrypted section,
+/// independent of the encryption type.
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct EncryptedSectionContents<'a> {
+ pub(crate) section_header: u8,
+ pub(crate) adv_header: 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> EncryptedSectionContents<'a> {
+ /// Constructs a representation of the contents of an encrypted V1 section
+ /// from the advertisement header, the section header, information about
+ /// the encryption used for identity verification, identity metadata,
+ /// and the entire section contents as an undecrypted ciphertext.
+ ///
+ /// # Panics
+ /// If `all_ciphertext` is greater than `NP_ADV_MAX_SECTION_LEN` bytes,
+ /// or less than `METADATA_KEY_LEN` bytes.
+ pub(crate) fn new(
+ adv_header: V1Header,
+ section_header: u8,
+ encryption_info: EncryptionInfo,
+ identity: EncryptedIdentityMetadata,
+ all_ciphertext: &'a [u8],
+ ) -> Self {
+ assert!(all_ciphertext.len() >= METADATA_KEY_LEN);
+ assert!(all_ciphertext.len() <= NP_ADV_MAX_SECTION_LEN);
+ Self { adv_header, section_header, encryption_info, identity, all_ciphertext }
+ }
+
+ /// Gets the salt for this encrypted section
+ pub(crate) fn salt<C: CryptoProvider>(&self) -> V1Salt<C> {
+ self.encryption_info.salt().into()
+ }
+
+ /// Constructs a cryptographic nonce for this encrypted section
+ /// based on the contained salt.
+ pub(crate) fn compute_nonce<C: CryptoProvider>(&self) -> AesCtrNonce {
+ self.salt::<C>()
+ .derive(Some(self.identity.offset))
+ .expect("AES-CTR nonce is a valid HKDF size")
+ }
+
+ /// Constructs some cryptographic contents for section identity-resolution
+ /// out of the entire contents of this encrypted section.
+ pub(crate) fn compute_identity_resolution_contents<C: CryptoProvider>(
+ &self,
+ ) -> SectionIdentityResolutionContents {
+ let nonce = self.compute_nonce::<C>();
+ let metadata_key_ciphertext: [u8; METADATA_KEY_LEN] =
+ self.all_ciphertext[..METADATA_KEY_LEN].try_into().unwrap();
+
+ SectionIdentityResolutionContents { nonce, metadata_key_ciphertext }
+ }
+
+ /// Given an identity-match, decrypts the ciphertext in this encrypted section
+ /// and returns the raw bytes of the decrypted plaintext.
+ pub(crate) fn decrypt_ciphertext<C: CryptoProvider>(
+ &self,
+ mut identity_match: IdentityMatch<C>,
+ ) -> RawDecryptedSection {
+ // Fill decrypt_buf with the ciphertext after the metadata key
+ let mut decrypt_buf = tinyvec::ArrayVec::<[u8; MAX_SECTION_CONTENTS_LEN]>::new();
+ decrypt_buf.extend_from_slice(&self.all_ciphertext[METADATA_KEY_LEN..]);
+
+ // Decrypt everything after the metadata key
+ identity_match.cipher.decrypt(&mut decrypt_buf);
+
+ let plaintext_contents = to_array_view(decrypt_buf);
+
+ RawDecryptedSection {
+ metadata_key_plaintext: identity_match.metadata_key_plaintext,
+ nonce: identity_match.nonce,
+ plaintext_contents,
+ }
+ }
+ /// Try decrypting into some raw bytes given some raw identity-resolution material.
+ #[cfg(feature = "devtools")]
+ pub(crate) fn try_resolve_identity_and_decrypt<P: CryptoProvider>(
+ &self,
+ identity_resolution_material: &SectionIdentityResolutionMaterial,
+ ) -> Option<ArrayView<u8, NP_ADV_MAX_SECTION_LEN>> {
+ let identity_resolution_contents = self.compute_identity_resolution_contents::<P>();
+ identity_resolution_contents.try_match(identity_resolution_material).map(|identity_match| {
+ let decrypted_section = self.decrypt_ciphertext::<P>(identity_match);
+ decrypted_section.to_raw_bytes()
+ })
+ }
+}
+
+/// An encrypted section which is verified using a ed25519 signature
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct SignatureEncryptedSection<'a> {
+ pub(crate) contents: EncryptedSectionContents<'a>,
+}
+
+impl<'a> SignatureEncryptedSection<'a> {
+ /// Try deserializing into a [`DecryptedSection`] given an identity-match
+ /// with some paired verification material for the matched identity.
+ pub(crate) fn try_deserialize<P>(
+ &self,
+ identity_match: IdentityMatch<P>,
+ verification_material: &SignedSectionVerificationMaterial,
+ ) -> Result<DecryptedSection, DeserializationError<SignatureVerificationError>>
+ where
+ P: CryptoProvider,
+ {
+ let raw_decrypted = self.contents.decrypt_ciphertext(identity_match);
+ let metadata_key = raw_decrypted.metadata_key_plaintext;
+ let nonce = raw_decrypted.nonce;
+ let remaining = raw_decrypted.plaintext_contents;
+
+ if remaining.len() < crypto_provider::ed25519::SIGNATURE_LENGTH {
+ return Err(SignatureVerificationError::SignatureMissing.into());
+ }
+
+ // should not panic due to above check
+ let (non_identity_des, sig) = remaining
+ .as_slice()
+ .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(|_| DeserializationError::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 section_signature_payload = SectionSignaturePayload::from_deserialized_parts(
+ self.contents.adv_header.header_byte,
+ self.contents.section_header,
+ &self.contents.encryption_info.bytes,
+ &nonce,
+ self.contents.identity.header_bytes,
+ metadata_key,
+ non_identity_des,
+ );
+
+ 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);
+
+ SignatureVerificationError::SignatureMismatch
+ })?;
+
+ let salt = self.contents.salt::<P>();
+
+ Ok(DecryptedSection::new(
+ self.contents.identity.identity_type,
+ VerificationMode::Signature,
+ metadata_key,
+ salt.into(),
+ SectionContents::new(self.contents.section_header, &ref_des),
+ ))
+ }
+ /// Try decrypting into some raw bytes given some raw signed crypto-material.
+ #[cfg(feature = "devtools")]
+ pub(crate) fn try_resolve_identity_and_decrypt<P: CryptoProvider>(
+ &self,
+ identity_resolution_material: &SignedSectionIdentityResolutionMaterial,
+ ) -> Option<ArrayView<u8, NP_ADV_MAX_SECTION_LEN>> {
+ self.contents.try_resolve_identity_and_decrypt::<P>(
+ identity_resolution_material.as_raw_resolution_material(),
+ )
+ }
+
+ /// Try deserializing into a [Section] given some raw signed crypto-material.
+ #[cfg(test)]
+ pub(crate) fn try_resolve_identity_and_deserialize<P: CryptoProvider>(
+ &self,
+ identity_resolution_material: &SignedSectionIdentityResolutionMaterial,
+ verification_material: &SignedSectionVerificationMaterial,
+ ) -> Result<
+ DecryptedSection,
+ IdentityResolutionOrDeserializationError<SignatureVerificationError>,
+ > {
+ let section_identity_resolution_contents =
+ self.contents.compute_identity_resolution_contents::<P>();
+ match section_identity_resolution_contents
+ .try_match::<P>(identity_resolution_material.as_raw_resolution_material())
+ {
+ Some(identity_match) => {
+ self.try_deserialize(identity_match, verification_material).map_err(|e| e.into())
+ }
+ None => Err(IdentityResolutionOrDeserializationError::IdentityMatchingError),
+ }
+ }
+}
+
+/// An error when attempting to resolve an identity and then
+/// attempt to deserialize an encrypted advertisement.
+///
+/// This should not be exposed publicly, since it's too
+/// detailed.
+#[cfg(test)]
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum IdentityResolutionOrDeserializationError<V: VerificationError> {
+ /// Failed to match the encrypted adv to an identity
+ IdentityMatchingError,
+ /// Failed to deserialize the encrypted adv after matching the identity
+ DeserializationError(DeserializationError<V>),
+}
+
+#[cfg(test)]
+impl<V: VerificationError> From<DeserializationError<V>>
+ for IdentityResolutionOrDeserializationError<V>
+{
+ fn from(deserialization_error: DeserializationError<V>) -> Self {
+ Self::DeserializationError(deserialization_error)
+ }
+}
+
+#[cfg(test)]
+impl<V: VerificationError> From<V> for IdentityResolutionOrDeserializationError<V> {
+ fn from(verification_error: V) -> Self {
+ Self::DeserializationError(DeserializationError::VerificationError(verification_error))
+ }
+}
+
+/// An error when attempting to deserialize an encrypted advertisement,
+/// assuming that we already have an identity-match.
+///
+/// This should not be exposed publicly, since it's too
+/// detailed.
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum DeserializationError<V: VerificationError> {
+ /// Parsing of decrypted DEs failed
+ DeParseError,
+ /// Verification failed
+ VerificationError(V),
+}
+
+impl<V: VerificationError> From<V> for DeserializationError<V> {
+ fn from(verification_error: V) -> Self {
+ Self::VerificationError(verification_error)
+ }
+}
+
+/// Common trait bound for errors which arise during
+/// verification of encrypted section contents.
+///
+/// Implementors should not be exposed publicly, since it's too
+/// detailed.
+pub(crate) trait VerificationError: Debug + PartialEq + Eq {}
+
+/// An error when attempting to verify a signature
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum SignatureVerificationError {
+ /// The provided signature did not match the calculated signature
+ SignatureMismatch,
+ /// The provided signature is missing
+ SignatureMissing,
+}
+
+impl VerificationError for SignatureVerificationError {}
+
+/// An encrypted section whose contents are verified to match a message integrity code (MIC)
+#[derive(PartialEq, Eq, Debug)]
+pub(crate) struct MicEncryptedSection<'a> {
+ pub(crate) contents: EncryptedSectionContents<'a>,
+ pub(crate) mic: SectionMic,
+}
+
+impl<'a> MicEncryptedSection<'a> {
+ /// Try deserializing into a [`DecryptedSection`].
+ ///
+ /// Returns an error if the credential is incorrect or if the section data is malformed.
+ pub(crate) fn try_deserialize<P>(
+ &self,
+ identity_match: IdentityMatch<P>,
+ verification_material: &UnsignedSectionVerificationMaterial,
+ ) -> Result<DecryptedSection, DeserializationError<MicVerificationError>>
+ where
+ P: CryptoProvider,
+ {
+ let raw_decrypted = self.contents.decrypt_ciphertext(identity_match);
+ let metadata_key = raw_decrypted.metadata_key_plaintext;
+ let nonce = raw_decrypted.nonce;
+ let remaining_des = raw_decrypted.plaintext_contents;
+
+ // 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.contents.adv_header.header_byte]);
+ mic_hmac.update(&[self.contents.section_header]);
+ mic_hmac.update(&self.contents.encryption_info.bytes);
+ mic_hmac.update(&nonce);
+ mic_hmac.update(&self.contents.identity.header_bytes);
+ mic_hmac.update(self.contents.all_ciphertext);
+ mic_hmac
+ // adv only contains first 16 bytes of HMAC
+ .verify_truncated_left(&self.mic.mic)
+ .map_err(|_e| MicVerificationError::MicMismatch)?;
+
+ // offset 2 for encryption info and identity DEs
+ let (_, ref_des) = parse_non_identity_des(2)(remaining_des.as_slice())
+ .map_err(|_| DeserializationError::DeParseError)?;
+
+ let salt = self.contents.salt::<P>();
+
+ Ok(DecryptedSection::new(
+ self.contents.identity.identity_type,
+ VerificationMode::Mic,
+ metadata_key,
+ salt.into(),
+ SectionContents::new(self.contents.section_header, &ref_des),
+ ))
+ }
+
+ /// Try decrypting into some raw bytes given some raw unsigned crypto-material.
+ #[cfg(feature = "devtools")]
+ pub(crate) fn try_resolve_identity_and_decrypt<P: CryptoProvider>(
+ &self,
+ identity_resolution_material: &UnsignedSectionIdentityResolutionMaterial,
+ ) -> Option<ArrayView<u8, NP_ADV_MAX_SECTION_LEN>> {
+ self.contents.try_resolve_identity_and_decrypt::<P>(
+ identity_resolution_material.as_raw_resolution_material(),
+ )
+ }
+
+ /// Try deserializing into a [Section] given some raw unsigned crypto-material.
+ #[cfg(test)]
+ pub(crate) fn try_resolve_identity_and_deserialize<P: CryptoProvider>(
+ &self,
+ identity_resolution_material: &UnsignedSectionIdentityResolutionMaterial,
+ verification_material: &UnsignedSectionVerificationMaterial,
+ ) -> Result<DecryptedSection, IdentityResolutionOrDeserializationError<MicVerificationError>>
+ {
+ let section_identity_resolution_contents =
+ self.contents.compute_identity_resolution_contents::<P>();
+ match section_identity_resolution_contents
+ .try_match::<P>(identity_resolution_material.as_raw_resolution_material())
+ {
+ Some(identity_match) => {
+ self.try_deserialize(identity_match, verification_material).map_err(|e| e.into())
+ }
+ None => Err(IdentityResolutionOrDeserializationError::IdentityMatchingError),
+ }
+ }
+}
+
+#[derive(Debug, PartialEq, Eq)]
+pub(crate) enum MicVerificationError {
+ /// Calculated MIC did not match MIC from section
+ MicMismatch,
+}
+
+impl VerificationError for MicVerificationError {}
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..f8d622c
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/encrypted_section/signature_decrypt_tests.rs
@@ -0,0 +1,527 @@
+// 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::extended::serialize::AdvertisementType;
+use crate::shared_data::TxPower;
+use crate::{
+ credential::v1::*,
+ de_type::EncryptedIdentityDataElementType,
+ extended::{
+ deserialize::{
+ encrypted_section::{
+ DeserializationError, EncryptedSectionContents,
+ IdentityResolutionOrDeserializationError, SignatureEncryptedSection,
+ SignatureVerificationError,
+ },
+ parse_sections,
+ test_stubs::IntermediateSectionExt,
+ CiphertextSection, EncryptedIdentityMetadata, OffsetDataElement, SectionContents,
+ VerificationMode,
+ },
+ section_signature_payload::*,
+ serialize::{
+ AdvBuilder, CapacityLimitedVec, SignedEncryptedSectionEncoder, 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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::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 {
+ contents: EncryptedSectionContents {
+ section_header: section_len,
+ 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 identity_resolution_contents =
+ contents.contents.compute_identity_resolution_contents::<CryptoProviderImpl>();
+ let identity_match = identity_resolution_contents
+ .try_match::<CryptoProviderImpl>(
+ signed_identity_resolution_material.as_raw_resolution_material(),
+ )
+ .unwrap();
+
+ let decrypted = contents.contents.decrypt_ciphertext(identity_match);
+
+ let mut expected = Vec::new();
+ // 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],
+ metadata_key,
+ &expected,
+ );
+
+ expected.extend_from_slice(&sig_payload.sign(&key_pair).to_bytes());
+ assert_eq!(metadata_key, decrypted.metadata_key_plaintext);
+ assert_eq!(nonce, decrypted.nonce);
+ assert_eq!(&expected, decrypted.plaintext_contents.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_resolve_identity_and_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>(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ 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>(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ 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>(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ 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>(
+ SignatureVerificationError::SignatureMismatch.into(),
+ 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(
+ IdentityResolutionOrDeserializationError::IdentityMatchingError,
+ None,
+ |_| {},
+ |adv_mut| adv_mut[5..21].copy_from_slice(&[0xFF; 16]),
+ )
+}
+
+#[test]
+fn deserialize_signature_encrypted_tampered_signature_error() {
+ do_bad_deserialize_tampered(
+ SignatureVerificationError::SignatureMismatch.into(),
+ 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(
+ SignatureVerificationError::SignatureMismatch.into(),
+ 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(
+ SignatureVerificationError::SignatureMissing.into(),
+ 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(
+ DeserializationError::DeParseError.into(),
+ 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: IdentityResolutionOrDeserializationError<SignatureVerificationError>,
+ 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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::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_resolve_identity_and_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: IdentityResolutionOrDeserializationError<SignatureVerificationError>,
+ 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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::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 {
+ contents: EncryptedSectionContents {
+ section_header: expected_section_len.unwrap_or(section_len),
+ 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_resolve_identity_and_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..beb205f
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/mod.rs
@@ -0,0 +1,930 @@
+// 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::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};
+
+#[cfg(any(feature = "devtools", test))]
+use crate::credential::v1::V1CryptoMaterial;
+#[cfg(test)]
+use crate::extended::deserialize::encrypted_section::IdentityResolutionOrDeserializationError;
+use crate::extended::{NP_V1_ADV_MAX_ENCRYPTED_SECTION_COUNT, NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT};
+use crate::{
+ de_type::{EncryptedIdentityDataElementType, IdentityDataElementType},
+ extended::{
+ data_elements::{MIC_ENCRYPTION_SCHEME, SIGNATURE_ENCRYPTION_SCHEME},
+ de_type::{DeType, ExtendedDataElementType as _},
+ deserialize::encrypted_section::{
+ DeserializationError, EncryptedSectionContents, MicEncryptedSection,
+ MicVerificationError, SignatureEncryptedSection, SignatureVerificationError,
+ },
+ to_array_view, DeLength, ENCRYPTION_INFO_DE_TYPE, METADATA_KEY_LEN, NP_ADV_MAX_SECTION_LEN,
+ },
+ PlaintextIdentityMode, V1Header,
+};
+
+pub(crate) 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(
+ adv_header: V1Header,
+ adv_body: &[u8],
+) -> Result<Vec<IntermediateSection>, nom::Err<error::Error<&[u8]>>> {
+ combinator::all_consuming(branch::alt((
+ // Public advertisement
+ multi::many_m_n(
+ 1,
+ NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT,
+ IntermediateSection::parser_public_section(),
+ ),
+ // Encrypted advertisement
+ multi::many_m_n(
+ 1,
+ NP_V1_ADV_MAX_ENCRYPTED_SECTION_COUNT,
+ IntermediateSection::parser_encrypted_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_public_section() -> 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
+ 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),
+ ))
+ },
+ );
+ 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(parse_public_identity),
+ )(remaining)
+ }
+ }
+
+ fn parser_encrypted_with_header(
+ adv_header: 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:
+ // - Encryption information, non-public Identity header, ciphertext
+ // - Encryption information, non-public Identity header, ciphertext, MIC
+
+ 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 {
+ contents: EncryptedSectionContents::new(
+ adv_header,
+ section_contents_len,
+ encryption_info,
+ identity,
+ &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 {
+ contents: EncryptedSectionContents::new(
+ adv_header,
+ section_contents_len,
+ encryption_info,
+ identity,
+ &identity_and_ciphertext[to_skip..],
+ ),
+ mic: mic.try_into().unwrap_or_else(|_| {
+ panic!("{} is a valid length", SectionMic::CONTENTS_LEN)
+ }),
+ },
+ ))
+ },
+ );
+
+ 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,
+ ))),
+ )(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()
+ }
+}
+
+impl<C: CryptoProvider> From<V1Salt<C>> for RawV1Salt {
+ fn from(salt: V1Salt<C>) -> Self {
+ RawV1Salt(salt.into_array())
+ }
+}
+
+/// Fully-parsed and verified decrypted contents from an encrypted 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> {
+ /// Tries to match this section's identity using the given crypto-material,
+ /// and if successful, tries to decrypt this section.
+ #[cfg(test)]
+ pub(crate) fn try_resolve_identity_and_deserialize<C, P>(
+ &self,
+ crypto_material: &C,
+ ) -> Result<DecryptedSection, SectionDeserializeError>
+ where
+ C: V1CryptoMaterial,
+ P: CryptoProvider,
+ {
+ use core::borrow::Borrow;
+ match self {
+ CiphertextSection::SignatureEncryptedIdentity(contents) => {
+ let identity_resolution_material =
+ crypto_material.signed_identity_resolution_material::<P>();
+ let verification_material = crypto_material.signed_verification_material::<P>();
+
+ contents
+ .try_resolve_identity_and_deserialize::<P>(
+ identity_resolution_material.borrow(),
+ &verification_material,
+ )
+ .map_err(|e| e.into())
+ }
+ CiphertextSection::MicEncryptedIdentity(contents) => {
+ let identity_resolution_material =
+ crypto_material.unsigned_identity_resolution_material::<P>();
+ let verification_material = crypto_material.unsigned_verification_material::<P>();
+
+ contents
+ .try_resolve_identity_and_deserialize::<P>(
+ identity_resolution_material.borrow(),
+ &verification_material,
+ )
+ .map_err(|e| e.into())
+ }
+ }
+ }
+
+ /// Try decrypting into some raw bytes given some raw unsigned crypto-material.
+ #[cfg(feature = "devtools")]
+ pub(crate) fn try_resolve_identity_and_decrypt<C: V1CryptoMaterial, P: CryptoProvider>(
+ &self,
+ crypto_material: &C,
+ ) -> Option<ArrayView<u8, NP_ADV_MAX_SECTION_LEN>> {
+ use core::borrow::Borrow;
+ match self {
+ CiphertextSection::SignatureEncryptedIdentity(x) => {
+ let identity_resolution_material =
+ crypto_material.signed_identity_resolution_material::<P>();
+ x.try_resolve_identity_and_decrypt::<P>(identity_resolution_material.borrow())
+ }
+ CiphertextSection::MicEncryptedIdentity(x) => {
+ let identity_resolution_material =
+ crypto_material.unsigned_identity_resolution_material::<P>();
+ x.try_resolve_identity_and_decrypt::<P>(identity_resolution_material.borrow())
+ }
+ }
+ }
+
+ pub(crate) fn contents(&self) -> &EncryptedSectionContents<'a> {
+ match self {
+ CiphertextSection::SignatureEncryptedIdentity(x) => &x.contents,
+ CiphertextSection::MicEncryptedIdentity(x) => &x.contents,
+ }
+ }
+}
+
+/// Errors that can occur when deserializing a section
+/// of a V1 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,
+}
+
+#[cfg(test)]
+impl From<IdentityResolutionOrDeserializationError<MicVerificationError>>
+ for SectionDeserializeError
+{
+ fn from(error: IdentityResolutionOrDeserializationError<MicVerificationError>) -> Self {
+ match error {
+ IdentityResolutionOrDeserializationError::IdentityMatchingError => {
+ Self::IncorrectCredential
+ }
+ IdentityResolutionOrDeserializationError::DeserializationError(e) => e.into(),
+ }
+ }
+}
+
+#[cfg(test)]
+impl From<IdentityResolutionOrDeserializationError<SignatureVerificationError>>
+ for SectionDeserializeError
+{
+ fn from(error: IdentityResolutionOrDeserializationError<SignatureVerificationError>) -> Self {
+ match error {
+ IdentityResolutionOrDeserializationError::IdentityMatchingError => {
+ Self::IncorrectCredential
+ }
+ IdentityResolutionOrDeserializationError::DeserializationError(e) => e.into(),
+ }
+ }
+}
+
+impl From<DeserializationError<MicVerificationError>> for SectionDeserializeError {
+ fn from(mic_deserialization_error: DeserializationError<MicVerificationError>) -> Self {
+ match mic_deserialization_error {
+ DeserializationError::DeParseError => Self::ParseError,
+ DeserializationError::VerificationError(MicVerificationError::MicMismatch) => {
+ Self::IncorrectCredential
+ }
+ }
+ }
+}
+
+impl From<DeserializationError<SignatureVerificationError>> for SectionDeserializeError {
+ fn from(
+ signature_deserialization_error: DeserializationError<SignatureVerificationError>,
+ ) -> Self {
+ match signature_deserialization_error {
+ DeserializationError::DeParseError
+ | DeserializationError::VerificationError(
+ SignatureVerificationError::SignatureMissing,
+ ) => Self::ParseError,
+ DeserializationError::VerificationError(
+ SignatureVerificationError::SignatureMismatch,
+ ) => Self::IncorrectCredential,
+ }
+ }
+}
+
+/// 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()
+ .try_fold(0_u32, |accum, b| {
+ accum.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 [`EncryptedIdentityMetadata`] 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..dd88f74
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/parse_tests.rs
@@ -0,0 +1,711 @@
+// 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 rand::rngs::StdRng;
+use rand::seq::SliceRandom;
+use rand::{Rng, SeedableRng};
+use std::vec;
+
+#[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]);
+
+ 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(),]),
+ 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 {
+ contents: EncryptedSectionContents {
+ section_header: 47,
+ 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 {
+ contents: EncryptedSectionContents {
+ section_header: 48,
+ 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 {
+ contents: EncryptedSectionContents {
+ section_header: 49,
+ 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 {
+ contents: EncryptedSectionContents {
+ section_header: 63,
+ 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 ciphertext
+ all_ciphertext: &adv_body[1 + 19 + 2..64 - 16],
+ },
+ mic: SectionMic::from([0x33; 16]),
+ }
+ .into(),
+ MicEncryptedSection {
+ contents: EncryptedSectionContents {
+ section_header: 64,
+ 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[64 + 1 + 19 + 2..129 - 16],
+ },
+ mic: SectionMic::from([0x66; 16]),
+ }
+ .into(),
+ MicEncryptedSection {
+ contents: EncryptedSectionContents {
+ section_header: 65,
+ adv_header,
+ 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],
+ },
+ mic: SectionMic::from([0x99; 16]),
+ }
+ .into(),
+ ]),
+ parse_sections(adv_header, &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 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[1..],
+ code: error::ErrorKind::Verify
+ })),
+ parse_sections(V1Header { header_byte: 0x20 }, &adv_body)
+ );
+}
+
+#[test]
+fn invalid_public_section() {
+ let mut rng = StdRng::from_entropy();
+ for _ in 0..100 {
+ let mut adv_body = vec![];
+ // Add section length
+ let remove_section_len = rng.gen_bool(0.5);
+ // Add public identity
+ let add_public_identity = rng.gen_bool(0.5);
+ // Add DEs
+ let add_des = rng.gen_bool(0.5);
+ // Shuffle adv
+ let shuffle = rng.gen_bool(0.5);
+
+ adv_body.push(0);
+ if add_public_identity {
+ adv_body[0] += 1;
+ adv_body.push(0x03);
+ }
+ if add_des {
+ adv_body[0] += 3;
+ adv_body.extend_from_slice(&[0x81, 0x70, 0xFF]);
+ }
+ if remove_section_len {
+ adv_body.remove(0);
+ }
+ if shuffle {
+ adv_body.shuffle(&mut rng);
+ }
+ // A V1 public section is invalid if
+ // * section length is missing
+ // * the section is empty
+ // * the section identity is missing
+ // * the identity does not follow the section length
+ // * the section length is 0
+ if remove_section_len || !add_public_identity || (shuffle && adv_body.len() > 2) {
+ parse_sections(V1Header { header_byte: 0x20 }, &adv_body)
+ .expect_err("Expected to fail because of missing section length or identity");
+ }
+ }
+}
+
+// There can only be one identity DE
+#[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 {
+ input: &adv_body[1..],
+ code: error::ErrorKind::Verify
+ })),
+ 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[1..],
+ // Eof because all_consuming is used to ensure complete section is parsed
+ code: error::ErrorKind::Verify
+ })),
+ 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[1..],
+ // Eof because all_consuming is used to ensure complete section is parsed
+ code: error::ErrorKind::Verify
+ })),
+ parse_sections(V1Header { header_byte: 0x20 }, &adv_body)
+ );
+}
+
+#[test]
+fn parse_adv_no_identity() {
+ let adv_body = vec![0x55, 0x01, 0x02, 0x03, 0x04, 0x05];
+ assert_eq!(
+ Err(nom::Err::Error(error::Error { input: &adv_body[1..], code: error::ErrorKind::Eof })),
+ parse_sections(V1Header { header_byte: 0x20 }, &adv_body)
+ );
+}
+
+#[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_encrypted_with_header(V1Header { header_byte: 0x20 })(&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_encrypted_with_header(V1Header { header_byte: 0x20 })(&input)
+ .unwrap_err()
+ );
+}
+
+#[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_encrypted_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_adv_signature_encrypted_plaintext_mix() {
+ // 2 sections
+ let mut adv_body = vec![];
+
+ // section 1 - plaintext - 10 bytes
+ 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 2 - plaintext - 10 bytes
+ 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]);
+
+ let adv_header = V1Header { header_byte: 0x20 };
+
+ assert_eq!(
+ Err(nom::Err::Error(error::Error { input: &adv_body[11..], code: error::ErrorKind::Eof })),
+ parse_sections(adv_header, &adv_body)
+ );
+}
+
+// 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..15df16a
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/deserialize/section_tests.rs
@@ -0,0 +1,679 @@
+// 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::AdvertisementType;
+use crate::extended::NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT;
+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, MicEncryptedSectionEncoder, PublicSectionEncoder, SectionBuilder,
+ SignedEncryptedSectionEncoder, WriteDataElement,
+ },
+ MAX_DE_LEN,
+ },
+ parse_adv_header, AdvHeader,
+};
+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::<PublicSectionEncoder>(
+ PublicSectionEncoder::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(AdvertisementType::Encrypted);
+
+ let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(chosen_key_seed);
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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(AdvertisementType::Encrypted);
+
+ let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(chosen_key_seed);
+ let mut section_builder = adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::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(AdvertisementType::Encrypted);
+
+ let hkdf = np_hkdf::NpKeySeedHkdf::<CryptoProviderImpl>::new(&chosen_key_seed);
+
+ // awkward split because SectionEncoder isn't object-safe, so we can't just have a
+ // Box<dyn SectionEncoder> and use that in one code path
+ if signed {
+ let identity = SignedEncryptedSectionEncoder::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 = MicEncryptedSectionEncoder::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(AdvertisementType::Plaintext);
+ 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_public_sections() {
+ let adv_builder = build_dummy_advertisement_sections(NP_V1_ADV_MAX_PUBLIC_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_PUBLIC_SECTION_COUNT, sections.len());
+}
+
+#[test]
+fn try_deserialize_over_max_number_of_public_sections() {
+ let adv_builder = build_dummy_advertisement_sections(NP_V1_ADV_MAX_PUBLIC_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 limit");
+}
+
+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::SectionEncoder>(
+ 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(AdvertisementType::Plaintext);
+ 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::SectionEncoder>(
+ 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() {
+ let crypto_material = c.crypto_material();
+ match section.try_resolve_identity_and_deserialize::<_, P>(crypto_material) {
+ 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(AdvertisementType::Plaintext);
+ for _ in 0..number_of_sections {
+ let section_builder = adv_builder.section_builder(PublicSectionEncoder::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..5d18daa
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/mod.rs
@@ -0,0 +1,93 @@
+// 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_ENCRYPTED_SECTION_COUNT: usize = 8;
+
+/// Maximum number of public sections in an advertisement
+pub const NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT: usize = 1;
+
+/// 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..a89843b
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/section_signature_payload.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.
+
+//! 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, METADATA_KEY_LEN};
+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]),
+ /// Plaintext identity DE header followed by the metadata key,
+ /// then the rest of the section plaintext (including
+ /// the plaintext identity DE payload).
+ IdentityHeaderMetadataKeyAndRemainder([u8; 2], [u8; METADATA_KEY_LEN], &'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
+ /// 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],
+ plaintext_metadata_key: [u8; METADATA_KEY_LEN],
+ raw_plaintext_remainder: &'a [u8],
+ ) -> Self {
+ Self {
+ adv_header_byte,
+ section_header,
+ encryption_info,
+ nonce_ref,
+ after_iv_info: AfterIVInfo::IdentityHeaderMetadataKeyAndRemainder(
+ identity_header,
+ plaintext_metadata_key,
+ raw_plaintext_remainder,
+ ),
+ }
+ }
+
+ /// 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),
+ }
+ }
+
+ /// 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::IdentityHeaderMetadataKeyAndRemainder(
+ identity_header,
+ metadata_key,
+ remainder,
+ ) => {
+ sink.try_extend_from_slice(&identity_header)?;
+ sink.try_extend_from_slice(&metadata_key)?;
+ sink.try_extend_from_slice(remainder)
+ }
+ }
+ }
+}
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..36e4e5f
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/adv_tests.rs
@@ -0,0 +1,106 @@
+// 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(AdvertisementType::Plaintext);
+
+ let mut public_identity_section_builder =
+ adv_builder.section_builder(PublicSectionEncoder::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, 30, // de header
+ ],
+ 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(AdvertisementType::Plaintext);
+ let mut section_builder =
+ adv_builder.section_builder(PublicSectionEncoder::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 building_capacity_0_section_works() {
+ let mut adv_builder = AdvBuilder::new(AdvertisementType::Plaintext);
+
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::default()).unwrap();
+
+ // leave room for section header and the public identity
+ fill_section_builder(NP_ADV_MAX_SECTION_LEN - 2, &mut section_builder);
+
+ assert_eq!(NP_ADV_MAX_SECTION_LEN, section_builder.section.capacity);
+ assert_eq!(NP_ADV_MAX_SECTION_LEN, 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 SectionEncoder for EnormousIdentity {
+ const PREFIX_LEN: usize = 200;
+ const SUFFIX_LEN: usize = 0;
+ const INITIAL_DE_OFFSET: DataElementOffset = DataElementOffset::ZERO;
+ const ADVERTISEMENT_TYPE: AdvertisementType = AdvertisementType::Plaintext;
+
+ 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..c3b9ed3
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/mod.rs
@@ -0,0 +1,876 @@
+// 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(AdvertisementType::Plaintext);
+//! let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Encrypted);
+//!
+//! // 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(MicEncryptedSectionEncoder::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_ENCRYPTED_SECTION_COUNT, NP_V1_ADV_MAX_PUBLIC_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, 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]>,
+ /// To track the number of sections that are in the advertisement
+ section_count: usize,
+ /// Advertisement type: Public or Encrypted
+ advertisement_type: AdvertisementType,
+}
+
+impl AdvBuilder {
+ /// Build an [AdvBuilder].
+ pub fn new(advertisement_type: AdvertisementType) -> Self {
+ let mut adv = tinyvec::ArrayVec::new();
+ // version 1, 0bVVVRRRRR
+ adv.push(0b00100000);
+ Self { adv, section_count: 0, advertisement_type }
+ }
+
+ /// Create a section builder.
+ ///
+ /// 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<SE: SectionEncoder>(
+ &mut self,
+ section_encoder: SE,
+ ) -> Result<SectionBuilder<SE>, AddSectionError> {
+ // section header and identity prefix
+ let prefix_len = 1 + SE::PREFIX_LEN;
+ let minimum_section_len = prefix_len + SE::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 >= self.advertisement_type.max_sections() {
+ return Err(AddSectionError::MaxSectionCountExceeded);
+ }
+
+ if self.advertisement_type != SE::ADVERTISEMENT_TYPE {
+ return Err(AddSectionError::IncompatibleSectionType);
+ }
+
+ 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 - SE::SUFFIX_LEN,
+ },
+ section_encoder,
+ adv_builder: self,
+ next_de_offset: SE::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]
+ }
+}
+
+/// 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_ENCRYPTED_SECTION_COUNT number of sections
+ MaxSectionCountExceeded,
+ /// An incompatible section trying to be added
+ IncompatibleSectionType,
+}
+
+/// 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, SE: SectionEncoder> {
+ /// Contains the section header, the identity-specified overhead, and any DEs added
+ pub(crate) section: CapacityLimitedVec<u8, NP_ADV_MAX_SECTION_LEN>,
+ section_encoder: SE,
+ /// mut ref to enforce only one active section builder at a time
+ adv_builder: &'a mut AdvBuilder,
+ next_de_offset: DataElementOffset,
+}
+
+impl<'a, SE: SectionEncoder> SectionBuilder<'a, SE> {
+ /// 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.section_encoder,
+ 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(SE::DerivedSalt) -> Result<W, E>>(
+ &mut self,
+ build_de: F,
+ ) -> Result<(), AddDataElementError<E>> {
+ let writer = build_de(self.section_encoder.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(SE::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 section_encoder: SE,
+ adv_builder: &AdvBuilder,
+ ) -> EncodedSection {
+ // there is space because the capacity for DEs was restricted to allow it
+ section_contents.resize(section_contents.len() + SE::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");
+
+ section_encoder.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 advertisement type, which dictates what sections can exist
+#[derive(Debug, PartialEq, Eq)]
+pub enum AdvertisementType {
+ /// Plaintext advertisement with only plaintext sections
+ Plaintext,
+ /// Encrypted advertisement with only encrypted sections
+ Encrypted,
+}
+
+impl AdvertisementType {
+ fn max_sections(&self) -> usize {
+ match self {
+ AdvertisementType::Plaintext => NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT,
+ AdvertisementType::Encrypted => NP_V1_ADV_MAX_ENCRYPTED_SECTION_COUNT,
+ }
+ }
+}
+
+/// Everything needed to properly encode a section
+pub trait SectionEncoder {
+ /// 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;
+
+ /// The advertisement type that can support this section
+ const ADVERTISEMENT_TYPE: AdvertisementType;
+
+ /// 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;
+}
+
+/// Public section for plaintext data elements
+#[derive(Default, Debug)]
+pub struct PublicSectionEncoder {}
+impl SectionEncoder for PublicSectionEncoder {
+ /// 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();
+ const ADVERTISEMENT_TYPE: AdvertisementType = AdvertisementType::Plaintext;
+ 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 an np_ed25519 signature
+/// using key material derived from an NP identity.
+pub struct SignedEncryptedSectionEncoder<'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> SignedEncryptedSectionEncoder<'a, C> {
+ /// Build a [SignedEncryptedSectionEncoder] 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 [SignedEncryptedSectionEncoder] 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> SectionEncoder for SignedEncryptedSectionEncoder<'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();
+ const ADVERTISEMENT_TYPE: AdvertisementType = AdvertisementType::Encrypted;
+
+ 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 }
+ }
+}
+
+/// Encrypts the data elements and protects integrity with a MIC using key material derived from
+/// an NP identity.
+pub struct MicEncryptedSectionEncoder<'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> MicEncryptedSectionEncoder<'a, C> {
+ /// Build a [MicEncryptedSectionEncoder] 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 [MicEncryptedSectionEncoder] from the provided identity info.
+ pub(crate) fn new(
+ identity_type: EncryptedIdentityDataElementType,
+ salt: V1Salt<C>,
+ identity_payload: &'a [u8; 16],
+ keys: &impl np_hkdf::UnsignedSectionKeys<C>,
+ ) -> Self {
+ MicEncryptedSectionEncoder {
+ identity_type,
+ salt,
+ identity_payload,
+ aes_key: keys.aes_key(),
+ mic_hmac_key: keys.hmac_key(),
+ }
+ }
+ /// Build a [MicEncryptedSectionEncoder] 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> SectionEncoder for MicEncryptedSectionEncoder<'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();
+
+ const ADVERTISEMENT_TYPE: AdvertisementType = AdvertisementType::Encrypted;
+
+ 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 }
+ }
+}
+
+/// 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))
+ }
+}
+
+/// 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..74a7eb0
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/section_tests.rs
@@ -0,0 +1,852 @@
+// 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::GenericDataElement;
+use crate::extended::serialize::AddSectionError::MaxSectionCountExceeded;
+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(AdvertisementType::Plaintext);
+ let section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::new_random_salt(
+ &mut crypto_rng,
+ identity_type,
+ &metadata_key,
+ &key_seed_hkdf,
+ ))
+ .unwrap();
+ let section_salt = V1Salt::<CryptoProviderImpl>::from(
+ *section_builder.section_encoder.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(AdvertisementType::Encrypted);
+ let key_pair = KeyPair::generate();
+
+ let mut section_builder = adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::new_random_salt(
+ &mut crypto_rng,
+ identity_type,
+ &metadata_key,
+ &key_pair,
+ &key_seed_hkdf,
+ ))
+ .unwrap();
+ let section_salt = V1Salt::<CryptoProviderImpl>::from(
+ *section_builder.section_encoder.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 section_body = Vec::new();
+ for de in extra_des {
+ section_body.extend_from_slice(de.de_header().serialize().as_slice());
+ de.write_de_contents(&mut section_body);
+ }
+
+ let sig_payload = SectionSignaturePayload::from_deserialized_parts(
+ 0x20,
+ section_length,
+ &encryption_info,
+ &nonce,
+ identity_de_header,
+ metadata_key,
+ &section_body,
+ );
+
+ let mut plaintext = metadata_key.as_slice().to_vec();
+ plaintext.extend_from_slice(section_body.as_slice());
+
+ 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(AdvertisementType::Encrypted);
+
+ 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(MicEncryptedSectionEncoder::new_random_salt(
+ &mut crypto_rng,
+ EncryptedIdentityDataElementType::Trusted,
+ &metadata_key,
+ &key_seed_hkdf,
+ ))
+ .unwrap();
+ let salt =
+ V1Salt::<CryptoProviderImpl>::from(*section_builder.section_encoder.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(AdvertisementType::Plaintext);
+
+ // fill up space to produce desired capacity
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::default()).unwrap();
+ // leave space for adv header, 1 section headers, 1 section identity and fill almost full
+ fill_section_builder(BLE_ADV_SVC_CONTENT_LEN - 1 - 1 - 1 - 1, &mut section_builder);
+ assert_eq!(1, section_builder.section.capacity() - section_builder.section.len(), "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: "
+ );
+
+ // 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(AdvertisementType::Encrypted);
+
+ 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(MicEncryptedSectionEncoder::new_random_salt(
+ &mut crypto_rng,
+ EncryptedIdentityDataElementType::Trusted,
+ &metadata_key,
+ &key_seed_hkdf,
+ ))
+ .unwrap();
+ let salt =
+ V1Salt::<CryptoProviderImpl>::from(*section_builder.section_encoder.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(AdvertisementType::Encrypted);
+
+ 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(MicEncryptedSectionEncoder::new_random_salt(
+ &mut crypto_rng,
+ EncryptedIdentityDataElementType::Trusted,
+ &metadata_key,
+ &key_seed_hkdf,
+ ))
+ .unwrap();
+ let salt =
+ V1Salt::<CryptoProviderImpl>::from(*section_builder.section_encoder.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(AdvertisementType::Encrypted);
+
+ 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(SignedEncryptedSectionEncoder::new_random_salt(
+ &mut crypto_rng,
+ EncryptedIdentityDataElementType::Trusted,
+ &metadata_key,
+ &key_pair,
+ &key_seed_hkdf,
+ ))
+ .unwrap();
+ let salt =
+ V1Salt::<CryptoProviderImpl>::from(*section_builder.section_encoder.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(AdvertisementType::Encrypted);
+
+ 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(SignedEncryptedSectionEncoder::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_public_sections() {
+ let mut adv_builder = AdvBuilder::new(AdvertisementType::Plaintext);
+ for _ in 0..NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT {
+ let mut section_builder =
+ adv_builder.section_builder(PublicSectionEncoder::default()).unwrap();
+ section_builder
+ .add_de(|_| DummyDataElement { de_type: 100_u32.into(), data: vec![0; 98] })
+ .unwrap();
+ section_builder.add_to_advertisement();
+ }
+ assert_eq!(
+ adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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(AdvertisementType::Encrypted);
+
+ let mut section_builder = adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::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 section_body = Vec::new();
+ for de in extra_des {
+ section_body.extend_from_slice(de.de_header().serialize().as_slice());
+ de.write_de_contents(&mut section_body);
+ }
+
+ 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,
+ metadata_key,
+ &section_body,
+ );
+
+ let mut plaintext = metadata_key.as_slice().to_vec();
+ plaintext.extend_from_slice(section_body.as_slice());
+ 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: SectionEncoder>(
+ 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)
+ }
+}
+
+pub(crate) trait SectionBuilderExt {
+ fn into_section(self) -> EncodedSection;
+}
+
+impl<'a, I: SectionEncoder> SectionBuilderExt for SectionBuilder<'a, I> {
+ /// Convenience method for tests
+ fn into_section(self) -> EncodedSection {
+ Self::build_section(self.section.into_inner(), self.section_encoder, 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..0853df5
--- /dev/null
+++ b/nearby/presence/np_adv/src/extended/serialize/test_vectors.rs
@@ -0,0 +1,193 @@
+// 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::serialize::AdvertisementType;
+use crate::{
+ de_type::EncryptedIdentityDataElementType,
+ extended::serialize::{
+ section_tests::{DummyDataElement, SectionBuilderExt},
+ AdvBuilder, MicEncryptedSectionEncoder,
+ },
+};
+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(AdvertisementType::Encrypted);
+ assert_eq!(adv_header_byte, adv_builder.header_byte());
+
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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(AdvertisementType::Encrypted);
+
+ let section_salt = v1_salt::V1Salt::<CryptoProviderImpl>::from(rng.gen::<[u8; 16]>());
+ let mut section_builder = adv_builder
+ .section_builder(MicEncryptedSectionEncoder::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..8208a57
--- /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`](super::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>`](super::ToActionElement) 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>`](super::ToActionElement) 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..5112ed7
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/deserialize/mod.rs
@@ -0,0 +1,413 @@
+// 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 {
+ Err(AdvDeserializeError::MissingIdentity)
+ }
+}
+
+/// 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,
+ /// Missing identity DE
+ MissingIdentity,
+}
+
+/// 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..4cf6041
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/deserialize/tests.rs
@@ -0,0 +1,788 @@
+// 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, 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 adv_data = parse_raw_adv_contents::<CryptoProviderImpl>(&[]);
+ assert_eq!(AdvDeserializeError::MissingIdentity, adv_data.unwrap_err());
+}
+
+#[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::MissingIdentity,
+ 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 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..68fc8a6
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/serialize/mod.rs
@@ -0,0 +1,391 @@
+// 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, 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(())
+ }
+}
+
+/// 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..8972313
--- /dev/null
+++ b/nearby/presence/np_adv/src/legacy/serialize/tests.rs
@@ -0,0 +1,148 @@
+// 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 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..51a5046
--- /dev/null
+++ b/nearby/presence/np_adv/src/lib.rs
@@ -0,0 +1,637 @@
+// 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,
+ v1::{BorrowableIdentityResolutionMaterial, V1CryptoMaterial},
+ MatchedCredFromCred, MatchedCredential, V0Credential, V1Credential,
+ },
+ extended::deserialize::{
+ encrypted_section::*, 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 use strum;
+
+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: &'s [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: &'s [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,
+ };
+
+ for cred in cred_source.iter() {
+ let crypto_material = cred.crypto_material();
+ if let Some(plaintext) =
+ cipher_section.try_resolve_identity_and_decrypt::<_, P>(crypto_material)
+ {
+ let encryption_scheme = match cipher_section {
+ CiphertextSection::SignatureEncryptedIdentity(_) => V1EncryptionScheme::Signature,
+ CiphertextSection::MicEncryptedIdentity(_) => V1EncryptionScheme::Mic,
+ };
+ return Ok((plaintext, encryption_scheme));
+ }
+ }
+ Err(AdvDecryptionError::NoMatchingCredentials)
+}
+
+/// A ciphertext section which has not yet been
+/// resolved to an identity, but for which some
+/// `SectionIdentityResolutionContents` have been
+/// pre-computed for speedy identity-resolution.
+struct ResolvableCiphertextSection<'a> {
+ identity_resolution_contents: SectionIdentityResolutionContents,
+ ciphertext_section: CiphertextSection<'a>,
+}
+
+/// A collection of possibly-deserialized sections which are separated according
+/// to whether/not they're intermediate encrypted sections (of either type)
+/// or fully-deserialized, with a running count of the number of malformed sections.
+/// Each potentially-valid section is tagged with a 0-based index derived from the original
+/// section ordering as they appeared within the original advertisement to ensure
+/// that the fully-deserialized advertisement may be correctly reconstructed.
+struct SectionsInProcessing<'a, M: MatchedCredential<'a>> {
+ deserialized_sections: Vec<(usize, V1DeserializedSection<'a, M>)>,
+ encrypted_sections: Vec<(usize, ResolvableCiphertextSection<'a>)>,
+ malformed_sections_count: usize,
+}
+
+impl<'a, M: MatchedCredential<'a>> SectionsInProcessing<'a, M> {
+ /// Attempts to parse a V1 advertisement's contents after the version header
+ /// into a collection of not-yet-fully-deserialized sections which may
+ /// require credentials to be decrypted.
+ fn from_advertisement_contents<C: CryptoProvider>(
+ header: V1Header,
+ remaining: &'a [u8],
+ ) -> Result<Self, AdvDeserializationError> {
+ let int_sections =
+ parse_sections(header, remaining).map_err(|_| AdvDeserializationError::ParseError {
+ details_hazmat: AdvDeserializationErrorDetailsHazmat::AdvertisementDeserializeError,
+ })?;
+ let mut deserialized_sections = Vec::new();
+ let mut encrypted_sections = Vec::new();
+ // keep track of ordering for later sorting during `self.finished_with_decryption_attempts()`.
+ for (idx, s) in int_sections.into_iter().enumerate() {
+ match s {
+ IntermediateSection::Plaintext(p) => {
+ deserialized_sections.push((idx, V1DeserializedSection::Plaintext(p)))
+ }
+ IntermediateSection::Ciphertext(ciphertext_section) => {
+ let identity_resolution_contents =
+ ciphertext_section.contents().compute_identity_resolution_contents::<C>();
+ let resolvable_ciphertext_section = ResolvableCiphertextSection {
+ identity_resolution_contents,
+ ciphertext_section,
+ };
+ encrypted_sections.push((idx, resolvable_ciphertext_section));
+ }
+ }
+ }
+ Ok(Self { deserialized_sections, encrypted_sections, malformed_sections_count: 0 })
+ }
+
+ /// Returns true iff we have resolved all sections to identities.
+ fn resolved_all_identities(&self) -> bool {
+ self.encrypted_sections.is_empty()
+ }
+
+ /// Runs through all of the encrypted sections in processing, and attempts
+ /// to use the given credential to decrypt them. Suitable for situations
+ /// where iterating over credentials is relatively slow compared to
+ /// the cost of iterating over sections-in-memory.
+ fn try_decrypt_with_credential<C, P: CryptoProvider>(&mut self, cred: &'a C)
+ where
+ C: V1Credential<Matched<'a> = M> + 'a,
+ {
+ let crypto_material = cred.crypto_material();
+ let mut i = 0;
+ while i < self.encrypted_sections.len() {
+ let (section_idx, section): &(usize, ResolvableCiphertextSection) =
+ &self.encrypted_sections[i];
+ // Fast-path: Check for an identity match, ignore if there's no identity match.
+ let identity_resolution_contents = &section.identity_resolution_contents;
+ let identity_resolution_material = match &section.ciphertext_section {
+ CiphertextSection::MicEncryptedIdentity(_) => {
+ BorrowableIdentityResolutionMaterial::unsigned_from_crypto_material::<_, P>(
+ crypto_material,
+ )
+ }
+ CiphertextSection::SignatureEncryptedIdentity(_) => {
+ BorrowableIdentityResolutionMaterial::signed_from_crypto_material::<_, P>(
+ crypto_material,
+ )
+ }
+ };
+ match identity_resolution_contents
+ .try_match::<P>(identity_resolution_material.as_raw_resolution_material())
+ {
+ None => {
+ // Try again with another credential
+ i += 1;
+ continue;
+ }
+ Some(identity_match) => {
+ // The identity matched, so now we need to more closely scrutinize
+ // the provided ciphertext. Try to decrypt and parse the section.
+ let deserialization_result = match &section.ciphertext_section {
+ CiphertextSection::SignatureEncryptedIdentity(c) => c
+ .try_deserialize(
+ identity_match,
+ &crypto_material.signed_verification_material::<P>(),
+ )
+ .map_err(SectionDeserializeError::from),
+ CiphertextSection::MicEncryptedIdentity(c) => c
+ .try_deserialize(
+ identity_match,
+ &crypto_material.unsigned_verification_material::<P>(),
+ )
+ .map_err(SectionDeserializeError::from),
+ };
+ match deserialization_result {
+ Ok(s) => {
+ self.deserialized_sections.push((
+ *section_idx,
+ V1DeserializedSection::Decrypted(WithMatchedCredential::new(
+ cred.matched(),
+ s,
+ )),
+ ));
+ }
+ Err(e) => match e {
+ SectionDeserializeError::IncorrectCredential => {
+ // keep it around to try with another credential
+ i += 1;
+ continue;
+ }
+ SectionDeserializeError::ParseError => {
+ // the credential worked, but the section itself was bogus
+ self.malformed_sections_count += 1;
+ }
+ },
+ }
+ // By default, if we have an identity match, assume that decrypting the section worked,
+ // or that the section was somehow invalid.
+ // We don't care about maintaining order, so use O(1) remove
+ self.encrypted_sections.swap_remove(i);
+ // don't advance i -- it now points to a new element
+ }
+ }
+ }
+ }
+
+ /// Packages the current state of the deserialization process into a
+ /// `V1AdvContents` representing a fully-deserialized V1 advertisement.
+ ///
+ /// This method should only be called after all sections were either successfully
+ /// decrypted or have had all relevant credentials checked against
+ /// them without obtaining a successful identity-match and/or subsequent
+ /// cryptographic verification of the section contents.
+ fn finished_with_decryption_attempts(mut self) -> V1AdvContents<'a, M> {
+ // Invalid sections = malformed sections + number of encrypted sections
+ // which we could not manage to decrypt with any of our credentials
+ let invalid_sections_count = self.malformed_sections_count + self.encrypted_sections.len();
+
+ // Put the deserialized sections back into the original ordering for
+ // the returned `V1AdvContents`
+ self.deserialized_sections.sort_by_key(|(idx, _section)| *idx);
+ let ordered_sections = self.deserialized_sections.into_iter().map(|(_idx, s)| s).collect();
+ V1AdvContents::new(ordered_sections, invalid_sections_count)
+ }
+}
+
+/// 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: &'s [u8],
+ header: V1Header,
+) -> Result<V1AdvertisementContents<'s, C>, AdvDeserializationError>
+where
+ C: V1Credential,
+ S: CredentialSource<C>,
+ P: CryptoProvider,
+{
+ let mut sections_in_processing =
+ SectionsInProcessing::from_advertisement_contents::<P>(header, remaining)?;
+
+ // Hot loop
+ // We assume that iterating credentials is more expensive than iterating sections
+ for cred in cred_source.iter() {
+ sections_in_processing.try_decrypt_with_credential::<C, P>(cred);
+ if sections_in_processing.resolved_all_identities() {
+ // No need to consider the other credentials
+ break;
+ }
+ }
+ Ok(sections_in_processing.finished_with_decryption_attempts())
+}
+
+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, Copy)]
+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,
+ /// Must have an identity DE
+ MissingIdentity,
+}
+
+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,
+ }
+ }
+ AdvDeserializeError::MissingIdentity => AdvDeserializationError::ParseError {
+ details_hazmat: AdvDeserializationErrorDetailsHazmat::MissingIdentity,
+ },
+ }
+ }
+}
+
+/// 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 {
+ /// 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 {}
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..ddb7acf
--- /dev/null
+++ b/nearby/presence/np_adv/tests/examples_v1.rs
@@ -0,0 +1,182 @@
+// 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::{AdvertisementType, PublicSectionEncoder, SingleTypeDataElement};
+use np_adv::extended::NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT;
+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, SignedEncryptedSectionEncoder},
+ },
+ PlaintextIdentityMode, *,
+};
+use np_hkdf::v1_salt;
+
+#[test]
+fn v1_deser_plaintext() {
+ let mut adv_builder = AdvBuilder::new(AdvertisementType::Plaintext);
+ let mut section_builder = adv_builder.section_builder(PublicSectionEncoder::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(AdvertisementType::Encrypted);
+ let mut section_builder = adv_builder
+ .section_builder(SignedEncryptedSectionEncoder::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(AdvertisementType::Plaintext);
+ 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(AdvertisementType::Plaintext);
+ for _ in 0..NP_V1_ADV_MAX_PUBLIC_SECTION_COUNT {
+ let mut section_builder =
+ adv_builder.section_builder(PublicSectionEncoder::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..6f79c82
--- /dev/null
+++ b/nearby/presence/np_c_ffi/Cargo.lock
@@ -0,0 +1,1221 @@
+# 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 = "libc_alloc"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a090348b66d90d8507e30f0d2bd88e5a5c454bd1733fc6d617cbc3471bf69ea"
+
+[[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",
+ "libc_alloc",
+ "np_ffi_core",
+ "panic-abort",
+ "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 = "panic-abort"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e20e6499bbbc412f280b04a42346b356c6fa0753d5fd22b7bd752ff34c778ee"
+
+[[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..2dede26
--- /dev/null
+++ b/nearby/presence/np_c_ffi/Cargo.toml
@@ -0,0 +1,31 @@
+[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"
+libc_alloc = "1.0.4"
+panic-abort = "0.3.2"
+
+[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"]
+
+# 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 \ 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..836b467
--- /dev/null
+++ b/nearby/presence/np_c_ffi/src/lib.rs
@@ -0,0 +1,230 @@
+// 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
+// TODO: Remove usage of `lang_items` when ffi is no longer alloc
+#![allow(internal_features)]
+#![feature(lang_items)]
+#![cfg_attr(not(test), no_std)]
+#![allow(dead_code)]
+extern crate alloc;
+extern crate core;
+
+pub mod credentials;
+pub mod deserialize;
+
+#[global_allocator]
+static ALLOCATOR: libc_alloc::LibcAlloc = libc_alloc::LibcAlloc;
+
+extern crate panic_abort;
+
+#[lang = "eh_personality"]
+extern "C" fn eh_personality() {}
+
+/// 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.
+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..0a1c088
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/fuzz/CMakeLists.txt
@@ -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.
+
+cmake_minimum_required(VERSION 3.0)
+
+# libfuzzer needs clang
+SET(CMAKE_C_COMPILER "clang")
+SET(CMAKE_CXX_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/scripts/check-everything.sh b/nearby/presence/np_cpp_ffi/sample/CMakeLists.txt
index eda6d17..da33258 100755..100644
--- a/nearby/scripts/check-everything.sh
+++ b/nearby/presence/np_cpp_ffi/sample/CMakeLists.txt
@@ -1,5 +1,4 @@
-#!/bin/bash
-# Copyright 2022 Google LLC
+# 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.
@@ -13,9 +12,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-set -ex
-cd "$(dirname "$0")"/..
+add_executable(np_cpp_sample main.cpp)
-source ./scripts/build-script.sh
+target_link_libraries(np_cpp_sample nearby_protocol)
-check_everything
+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..22d1bb3
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/shared/shared_test_util.h
@@ -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.
+
+#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>({2, {0x00, 0x03}}));
+
+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
+ }}));
+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..115ad14
--- /dev/null
+++ b/nearby/presence/np_cpp_ffi/tests/deserialize_v1_tests.cc
@@ -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.
+
+#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, 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()));
+}
+
+/*
+ * Multiple sections are not supported in plaintext advertisements
+ * TODO Update the below test to use encrypted sections
+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);
+}
+*/ \ 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..5e945dd
--- /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: 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..99ba846
--- /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: 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/np_hkdf/resources/test/hkdf-test-vectors.json b/nearby/presence/np_hkdf/resources/test/hkdf-test-vectors.json
index 9e3ddb3..b4e283c 100644
--- a/nearby/presence/np_hkdf/resources/test/hkdf-test-vectors.json
+++ b/nearby/presence/np_hkdf/resources/test/hkdf-test-vectors.json
@@ -1,28002 +1,2802 @@
[
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "255DCD1771E6D81DED9BCF8C555F14CE",
- "derived_salt_first_section_no_de": "C196A908EFFB37E00129718334C0EC57",
- "derived_salt_first_section_third_de": "EF35B6297414CDB16412781E2CECC3CF",
- "section_salt": "65D09CF496AE43A6B1B10578F6B15A3C"
+ "derived_salt_first_section_first_de": "99D59E9A0A1761D40F4F28E1D56F4C25",
+ "derived_salt_first_section_no_de": "4D02FD0C02250E221A8C63A1A9865AE2",
+ "derived_salt_first_section_third_de": "8A72AE14A6EA06DAD91CC5970FBD005F",
+ "section_salt": "C561AB4667AA9D7E126E79F060BAD04F"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "C522D94203D5FFEAAB0885BD",
- "extended_signed_metadata_key_hmac_key": "180C8309414DEA7095CA0FA3B27FBC0AC467D8283532715926ACEBCBAA159444",
- "extended_signed_section_aes_key": "309C3EDD40E8E8EE709F436C98D7BE39",
- "extended_unsigned_metadata_key_hmac_key": "9B36B93B3D39126E981E8F29FDDB583680B203CDB0EF8864EB3F9731DCF1EA3B",
- "extended_unsigned_section_aes_key": "BDA36F7A35C38944FC6A469484EBAA59",
- "extended_unsigned_section_mic_hmac_key": "4E715521947F640895E299BC7C2DA764CA37EBBC688D9A482726F8CAA2EF0DFE",
- "key_seed": "C8DD6C064DD70BF66B93777882335A3F3D6B0DB7D2406971E142061EFD1513CD",
- "legacy_ldt_key": "9E6ECF42B78E8A6D4A0A28CBED9E5FFD76C98D0D4BF75A2DCF19B0149339120637690462A8B99D12ACEC4888A8191B1484F972DA4D7E7AF009E3E55FE3A35FAE",
- "legacy_metadata_iv": "4636BA3DB932F2BAFCDE27C5",
- "legacy_metadata_key_hmac_key": "DCE0D13232AE45688B4EEF3961ECF798A3F53D5489C2BF42E604B665C0083261"
+ "extended_metadata_nonce": "05B8575BCA2486B5A1DD5D7D",
+ "extended_signed_metadata_key_hmac_key": "072C62C8F3A83F2ED0EEDD3107249160FF2ABEEDBEBA4607EF517A60F6640C7C",
+ "extended_signed_section_aes_key": "4DF7DE7DECCF54059C259EC7529D8AF8",
+ "extended_unsigned_metadata_key_hmac_key": "DC9FC71D78B822B6763ED1058E77DFCEF41B5F9F4810330AE034F962700EE225",
+ "extended_unsigned_section_aes_key": "A4E14FCB637F18E3B908635B67F4695B",
+ "extended_unsigned_section_mic_hmac_key": "C456B4C30D6E8F33B2D4010D656E3321ACF572EE09C831A87177B04F0F692AEF",
+ "key_seed": "E78C9A018A4B81DD837D9C7E2995B265E3363AAE9E9F7A46D1E0ECC81689D004",
+ "legacy_ldt_key": "E584BE2B557549287AAF196A765A0BB7F26F81210FFBA9AFE314ED0A4912BC4098779896121E6F0DAFFB30A70F358854C984611C4C249D48D8793F35512CBCE7",
+ "legacy_metadata_key_hmac_key": "EF9805022265A8B11D56B8E9EB2A17307EFC258EA1B8CEF70380BE6A3A3B1F43",
+ "legacy_metadata_nonce": "2ED7B79A45C428DFB747460B"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "596D",
- "expanded_salt": "479EFFDF9F0871E50D8A84D92D59F059"
+ "adv_salt": "202A",
+ "expanded_salt": "BBB2F537324B844F10631A119EB7C1C0"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "B2B8EB87C08475A7C8AFF5E693B06E40",
- "legacy_metadata_key": "BCD1DE73F85421CFA654A8B5B146"
+ "expanded_key": "EFB7E58C4EF1CE656C9D2691CD46880E",
+ "legacy_metadata_key": "E36847D19B3DB1715E6542D66205"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AEEB2746EA655309DF4C762C2F2E7E9A",
- "derived_salt_first_section_no_de": "30C776A928FEBB1693D34459B25D2BDD",
- "derived_salt_first_section_third_de": "8AE68CEB994AB7444D596BA6F78051E4",
- "section_salt": "245E1AE482EDFB862275E3DF53EF3026"
+ "derived_salt_first_section_first_de": "3B9EB63E2B808E95384B37049EC52296",
+ "derived_salt_first_section_no_de": "DA32C8270314D33E521BD6D455CEBAED",
+ "derived_salt_first_section_third_de": "FED4AB32F733BBD3A1F6CC3568925182",
+ "section_salt": "E6F154A2B223214012758A37E5EEEF10"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "775EC65D4E7FD37DECA405C0",
- "extended_signed_metadata_key_hmac_key": "A2276E388B8ADC3DBEF5DD0CC3F4962B1016BAE9C0A980CA9049D9FAACFD11FB",
- "extended_signed_section_aes_key": "4D50B4097FD5AF1E0896B5FE4A418620",
- "extended_unsigned_metadata_key_hmac_key": "C712C90E257BD12ED3B60FCDA060DAE2735FD02695C07BC90ACE2CB639D6F9B0",
- "extended_unsigned_section_aes_key": "8A9BDAFD6E3E79EC9D47EF3B0EB921A4",
- "extended_unsigned_section_mic_hmac_key": "E94CB71A7284D1B9E2D2226B48BF35855C9C1F4DA770A2C3E4CD2ADA12FE3030",
- "key_seed": "858AD49298BE68EF429099EAD86AA3B62D96E1C2358D2181DC1C4D43DFB17F1F",
- "legacy_ldt_key": "9BBAC810FE170C1E2133A0DE9C1D6EB55A51DB727310791C591009A1ED422B8A94E3B5591B814EC8573EC7F1144F5ED84FDB71DCE782FD3CA0A7952E6F9A3E8F",
- "legacy_metadata_iv": "B21E320C1327CAC24DD2E53F",
- "legacy_metadata_key_hmac_key": "5A4102E91D627F48719C8ACAAF1E9F9571D8552BAB416FEE6A0A4885706C92E6"
+ "extended_metadata_nonce": "ABA8038F9AF71FC6C1DA0AA4",
+ "extended_signed_metadata_key_hmac_key": "D65DA42911CD5ED334C530F869DB03C6614CA35E6FA866D9E38E69C777ABB6DA",
+ "extended_signed_section_aes_key": "A017DA593FF63BDF6FE6F77ECFD2AB5E",
+ "extended_unsigned_metadata_key_hmac_key": "A38246B6BD7F50873ACB4C04E0EC64FC189F64055D297E0965D98EEE19173A10",
+ "extended_unsigned_section_aes_key": "6727FBCBDC7B6C29F3ED05346661ADD6",
+ "extended_unsigned_section_mic_hmac_key": "E5DC924147B60D7F39EAA86AD504DB3C37230DBF79EDAB9005150135443864BF",
+ "key_seed": "80FCB0995D122213A13491854547AE8DC1F9DA0FBCDC425EF8CAE2F1621B5123",
+ "legacy_ldt_key": "791FFF186FAB641481FA4F9CED1FA84BE86FD44118214C4D911C7FED6E72367DD7E7D516CA45EBA6F39140D735EAE911C9FD41FF64AA5A1D6FAB6945EF95ACC7",
+ "legacy_metadata_key_hmac_key": "FB0D2011320B53ADC656F21ADAC39599A84660CC06E01E6BF71FA3A13EC7017F",
+ "legacy_metadata_nonce": "65E4371B55813FF7B1EF282B"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "D52D",
- "expanded_salt": "C3ABD68B191E6AC8C26D9418BACA8EB8"
+ "adv_salt": "8527",
+ "expanded_salt": "41DF3C96FD61381D21C6B33C4ABF109B"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "F6F58A94A751588F9B0F64F21ABDDA89",
- "legacy_metadata_key": "876D4790AEF0714634D404DD474E"
+ "expanded_key": "D3CFD17D054FAEBD7E7FC121915090B3",
+ "legacy_metadata_key": "788B30E87219D982203B007557BE"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "49752429F30AAE9EAB1DA0A80672B6E5",
- "derived_salt_first_section_no_de": "07EA37C95B7826A63A9CE43A0871A38B",
- "derived_salt_first_section_third_de": "C4384D9C45C57574546EE77CABA6FC46",
- "section_salt": "B1AC51CABB490C777E058EC9B4AEE204"
+ "derived_salt_first_section_first_de": "29F63E30C4CA477654EA633EF851EF2C",
+ "derived_salt_first_section_no_de": "9F1DA62A3038226B6E1A0B7BA3AE6735",
+ "derived_salt_first_section_third_de": "078A761182B0E4C9FAB615B1B5BD76F3",
+ "section_salt": "3EFE885D2597608370E56E69A0EBBE08"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "CCA9F4C407A6A5D178B7F360",
- "extended_signed_metadata_key_hmac_key": "C14604780D6F24B49053DE2DACC761714431FF2239521E3F547E10294218A2F4",
- "extended_signed_section_aes_key": "EA4C7B80A763651A45DDEE39F98ABB7A",
- "extended_unsigned_metadata_key_hmac_key": "C34FF416C9C199C2162CDA474EBB3EA04D252159B7B32FA41AD59283B48F60F7",
- "extended_unsigned_section_aes_key": "956128F451C2C4E829D8E12C1FCC751D",
- "extended_unsigned_section_mic_hmac_key": "DFECE7A1482BB67922153B295CA5570940F5CB7217B1CB36764E0284D48B2874",
- "key_seed": "ADA5E2A10ACB8C7FF96ABFF630862F44E52E337515BB67D7A70C97381AA1E0B0",
- "legacy_ldt_key": "DD6A74881973745BC5E44409402120E02EFBF3FE3B9E8A294F0FE0A34C3890C7BBA87CA643BAD232FAACA2719B3DA44C0AFA6423B197FC9CD9716420C2ADF643",
- "legacy_metadata_iv": "958F240556B70F10D7A24057",
- "legacy_metadata_key_hmac_key": "0ADD9EFD25420694A62B6002B98FEBEC18606605C5AB57F7F1F34870D52CA2FF"
+ "extended_metadata_nonce": "3F20992295F10AD806832D05",
+ "extended_signed_metadata_key_hmac_key": "74273A7D5F63F7E8F319716489804EF7B0693EE94831B24B94DEC7916B3A7E75",
+ "extended_signed_section_aes_key": "95C76B3AB159ECC6AA7AF3806E065EC7",
+ "extended_unsigned_metadata_key_hmac_key": "91ACB7139211ABCEEFD27C3371D8E8E3DA4AA1EF62DE05331A6A97671E4C1E13",
+ "extended_unsigned_section_aes_key": "A6A6E1AB38E8D1E1734D8E6F2ED72F55",
+ "extended_unsigned_section_mic_hmac_key": "81DF7CFC39442A2A065D795A1B836FE11A1E9EDA04DDF5C206A6C5E35DB37442",
+ "key_seed": "49F89927FDFEE5496504B4A130919BA8967C66E28BEAD4525DFEFCC704A18423",
+ "legacy_ldt_key": "C298669D7FFAE75E0DF93574FBCB1FF2ED135A0211256FCD6942981B832FBE35AD444D1678697DAF07F5D8A9E117CC86C3E57BB6BDB8689DF9CF969F097E68BA",
+ "legacy_metadata_key_hmac_key": "AF3EBA58151897927BE02FD78E68AAF90675CD8D556800B736752426ECD48764",
+ "legacy_metadata_nonce": "BED3836FD96FD34EB7FC9983"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "AF43",
- "expanded_salt": "B6496C723F8E4587BD939B60FD2AF37A"
+ "adv_salt": "BE30",
+ "expanded_salt": "66BC953964F357EE08DD1C7668A79D6A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E9CBC120DEC1DBB46028D7FE139B9EF4",
- "legacy_metadata_key": "C008FFDC576435448A56B813E36D"
+ "expanded_key": "8C16CCF3C80E07746B1F8471932A1FE5",
+ "legacy_metadata_key": "74135EB8B0F379AAA4D4478ADE7F"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EF595264AF20F76D7087DB220EE9E55B",
- "derived_salt_first_section_no_de": "664DF29A5F2C1541D2B0A07C18F01AB5",
- "derived_salt_first_section_third_de": "0906D4D56717AA5F2F760BD091C061BB",
- "section_salt": "2A04D5FD6990B389EC6501C1A46DCC6D"
+ "derived_salt_first_section_first_de": "82AD47824247F00924ECF0A43621BC57",
+ "derived_salt_first_section_no_de": "C737B65B994BF8CD872CA41BDB8A53A7",
+ "derived_salt_first_section_third_de": "9BB8BB55E1DE5129A43AC0EA937B4430",
+ "section_salt": "72C9E759C172DA23B71FB6B0C6ED8CC7"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "4F567470EB6FE3DA6670D0AD",
- "extended_signed_metadata_key_hmac_key": "2B7BD43E1B9111D47E0405973CF95E6668625002ABDB4506C6F53A57CC617820",
- "extended_signed_section_aes_key": "7E78652526FEDCAED682045AFDA53B3B",
- "extended_unsigned_metadata_key_hmac_key": "BF5B3178E3F8123EE5F28D1CF01551281BDDDD6A60C482AE8F24DFA3D93BD225",
- "extended_unsigned_section_aes_key": "3B9AEEF29BDE36F1E7A74601CDEFD1C4",
- "extended_unsigned_section_mic_hmac_key": "33DD0FA68E2948F34F21DF426D9A4690F1631E701E2B893512008927E29693B9",
- "key_seed": "76B501D26504B696628E23E505C1A79AA25C9D115FFD5DB66D1E4C6533D40486",
- "legacy_ldt_key": "813E18BBEF57AF8B58F2D5B5EA87428E36F43DA27A43D1EC78DBC8277347C6D228BB66E9B03BF1F33F02CC8EBD73996E75E9FDD9DE2DF266DFE65A5F8A54D7FA",
- "legacy_metadata_iv": "7DF919A60C51A49A24AD21FC",
- "legacy_metadata_key_hmac_key": "381F9600CA2B59993C8AF502D8CBD57DFA2C91016B1A279B7F27AC504A51A1D1"
+ "extended_metadata_nonce": "80921E0D404179D9F04DC155",
+ "extended_signed_metadata_key_hmac_key": "B9B1F73D7FCFD25EB6A62B788032C71104926922C436A137B95A46D7B63C5EE6",
+ "extended_signed_section_aes_key": "85C1D9D14D09C0722DCFF12643CF2669",
+ "extended_unsigned_metadata_key_hmac_key": "F89C26264B27E1A265C60D69A20AE73222CE9E2F68E0F1D71C6DEF936C4092D0",
+ "extended_unsigned_section_aes_key": "43639BFCEBDF4EE61629156E04F92EA0",
+ "extended_unsigned_section_mic_hmac_key": "AF81B5A56EC2D2541E46AB2F9F583A48155A2F9BB272372E8064E446BE8A182A",
+ "key_seed": "286E2029CF579A26495BE93926BC663732C46DE57049C1A5E2BEBFE03A12A096",
+ "legacy_ldt_key": "ED36084F2492B19D07D5A09D174C16A01B8AFEAF27C86EC145CEAD08C8BE67A80BCFF79C40F7E63019B81821A715DFEFCA273F467A176C61D7A024BC245A6B8E",
+ "legacy_metadata_key_hmac_key": "2A48789FF8B93282B4D483566E9FF4DFB65AF5FBB869BAEF6C408465A310879D",
+ "legacy_metadata_nonce": "6803BD4BD4D435930449C17E"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "DDA7",
- "expanded_salt": "B8261F061BB2CC6BBF91B622FB135A11"
+ "adv_salt": "3353",
+ "expanded_salt": "C86C20A42866236AB1CD9F1E815DDFD5"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "0E84EE72FC612CBF19A85E89BDC45957",
- "legacy_metadata_key": "80B50C30A496B58F08BC447776A9"
+ "expanded_key": "95E24D5EA5EBA3152427BF48A3781BDC",
+ "legacy_metadata_key": "4FE2300F2CA3C469959DC0A5510D"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "27B1E2423A52D84A7813F056E4C83557",
- "derived_salt_first_section_no_de": "918F115CA9832C1EBB48DBCDF7162382",
- "derived_salt_first_section_third_de": "5E8A0DBE83507F713BFCE756336F5800",
- "section_salt": "DA524788DD09B86FE63C546D589230D4"
+ "derived_salt_first_section_first_de": "98C14D785DD885F3D039C8F84EB65B81",
+ "derived_salt_first_section_no_de": "94C66E08758D83DCE457073C6B911483",
+ "derived_salt_first_section_third_de": "1BAED8E606422F18BC5CCD3F649BAEE6",
+ "section_salt": "9D82CCB568AEFB50C4D1061D29220A63"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "87E92A3B4801D4138F4C247A",
- "extended_signed_metadata_key_hmac_key": "701476284A255B325A743FD3A03A96D2A66EC2EEEEB9C81063700A3B1438D0B0",
- "extended_signed_section_aes_key": "2803F59CD69FBE299DCAB9A0CEDD5C28",
- "extended_unsigned_metadata_key_hmac_key": "0B68D3F6F67E841AF3A3FDEEC413053D03A49E1E0895C5BFCAB2AB014FC34057",
- "extended_unsigned_section_aes_key": "94CE01E5B51697E90CC740BBB58ADD25",
- "extended_unsigned_section_mic_hmac_key": "265B4B6593981F784A7FCFA6295C437BAB26AC55EF7DF3812F14533ADE853894",
- "key_seed": "E869E36FEA039EDD77EC724CA6C474A5C2D508332ED6AEF53337B6AD9CA928F6",
- "legacy_ldt_key": "6DBD8F3821C72DF32CA345B16AD3E037E75D5D125355EA9A3086FB5CE8144D26AFD6C787B5016C3EEA3052E788546F2BF664F869AFF6710D2B6AD1B793FB635B",
- "legacy_metadata_iv": "7F946E4C0ED0849CFED89EDA",
- "legacy_metadata_key_hmac_key": "B53D96DECC728E932CB41FD14977980FFD14CD5964ADB30557FCBE98BD006D0A"
+ "extended_metadata_nonce": "05B2831B07DF537F173ED291",
+ "extended_signed_metadata_key_hmac_key": "D120FC54257B1EA765E2D210C6F77D5066404601BBAC598725BDE993CCA9D90B",
+ "extended_signed_section_aes_key": "52605A8345524539B05A4DD5DD7A51EC",
+ "extended_unsigned_metadata_key_hmac_key": "ED44D698082772261DB4F47F37999E5474523A75A5F046A671B9138086A31B7A",
+ "extended_unsigned_section_aes_key": "8A0EC8AE2F2177300A418614507F0F27",
+ "extended_unsigned_section_mic_hmac_key": "E7456EDF9F5B5F614FDF8C88BF45B897307E2A48405FE3DC0F4B6966E9693C04",
+ "key_seed": "4F1E079363BF2CF5C475F0D927C36B81FBEC8B4F323A0417184414914AC95ADB",
+ "legacy_ldt_key": "BCB0EFC03494AD2260CE8925A140E58FA12FF5C6D59B467D6C4C6F616D0DEE6212DF667F5144F29E6DB4F04443EC2143A429F49189D4B96B077469D12FB609B7",
+ "legacy_metadata_key_hmac_key": "E43D59616850DA473A9820F0F4215FB23E0BCBFF91360EC9A8DCB2166DD360FF",
+ "legacy_metadata_nonce": "EDE3166B65C4FFCE477B0344"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "3AB8",
- "expanded_salt": "D55E4BDB85CDE43177C96D2AE9C0D0F5"
+ "adv_salt": "D3B5",
+ "expanded_salt": "75DF7B4DAE71EAA2531A2A66BD67CC34"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "5DD39B5E4E77874BE010AE15BFBD6C83",
- "legacy_metadata_key": "889AEFB63168BF9C46E772516F35"
+ "expanded_key": "24921B2F2ADDC07DE0E4818DF0FA218D",
+ "legacy_metadata_key": "F36505BC7D272E0A61E6F825CBCD"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E1BB4FFD5B7CD50EA21B134620CF5B2B",
- "derived_salt_first_section_no_de": "845CC19B663FD3DC7ADD384CA5327A4B",
- "derived_salt_first_section_third_de": "E51B9DCAB596966261DF9F9C2B9D4AD2",
- "section_salt": "6E740B52FDA44AFD5994EEFAD8D2B9F6"
+ "derived_salt_first_section_first_de": "A188BBEE6CBAB5C972EE985C21ABF21E",
+ "derived_salt_first_section_no_de": "5170EA5075FD2D3346430FE8781E352C",
+ "derived_salt_first_section_third_de": "A7280620B2E6907C765DB1B005C56485",
+ "section_salt": "C362D9DEEAB32835AADB2713E86AA3BE"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "FDCA888FA57E0FF9BC0D7D95",
- "extended_signed_metadata_key_hmac_key": "1D7A7306F60DE7E53271640409E424B0699691D3931058726138F15CD1ADD0DA",
- "extended_signed_section_aes_key": "A916D64197AAD6078A975D801ED66577",
- "extended_unsigned_metadata_key_hmac_key": "3E2083FA541797CC44F9C196953EE936160AD16ECA62A9520479CF836D25EADE",
- "extended_unsigned_section_aes_key": "7ECF8C7EE144F5FE9575121D4B0A9E34",
- "extended_unsigned_section_mic_hmac_key": "6812DD2E9BD02DD498F0D100D434C8C9F2032946EC33AF0B2AD92C3054549036",
- "key_seed": "1196048671F2236EC025C8C533A0A155AA5DA04863E3632D35E5E47928997DEA",
- "legacy_ldt_key": "FE30D53326F717B93D977A147EB8996338C3AC2971FF4D4C89E668EC5380DDA23D9E8AC6181D4E870DC82E1BFFCD3F33323E94009906D5E22D488375354F31D5",
- "legacy_metadata_iv": "CFE2A2AA5A3300DAA80A2695",
- "legacy_metadata_key_hmac_key": "788C48CDABE90343F300E82D9A3DB7A89424B2C68FE6084A7F378ED9227EAE6B"
+ "extended_metadata_nonce": "BD6393FDA5A002CF968AD7F9",
+ "extended_signed_metadata_key_hmac_key": "6CAFF8DE3681C4445926AF1CB615B8A7EA39687BD24597384002F0EF1BFE7FC2",
+ "extended_signed_section_aes_key": "03A107EEEDE319EC3C14B287533F26F9",
+ "extended_unsigned_metadata_key_hmac_key": "48107D08007213F545238626291ADF3963F71D64A7E42D859B77F5B5FED3DEDB",
+ "extended_unsigned_section_aes_key": "918832BE7D5E3E5DCB8D6FFCFC53324C",
+ "extended_unsigned_section_mic_hmac_key": "A0E2D0EE71984DD82D3AC1BDDD030913D4BC9BD276E71E2BEDB57290B0AD652B",
+ "key_seed": "7B1FB28E5884B2B7DEEDC2620A87E729C1AA5E3810C56F59FAAE375BA22750D8",
+ "legacy_ldt_key": "00A9B6FD99AF13743AA3B6E31381E4321EF15F21D4DF1D8B904307896ABB7ACE185526619BDE388E462847F178F32439245D8A4AD45AA26759DAFB751B6BB544",
+ "legacy_metadata_key_hmac_key": "27F5E15D51C393501B5C9AC3254A8FADDE756110C8E8A952DE2FD58AB3EFD16A",
+ "legacy_metadata_nonce": "DEC66637548279AB556A1219"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "9F6F",
- "expanded_salt": "C84565E7B093766ED89DCE50A67F269D"
+ "adv_salt": "781C",
+ "expanded_salt": "28C257CC0BDEFCDC63D28B14D38A5E9B"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "AFCB25D5A4FF0F6C5514A3D7CB70BEBE",
- "legacy_metadata_key": "701F981110C06419C76BB7F3A87C"
+ "expanded_key": "DD89372C6BC8038EF866314AE0015DBB",
+ "legacy_metadata_key": "D0D0C08326310877A07002234539"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5625D972CB59C4632296829E9DE5574C",
- "derived_salt_first_section_no_de": "CFBA7AA0B4F0660AB3E26110CEBB248D",
- "derived_salt_first_section_third_de": "D346C88EA3FCFD580D9CDDA524498F08",
- "section_salt": "4EA2341C2196501C4451018B0E663733"
+ "derived_salt_first_section_first_de": "425882E16247B61965C2CB122571CFCF",
+ "derived_salt_first_section_no_de": "0C8429B057889FF103029651B0178DB1",
+ "derived_salt_first_section_third_de": "61F70C6EA361790E715295EB500A9DF6",
+ "section_salt": "2BE5976B6054DC8EC9B517B03FA25754"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "78DCBF648DAEF355302F1EB2",
- "extended_signed_metadata_key_hmac_key": "0BD0C8A84F341F1BFBB8F3928008D4251E20B294E23B6DA3F354954B374E6534",
- "extended_signed_section_aes_key": "465DFA7877017B3521C40978F46ECFF7",
- "extended_unsigned_metadata_key_hmac_key": "06DBD2F3921CEE544E5F8564629F32DA4B900E8B2C05DA1D454D6748E33CBA2F",
- "extended_unsigned_section_aes_key": "10E9ADCCC2F8EF7566FDEB75024458FF",
- "extended_unsigned_section_mic_hmac_key": "581058144BFE846874F4F175FFA374B16BFE36CCD449D1BB403FCCAC34912166",
- "key_seed": "285E2C54EA6B81B4A9F3B70723F37C79ED30A7C6D3FAD915528AE108EECD3E20",
- "legacy_ldt_key": "BE1B3ADA4076CC968461A50FB331799F4D99BD2636A3090923DC083719C23B9D902DFEEBA0B260B19570E01106CF7CA65BD9C3EC7DEA33EC52022DE70CD2F047",
- "legacy_metadata_iv": "4C6BFE3BC09265A62D4025C3",
- "legacy_metadata_key_hmac_key": "82F98B6E84EAD2730CCB00F9D78AE071197FA635CB1633D61A882951AB5F017F"
+ "extended_metadata_nonce": "22E652B9D05090C3CD17A386",
+ "extended_signed_metadata_key_hmac_key": "B1F52377B751B3CD5456DF79607FF00F47388F2063BE559A151B7B9985030D9A",
+ "extended_signed_section_aes_key": "6C6A2C0C4FB7B10E71D4B9C90DCF97D4",
+ "extended_unsigned_metadata_key_hmac_key": "AE15A2095E41AFC7E33ED5A4F1210E36BC8B08761DCA1A50C8AAAF4D18804096",
+ "extended_unsigned_section_aes_key": "FF93EDCD2458BD330CB8F6461CB5F3FE",
+ "extended_unsigned_section_mic_hmac_key": "2ED5F7C30A3EBF854A6EC62863D9C22CA14BB8B3EE34C2E4CA48AA1972E6D74D",
+ "key_seed": "674EAC48402573CBF8D9C71F862F2F773330F1C8777B86D6C1C054DCBDD7F5BF",
+ "legacy_ldt_key": "C98FED8E0671B3B73E31019FACA33127F2EAE11BBC8D6D503E7C4C36DCDF42F8711EAFAD6E64AE2EDB6D2870203B64EF74388AA0FDFDEC9372AE06E4B14639BD",
+ "legacy_metadata_key_hmac_key": "C39A23027BA99068BB113712449125BE8B4E891C92B9B822EF14FEEFF64D01F3",
+ "legacy_metadata_nonce": "03759271308F135FCD00566D"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "DCFF",
- "expanded_salt": "F9D3C89AB53257E1B365E331D40DD830"
+ "adv_salt": "F14E",
+ "expanded_salt": "1F35B6CAACCB4DABC88F014F186FD58A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "62121FD6A502BC76CCC7B29DBE913587",
- "legacy_metadata_key": "17CDD9822CDE244E664788588728"
+ "expanded_key": "4DBA128B48257E51906815A44EBB31C8",
+ "legacy_metadata_key": "1BCB5E77E87246FB145B53599415"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3B17DFD6379C029361688A68E7F3A387",
- "derived_salt_first_section_no_de": "9E841AD1ABD9FFE35A2A8598793B2246",
- "derived_salt_first_section_third_de": "6F59261CAE19F3404B64D466DCE7853B",
- "section_salt": "3F01F9FCB8D1D2F5A5E693698CDA0186"
+ "derived_salt_first_section_first_de": "C210EEC7E5F37ED5DD585CA78E4F461C",
+ "derived_salt_first_section_no_de": "512F88EC4D2C1D98155A79C50766881E",
+ "derived_salt_first_section_third_de": "5C51EAFD14CCB470D455818FC233951D",
+ "section_salt": "1F6F7DCED1EAB1B9AC53C24BF29D9E74"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "85ACB3F2F2C7020BC1F08AFC",
- "extended_signed_metadata_key_hmac_key": "072A10ECC5A1A70E10F02811CE339D28066D7941BB39FA358D20117DC90D2D87",
- "extended_signed_section_aes_key": "F9DB66D3B30AEAFDE9480A5C36DE1C81",
- "extended_unsigned_metadata_key_hmac_key": "A9E7F7A89041BE1B69BC90DA246765238D1D3C6D9E86BC4ABAFEEE6601152BD9",
- "extended_unsigned_section_aes_key": "52CD894DD57CB668D0D3FAA77886E824",
- "extended_unsigned_section_mic_hmac_key": "C87C616BD3C4BB731C463D5B8C7717DE9B8F4489B9E6CEB93A9F9E2DDEF5F3BF",
- "key_seed": "344637B0780FD9AA316B89CC81C19D8EB094BAC01889AE883A19B81D432E392F",
- "legacy_ldt_key": "3A26D849A55B39EC5961C316DDDF0E25B1EE7DFCE69629C59E6E92E56D2207040C601C7DA0458D6F9EF999B07174100296F7787999BE34DD4E2FCC0FD99024F9",
- "legacy_metadata_iv": "EE2E79E0CFB4E657E000240D",
- "legacy_metadata_key_hmac_key": "810A916DA94BE2E60638916654D5D9FCD675AE4DA2CA1FBB9DF8B09760CDD4DF"
+ "extended_metadata_nonce": "6EAE4DC82AB5941A1E09FEF9",
+ "extended_signed_metadata_key_hmac_key": "8646A00AC8922FCCC259807B3B9EAEC556701927DC03ACADCB1DE1517F2C6C3B",
+ "extended_signed_section_aes_key": "DA63146BE1A81A806C6DFADB9076E6C8",
+ "extended_unsigned_metadata_key_hmac_key": "2F437D2C9BD771D02A87C0E17CB053958F62DC13559413C871FC01B4E5FB496E",
+ "extended_unsigned_section_aes_key": "9366D940C998995D7846B28F0FCA05E1",
+ "extended_unsigned_section_mic_hmac_key": "092BC3A92351F4673A37BFEC4BC62F8FA042EE9E5ACF391B2668142015570658",
+ "key_seed": "6028F5FEE8F66DC80D4F1C4155D7DCF9495C4D98DD481AB2BC30C9FDF0672A2E",
+ "legacy_ldt_key": "AC718CAC29033FF1FF300BC44B99BFD97F5419AE42BD79837E19D52C115C01FE32F0B2AA678D756B088BDD276CF6402B729A69F2689FFF6A035B5C9B6363A49C",
+ "legacy_metadata_key_hmac_key": "B0A90F0DBC1ABA5AEE0F4A8CABD5764EBC83F3BD618656BDA509E594A91E4D52",
+ "legacy_metadata_nonce": "4788CA94F7A0AB258486D3F7"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "2E15",
- "expanded_salt": "D095266226ED6B091371A0A6B50C9E1A"
+ "adv_salt": "18BD",
+ "expanded_salt": "1702E72B0270FAB301ECFAE901FEB45F"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "A5517B99083925411D411CDFC1CC61E7",
- "legacy_metadata_key": "BE41C1DFDD4689A4FA953DFF6F2B"
+ "expanded_key": "ED1208D4B3435736B92075B4E2DFBA3D",
+ "legacy_metadata_key": "AF7F068F3FD3FEF1B9ECA66F33A0"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EB657BD0A46147EACDB076F870C39D54",
- "derived_salt_first_section_no_de": "67A5624EE3666CAB802210BD5313AC85",
- "derived_salt_first_section_third_de": "3BCABDB73153B9F8B17E305DC9C94314",
- "section_salt": "CD04E7440CBFF9B1606B4871663A9071"
+ "derived_salt_first_section_first_de": "B27EF32036E2AD671536F7CDFCF3D8D4",
+ "derived_salt_first_section_no_de": "3841B50190E59B72F7F47281ED980317",
+ "derived_salt_first_section_third_de": "1658D434AD2BD8190467E009476C1F7B",
+ "section_salt": "F9172022012C774D058C8383D2D4235F"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "2828BBB52C6EE73ECAACC111",
- "extended_signed_metadata_key_hmac_key": "A06DE0B26C62703000B2F4E15B2A0C131E7BD6ACABD2DA04F02884B12E8315EA",
- "extended_signed_section_aes_key": "D69D0259AC1B61988674288DCCAB10F6",
- "extended_unsigned_metadata_key_hmac_key": "3AA6CF8FBE11512EB10C8ED6ADF4B2F5638A33BDDC5A62BE8D6E195B0B64119F",
- "extended_unsigned_section_aes_key": "07A3574CE7F809DF4126715C294DDD00",
- "extended_unsigned_section_mic_hmac_key": "4611283DD063521BE8174F335C074C196C914EDCD18EF300F36B065FE213551B",
- "key_seed": "BA514AAC45E9C85192B7022558402FAA0D71BA16B61AFA19A1E844E52F3076C8",
- "legacy_ldt_key": "DD0345D34951A2E1A63022A3B6A25E2F362AE2C13502CD6D5D8BAB9C270538DE7FFF149D2886F940E547EDB7C55EACC50276E3607F83257C4DD82EF218E6DF75",
- "legacy_metadata_iv": "C286E2194D2AF59BAFCDEF73",
- "legacy_metadata_key_hmac_key": "D5FB271FFD50EB9A85E079C7793029834689871861503818403759CF21D273A0"
+ "extended_metadata_nonce": "F7BFDC47005FE9892DD1A940",
+ "extended_signed_metadata_key_hmac_key": "9864300E87DD5F34284AA47C00381B36C69813423B6BFCB14250715BAFF34259",
+ "extended_signed_section_aes_key": "93C04B6BA7CF6F4A9B27615C900086B0",
+ "extended_unsigned_metadata_key_hmac_key": "4CF4F78468301DC365A2C27BF4D544CE525F3CACDB471868FFCFF896D896155C",
+ "extended_unsigned_section_aes_key": "908CC6D593CD9401D47CB850BF4812F9",
+ "extended_unsigned_section_mic_hmac_key": "68283A8DDFC70B5B523E8ADB8DD98C209DD458140E3ED6C61509D4259DA8D4BE",
+ "key_seed": "F04F58F4C6158F4E05EABEADADC3453F3A75FC3B6D331B45FD5589D0B16D5F1C",
+ "legacy_ldt_key": "AEC307B3A752EB1C5FDFC64843A93ABF5D2674A9505C736D131B1C84BB89A17D09CAC89BEFB1274B56262CAB56F04EB013A4475B518170C321AF4DFEB3F3CF27",
+ "legacy_metadata_key_hmac_key": "2C16FE1F32E5077BBB9C659C55BD9A77600FCA5D45FCE0430127514E513973A5",
+ "legacy_metadata_nonce": "628F79EC288BDD800A4ED6BF"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "1A52",
- "expanded_salt": "5FF67D98AEFE0745AB0CB5908528C214"
+ "adv_salt": "94A0",
+ "expanded_salt": "9201A2F2DAB3488533230CD580588267"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "FA173A522E0E19ABC954AB8EE9DC791F",
- "legacy_metadata_key": "09E5B01431E589A8128F676B5DE8"
+ "expanded_key": "735ACB0A5B5A47743F22EAAD1F64F8BB",
+ "legacy_metadata_key": "1DD0B9A032ADAB96501E851CD707"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C9D8892C626326EA015A555D441DAD20",
- "derived_salt_first_section_no_de": "F0434A386B74283B2428ADF0A30B8BFF",
- "derived_salt_first_section_third_de": "565CDC77DEEAAAFA89BBF4279F0B1685",
- "section_salt": "75B099677F55554347CE466B27C81A76"
+ "derived_salt_first_section_first_de": "64C97FC6CB9A499116614733309E473D",
+ "derived_salt_first_section_no_de": "3B2B9FCD5DEAEE859EFE8B7C2C8FF150",
+ "derived_salt_first_section_third_de": "38999F9FDE0BB4A02621675A265C0F53",
+ "section_salt": "E152E9CA82C846268793A13AC2CFEE01"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "4D34F768CE6437EDB31EB09B",
- "extended_signed_metadata_key_hmac_key": "F55426E3A229E2517E6A38F501C0C5189EF6603499EACFB7A83B12F7D59C2FEF",
- "extended_signed_section_aes_key": "9A8D42C17E005FAA64408497D4ACF4BF",
- "extended_unsigned_metadata_key_hmac_key": "9BCCA474FBC81F23C14AC2DAD6783EAE388EE67350A8BAEE3DDEEB3054462991",
- "extended_unsigned_section_aes_key": "5812C2D063DB8F9FECB3C0F958298357",
- "extended_unsigned_section_mic_hmac_key": "96D066B075E3425D7EDFC671DED4D291FFDD3A8498400BDCAEA385C1E11FBBA3",
- "key_seed": "F91A0A882E15D9B47730556779694296908BD2392C1F8CFAC624870EA3C5799B",
- "legacy_ldt_key": "D4827D6E7D0588A7CF4C46D8ECED796E8A7A94F7C9465326868533B4114081CEC0ECF783930D459FACC8A97D7E0048609B5B73F6F7C6E1B5E73405A06B8517FC",
- "legacy_metadata_iv": "27F1615861BC228DDFF37ABC",
- "legacy_metadata_key_hmac_key": "BEE775A85AF81F6F40A53861F265602AB77C5EBC1C6B6564D5CF87D90E7076E1"
+ "extended_metadata_nonce": "0FAE226D0C037417DF2CC8F1",
+ "extended_signed_metadata_key_hmac_key": "B03AF5D25B64EA34DEA4A04B30E234D0C45D0844AD3D76E9D4BDF72B9E1634EF",
+ "extended_signed_section_aes_key": "419A9B17073BB3A7DEA566D14B322675",
+ "extended_unsigned_metadata_key_hmac_key": "8CD58449D0AF3398E3649F977A8FBC55573464F4E25818E8ED94230A270E5B42",
+ "extended_unsigned_section_aes_key": "52CFA465829A0AF17FCD496C302E7094",
+ "extended_unsigned_section_mic_hmac_key": "B098BCE7ECBE5DC667C7DCD99B186B3294C442783741A2AF02973B9C1CEC3E7A",
+ "key_seed": "26005EBE2B54878D7D51E8AE0A133F601F845706CFFE22EF5406E848D743CDBD",
+ "legacy_ldt_key": "86F94EB0B3514972F54E4B072694BE295FACB1C9B1CFFEC97F7AEEE7E7A4B2EEF8D83CF3F46A1046553F0FBA739B512BEB70E8294AB3A8E9D354DC15904F8FE4",
+ "legacy_metadata_key_hmac_key": "6C5F27B8758F150413A0E723AD2C87A89FC8E0922D6AFC9C4BEE7D640564F20E",
+ "legacy_metadata_nonce": "C9E22F8D09D4F4593A61FE7C"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "7230",
- "expanded_salt": "67C59EB68CB5471A383C9B02908EB172"
+ "adv_salt": "35EE",
+ "expanded_salt": "6DD6FC15DC3871D1664A44C78A886FC4"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "CF39C15043233D12FE5D13F703F41C61",
- "legacy_metadata_key": "E7FD7AE8167FD3BC32F74945CEA8"
+ "expanded_key": "D1B46D2631F70EEDEB29AA47D4437686",
+ "legacy_metadata_key": "1416021C29E743088B02B41B571E"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8CB2EBB10E93EBF8612932ACA73E7192",
- "derived_salt_first_section_no_de": "0709E83E23A31962B48E06F96D90A56F",
- "derived_salt_first_section_third_de": "614B94336745C4A43DA65D7C0EC5B139",
- "section_salt": "911B8A531EDC0D06A3A4EC9AD08632A6"
+ "derived_salt_first_section_first_de": "9651CD6607E54363129153CA5315FB86",
+ "derived_salt_first_section_no_de": "0A54495999A555463622F3875F8B0589",
+ "derived_salt_first_section_third_de": "E47744FCFD5DC037621555A11E000988",
+ "section_salt": "5EECCF54ED89546D031A0103EDB17A2E"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "C910033DB95202ABB310CBE8",
- "extended_signed_metadata_key_hmac_key": "F8EFCAFDADB936D27C202E216F2CC9BFF1F1186DDB8CFEE8778A7DD71F6A12F1",
- "extended_signed_section_aes_key": "AE80DFB5242A8227AB4E415B9C9F88E4",
- "extended_unsigned_metadata_key_hmac_key": "DC855CB791FB64E630263CEB423B971CA4F6EB5004697D625D9B3309D1F1EDCE",
- "extended_unsigned_section_aes_key": "5C6AA10B04204FF35C2A75FDC24231E8",
- "extended_unsigned_section_mic_hmac_key": "1CC838D39E26AC3B1C378EB4B9454FC949D5251192BAA35BD9E360C272177C05",
- "key_seed": "2E7EC5A7A93A5FF8317BDDDE84CFA4D6B3B4C6E925F860AB0EF2233D339D455E",
- "legacy_ldt_key": "5CB03D7150FBF04AE5846FD9BCFD860D888BBDB16DDEB14742DC804572FA78DD989ACAC8E3BE5986088D16DCD0142D2769F7EBC0D6D731F4D17AC8D8B0C80524",
- "legacy_metadata_iv": "33FF18DE51D6038A88781488",
- "legacy_metadata_key_hmac_key": "6F832EDDE27575C492EDA8DC676E1019042B3B84785A947B54DC70295B4CA58A"
+ "extended_metadata_nonce": "57F6D756297E1693FB8A1D4A",
+ "extended_signed_metadata_key_hmac_key": "1A7B18552F2818F7B17106C0D32337D33F69903604CFA6807DA5DCF2746108E3",
+ "extended_signed_section_aes_key": "194961312A320FBF060414DB8650ED9A",
+ "extended_unsigned_metadata_key_hmac_key": "25B117B4EE587290C4F7CEC17115E104FF96E7EFED13033C1DD4705BAFF3694A",
+ "extended_unsigned_section_aes_key": "B5E64E57E00D022C4A1ED7F1841B5A1D",
+ "extended_unsigned_section_mic_hmac_key": "D499BB4DA43B7ECCB3499AC1B5B0E251AEC407EBCA917F0EB08838BD618476DD",
+ "key_seed": "D3457A18BF634AD2166223C38B4A1BD74C66DCCE809D410CAD1218F56EA363D4",
+ "legacy_ldt_key": "D32BB668B2AA256B27339F45F228672FD51BCD73C3C0C044E9A9E27E282D867BF2A7ABDE2300452BDBE49B79C3457F65F38186A59D9B88FD5164365212DAB6C6",
+ "legacy_metadata_key_hmac_key": "10A19D2EEA33F510D969E3A7036D1F288079A6D242EA2B1376DBEBB02F49C503",
+ "legacy_metadata_nonce": "CA9A9DBF70527FBBDD94E59D"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "47BF",
- "expanded_salt": "32D8CAF71A84D0E5F901C788321EEB04"
+ "adv_salt": "00CA",
+ "expanded_salt": "B2D541DDC7E007FD5D9B394E66C33319"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "963076F2BA2945CD56E4A94B0B69873A",
- "legacy_metadata_key": "5C415E7B40EE8CAA303D08ECEB99"
+ "expanded_key": "0A4F31037E77231B0B51C8A447E3E329",
+ "legacy_metadata_key": "03E5B8D922677CE5DC011BAFFBEF"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FFB59E8918359114AC64F26974CC68BA",
- "derived_salt_first_section_no_de": "FA00A9E5E5F677A2ED3344C2F2277C3E",
- "derived_salt_first_section_third_de": "2B2CF650274CE3EA63600F4D204A6EC4",
- "section_salt": "DA5851A9E3E279282C319BD07B42EC43"
+ "derived_salt_first_section_first_de": "9B1DCFE8149C1EBD905A5F2B71341C05",
+ "derived_salt_first_section_no_de": "BEF89573FEA45BEE4E9BF988824904F6",
+ "derived_salt_first_section_third_de": "41E32C74EDC315E7929DDA7FBC91CC8E",
+ "section_salt": "EBF3C70C17A01679A563A39FA46D7F0C"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5348590558FCD716C5B27275",
- "extended_signed_metadata_key_hmac_key": "056C565F3210F1343FD278C4C3097E82164A6D711061B5450974D9D6CBADD5C0",
- "extended_signed_section_aes_key": "98F78E7E45F547FB6B9F4EB2E0F03DFB",
- "extended_unsigned_metadata_key_hmac_key": "17BE233839751933670285AB3FBF1334A08923883EF9CF326F06DA6CE9FD4B7C",
- "extended_unsigned_section_aes_key": "E64160FBBB2B4620930CF68DB2FC744E",
- "extended_unsigned_section_mic_hmac_key": "F5CF7A3AB5196BCAD5FDF3AC540771BF4F01CD95D38A1B706CDA190A1C392028",
- "key_seed": "BEA4DFE3AB10401DDCDB8B54CB201EA015DB7859E8F1E9ED9C4490F098040577",
- "legacy_ldt_key": "653F3B36730BCFE011BFF9FE606B8B198F282A3B02DD05A050A3CD20693F0AA0F4E5191C7ECD6DFF70F4E907123D1B84E91C739BEBEBA728C46877968EB884B6",
- "legacy_metadata_iv": "8A3DFE3675D6C6524DA781C6",
- "legacy_metadata_key_hmac_key": "09A866855498B3FB15D94B4D5DE6F9CEF85C7599F1D7B9DF1A5EE06F424D21EE"
+ "extended_metadata_nonce": "605D86FAD007BC4EA0878430",
+ "extended_signed_metadata_key_hmac_key": "EBA52456957CA17961D098C55159D6D79C3451E5738468586D4187B15300ED2D",
+ "extended_signed_section_aes_key": "76FD6B925AA863C06D42FBEC0F29B98C",
+ "extended_unsigned_metadata_key_hmac_key": "C80E7E9DE0E1357E95AEBABEA46C14C4065D8FB1B4B4CF755413B3F5EBD930C7",
+ "extended_unsigned_section_aes_key": "AF6EB46E7DE399B15CBBB1F54BA7436A",
+ "extended_unsigned_section_mic_hmac_key": "0F3EB356450F0A6C99BCBA4D69899631CCB0E18D5CAAFBF844D61B741EA44E9C",
+ "key_seed": "3652F27504B90685287D9F9EFC800244A4F250F153B825F00389A5578D50F9D5",
+ "legacy_ldt_key": "656543A5C4CA235799BFA3EDEF3734AA57830F3EB0D4BC94BC42A9E4265D0DA8838B9E69414F07E0F933784DD054194E660F604F345EFBCD694C2F466499747F",
+ "legacy_metadata_key_hmac_key": "836A63241862CFE7B29FD00B05A9438D293E05E460C0E77C56804461803DCCDA",
+ "legacy_metadata_nonce": "E188B583B00F2910B16EF19F"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "4B06",
- "expanded_salt": "C17C736108137399E55C9A27CE005797"
+ "adv_salt": "E5D8",
+ "expanded_salt": "FBEED7B8E11129FBB42F282F988B1A81"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "3EE8A5C6B20B4593800B3C299C72B93A",
- "legacy_metadata_key": "F4919C7A2E2AEC4F1D3BD98337F6"
+ "expanded_key": "95124B323D4373E93FD74091B97406D6",
+ "legacy_metadata_key": "CE875009453430A68CDB21A04D5F"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A39B31D6BB5ED2B44F295CBAFC63F454",
- "derived_salt_first_section_no_de": "092A35F2673596C693A67C2D814395A1",
- "derived_salt_first_section_third_de": "D8330CC7F4CDDDE57E08C823E90C57E2",
- "section_salt": "A7C33027F3EF524151C5E2C74CF9A161"
+ "derived_salt_first_section_first_de": "A04BF6A2FF522EFB9682A288C93BB656",
+ "derived_salt_first_section_no_de": "57DC6F81CE5B7432540EB145659C56D1",
+ "derived_salt_first_section_third_de": "769504709A8FCC5EAC8927039CE9DA64",
+ "section_salt": "B10E4B3856910D59B98435355E69AB25"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "B7C471E062976CC6A0E8C4CA",
- "extended_signed_metadata_key_hmac_key": "C28A813908FE7B82B9B2CC2BF40D741ABFA6D44C153EA3FB5C109E4DE50C5AA9",
- "extended_signed_section_aes_key": "3A49CBEAB2E5896FE9994C7A66D60B6B",
- "extended_unsigned_metadata_key_hmac_key": "86FD85C9A9C008BB685055F9F5A714A89344D20DC4C0C4899C2512879063B2FD",
- "extended_unsigned_section_aes_key": "518FF47B9521BD36EC7D2F4BDDB7B263",
- "extended_unsigned_section_mic_hmac_key": "336418897DDE38C52CC38AD3946161E15CFD01EDB4216DCDE1EA6E9E0A17649E",
- "key_seed": "183355DAFF5433C1B814EBEBD85709F68B2CDEC7A138F4B75FF79B71CC2F97A7",
- "legacy_ldt_key": "A61FA87D24D0795F46F0BF2B33D1FF8B9FD19E1057BEAD67ECB999783A027B897EF1E1C75A2C8466D9EAE755609BCE03BE723906276E945A2FCB3C47E0DC0284",
- "legacy_metadata_iv": "6B25C05E2F9F3613BF2E7A2A",
- "legacy_metadata_key_hmac_key": "C54D30E1AF04C1CC2FF1E1F41A85EE6CBC32E9A732079514D5F0E19A2E4FDE14"
+ "extended_metadata_nonce": "C0FC2A8AD5C0AD828ACD91F5",
+ "extended_signed_metadata_key_hmac_key": "720F677655EB635563DE99FA07E045D7074C1E099401341E7A7A3C93B55BAD55",
+ "extended_signed_section_aes_key": "BDE744442E32EBA45FCC5C6340342AE9",
+ "extended_unsigned_metadata_key_hmac_key": "1B380539C060707E986587B52E0EFB9EBC7907F939467741D385A3A706137078",
+ "extended_unsigned_section_aes_key": "AD4E22885C75C1767DDD55943AA675C9",
+ "extended_unsigned_section_mic_hmac_key": "3D1170B39B5766B83A74425A1CECFDD73786EDBDC4943C1063D29609AA6281DF",
+ "key_seed": "E05713CE94A34C790D245E5340F0034B7FCE8C470639AACFB649E351C4517996",
+ "legacy_ldt_key": "B77B168EB6924B7DAF554027BF77FEC4C5B0D5FFD370AA0D8A2D6AC2BAB0C678DF858B7B28A143BB4AD12E7D9CAD3B51D939E23C0AE1289797078334530D8BAE",
+ "legacy_metadata_key_hmac_key": "B564B6695F774376499A95B28B11591EFBDD492948B9840B7207949154A46510",
+ "legacy_metadata_nonce": "4DDA74813EC3FDD85ECF79A6"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "2E81",
- "expanded_salt": "71DEBA78C476C5C8B8E3A2DA4505843E"
+ "adv_salt": "F388",
+ "expanded_salt": "8967E476B2B0068E17A1B71FCFCBDFF1"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "3E205B7FB16F51CFC09679BA2883A6FE",
- "legacy_metadata_key": "4C6CC5E14A9FC5E9D203DFA22992"
+ "expanded_key": "E36AFC309B6E668C2C3A0CE5FAC3DBD3",
+ "legacy_metadata_key": "8A97CFB9BF30ECCFA0EFD7E11022"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "64E90690DE176C76FD0887710BA64B9E",
- "derived_salt_first_section_no_de": "981F486BEBBD9D4109B6EE2F9C0022B4",
- "derived_salt_first_section_third_de": "688D5A1396A6D95CBE5477EE5D75E866",
- "section_salt": "DDC914F8D2702F7CCC00F12B238B604D"
+ "derived_salt_first_section_first_de": "D5B0B8A104592ED2AA6605FAD6E2B786",
+ "derived_salt_first_section_no_de": "546BD228DA5EC1C6706BBD0B6512260F",
+ "derived_salt_first_section_third_de": "D9093EABE9731CFE5CD5EDC03B3593B7",
+ "section_salt": "625AC46C5387C640952FD435DCE7BF8F"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "4AC7D2B8761FA6B119B5D977",
- "extended_signed_metadata_key_hmac_key": "780273F26AB30188E8487EBDC8E611D9CCFE0B7237F324D396FBDAD35E3918A5",
- "extended_signed_section_aes_key": "6BEF08B72C51B06240733AA297ADA8D9",
- "extended_unsigned_metadata_key_hmac_key": "221A15338F445D5D82881874635221A2A3FC72FBCBE7D7472534FA13658A733E",
- "extended_unsigned_section_aes_key": "18187C449121CD8E1ECDDF61384D68DF",
- "extended_unsigned_section_mic_hmac_key": "F26F6C51870E26D8472C26246BFAA169F9E65597DDCC389F67B93401CB755962",
- "key_seed": "BE98A573C5934A970699572CA2728D35564A0C247BB066FCBDAC26E2CB6AC204",
- "legacy_ldt_key": "5BFE8D7067E7B08FEF6BB404BB1C73EDD38560F179734889AE7B3E6B7F4D1903195E4C94E79D37E4FB3CA3E656BDF9852FE7DCD20F51FC4FFBBDEB3F7C048B2F",
- "legacy_metadata_iv": "F7F7558AA21CA402EB1607AF",
- "legacy_metadata_key_hmac_key": "84573C32BA14743A8B2615095180BB83A04DA402038B89F020CADE6624427EC4"
+ "extended_metadata_nonce": "256918D6714CA183AEA76E3A",
+ "extended_signed_metadata_key_hmac_key": "44E27B5CF5EB7F40E301D513BFCC0E7AD1D064268ECED1C93E08521C2DA9CDAB",
+ "extended_signed_section_aes_key": "C717E7186766C821588610DDA234BD1A",
+ "extended_unsigned_metadata_key_hmac_key": "5BBC3B99F800486E7D1ABF0998E8553CF827B4CB79D556CFC43954397909EFBA",
+ "extended_unsigned_section_aes_key": "49E46036FD7EEDF2E316C8E3A2C83E18",
+ "extended_unsigned_section_mic_hmac_key": "9EF8F3A9C044C579691C59EE221859361ED13B4C588E1576C019CBB83411A0C4",
+ "key_seed": "E2633861C773DE669266B36268FD535E3B04A5269F5BA3B58DD1B2B2800141AF",
+ "legacy_ldt_key": "B68B9BFB869949766927D96D8E11A8F7AE6B4D0CE4AD11FFEB56CCDE74B4329315EF8BDE16F5B89B6A05373EBDB09ED7272D20F51ABFABF50C901FF4A5B6D45B",
+ "legacy_metadata_key_hmac_key": "B20510C6C750BFE0991CA3CD6CA3A6D1132A09CD845BDC3C2E006CFA4243682C",
+ "legacy_metadata_nonce": "F82A5657110463EB4993D5EE"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "6493",
- "expanded_salt": "EE265D0913C01A20976B9B8BEA04C263"
+ "adv_salt": "98AA",
+ "expanded_salt": "13661848812A9F40B2C9550857E3ABF4"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "6ACC7C18FBD53782B06E617EC70764ED",
- "legacy_metadata_key": "B5E9F861C07830D523548F82F781"
+ "expanded_key": "521F75308E4F3ACBA82DA74134C46309",
+ "legacy_metadata_key": "4F767CCD14102B29ED949CE30218"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "68229C5BA2FEB22F21176E9831AA9457",
- "derived_salt_first_section_no_de": "177AC7943D9931D8E42B90BC44684C96",
- "derived_salt_first_section_third_de": "BB64BA17C6FAA92D99AACEE565C86720",
- "section_salt": "870650583BFE2467CC0BAA720F9E2A71"
+ "derived_salt_first_section_first_de": "DE24781BCD7E2BD9F39DBD8EDF8EE2E8",
+ "derived_salt_first_section_no_de": "647E6F36D4F8529748EC831811ECEE59",
+ "derived_salt_first_section_third_de": "A755924F3874F3E5661E8AA0F3F62173",
+ "section_salt": "5A6632D4602C01565447BD6939610E7D"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "6B75D873A00F732754B53A11",
- "extended_signed_metadata_key_hmac_key": "0968E7BDA76877AF6DD8146648F3DDBED7A71DED3DBE84CC5E2C94FEA8DFF6FF",
- "extended_signed_section_aes_key": "298C9D87EC9B9D7494D0DF849C54BDB5",
- "extended_unsigned_metadata_key_hmac_key": "C7B6D03346E5757F601155BA122B6A40128F5C5D9A324AFE6AD9A27F99FAA7B5",
- "extended_unsigned_section_aes_key": "B6E21AC326F8583DD4A083F22C0E6817",
- "extended_unsigned_section_mic_hmac_key": "03BE1EE08816F9C92C85CBDC1229999A6BE5B67FA30E663A84CBBFA99DB4D4B9",
- "key_seed": "E4C615EFD63E6BB5C82E5CD719A74EC5A5B9ABDBD668823078343AF6D028840E",
- "legacy_ldt_key": "645FCCFB1E18E046C4ECD001465E81C5A23942B72545E4A4454691F1B13AE3559F34FFE231188BA8A60445AEDD1C8B7E323C7441FE62F4C50DA986DEDA291680",
- "legacy_metadata_iv": "5B6C26B554D0CA461978A1C3",
- "legacy_metadata_key_hmac_key": "FD8CA2A8ED9B717AEAF3D4D45615CA0759E4B7B135D058DC8AFA664137AA8966"
+ "extended_metadata_nonce": "1280F2BF6B120289C45DC96B",
+ "extended_signed_metadata_key_hmac_key": "6D058C55D5B2CBB0B4BBBD51028C0B973F469A1B8E3DAC59D52A1886D088F125",
+ "extended_signed_section_aes_key": "37E713DAE40FD31E2F92C329CAAFEBF8",
+ "extended_unsigned_metadata_key_hmac_key": "1A20B4BFE3EB4EDADE909358ACEBF1C020E9539BA5140BC2EF986EBEEEAB45AE",
+ "extended_unsigned_section_aes_key": "3F872A127339C6C6C511AA00604C411D",
+ "extended_unsigned_section_mic_hmac_key": "A837546D57AB36B017645E740D6631016E14E5B16DBF71E058DEC61F5F8AF1A9",
+ "key_seed": "02FED3D1E3307A9FCE2B11203249FDC09CF979ACD85DF62359860EDCE2DC5507",
+ "legacy_ldt_key": "B4D501B6B7DD28A54A49E3F57F99C782285B30CD69203E5AF7F838CC4A0380DF6EC89D1D67113E4517C6EE916460017B655F5A4AC373AE8FD68410DF230BB138",
+ "legacy_metadata_key_hmac_key": "E1707BBBB1337ED59704AF606EA54550074F5B3D5C0310738C04128D634A8558",
+ "legacy_metadata_nonce": "4DB188779B676BC7B70F234B"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "2B72",
- "expanded_salt": "0DEB2CE43751D3DDAF6455168BA9E4BB"
+ "adv_salt": "3B69",
+ "expanded_salt": "A05E1016967C2E7DA79688AF74615B4F"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "4A12D47309B7A85C7B19B47F398D03CA",
- "legacy_metadata_key": "280F3B8CAB024935ACA1C72DA581"
+ "expanded_key": "FA9ABBC8316622DC2A9843BA0097E0DE",
+ "legacy_metadata_key": "AE83451CAC8181606BE17AC715C4"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BAFE98AEE54B99D7B9731B9242035C1F",
- "derived_salt_first_section_no_de": "9386192736159CE4AA576A6030EEE97F",
- "derived_salt_first_section_third_de": "2E5C49B6E43F49FDE1EB9B4301372BDB",
- "section_salt": "01BFD9768AC19831128C8122C9686D66"
+ "derived_salt_first_section_first_de": "40ECE473568BE946121A394FE60B8737",
+ "derived_salt_first_section_no_de": "7548394C226D05F10C9B557BD0359040",
+ "derived_salt_first_section_third_de": "2E8189954D8068F3CB284740CE552CCD",
+ "section_salt": "B3A517BB5CA6D1627B9A0255B31CFE31"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5F74633088E2B6094EACEA81",
- "extended_signed_metadata_key_hmac_key": "3E3AB4C290B39171A5DE29E7ED50260D4A1A29832E05BB21D117AFB0DA7B4FA8",
- "extended_signed_section_aes_key": "923E61EFE4663E3625F0558EF80F34E3",
- "extended_unsigned_metadata_key_hmac_key": "2AF3B369DC93C765D7395083FA495E2D4D9495EC0630D25968B923305C1E5F20",
- "extended_unsigned_section_aes_key": "6EDDD63E25618C154DE75468F2036B4B",
- "extended_unsigned_section_mic_hmac_key": "DCED82691DF5B6B88D50235D02BD8E8D2B841527292066A568B122A6C07C8031",
- "key_seed": "7831A90A4B874693B0BE6CB72218C0B259011E4B9BDF22198A8E3E8FF0BA44CA",
- "legacy_ldt_key": "37B5F01A9A1046BD698987F86CC81AB8395471AD3BD3A7FB64712579305C539C3602E4113CA16AB997E2A8C303779ABE4E91F93373003EC83833E63D95EFC7C1",
- "legacy_metadata_iv": "728D8FD0B6F91596FA567514",
- "legacy_metadata_key_hmac_key": "4661BAB832DA4BF5CD70BF578556E07279BAEDB795B44C530F83028D59E00356"
+ "extended_metadata_nonce": "CB9E33EEDAA33993FC4B5318",
+ "extended_signed_metadata_key_hmac_key": "08AD406C9CCDB3892CFF81B5FDABB9ED3B08A24FFE60FBA487A9DE2EAB871A26",
+ "extended_signed_section_aes_key": "973BF0F1F7B463EB9A97E1681BD1D3DF",
+ "extended_unsigned_metadata_key_hmac_key": "E1DABB2A2F8D3CB975196C9BF900491D463BBEE01E408B3E595E718EBD1AA2AE",
+ "extended_unsigned_section_aes_key": "CB15F4F517DBD310BCD5FEA2DFEBBF26",
+ "extended_unsigned_section_mic_hmac_key": "865316C4BD1F483DF2FB1F819AFD6798B26344E9CB7D5F33C0FE5AD5C8DBC1E0",
+ "key_seed": "4129B6D0A4B84BA1F7241CCC11F9C75EDCB74E50DAEDA9B94E7E5EAFD418921F",
+ "legacy_ldt_key": "A3322720422B4E51C75B1C66F3BD3DF06DE13496B38FBA0BEBC4CE11B12238F3C779A2136C2B616F5E680A9A708E5E2CCC3F8AE9F0047AEA0B1AEA088C823EC2",
+ "legacy_metadata_key_hmac_key": "43C5B9A88F6818DCEA6F93D49466F31BFFD5A4EBEC3C2ECF5A872BE86F5B99F6",
+ "legacy_metadata_nonce": "A3CAF797ABC475FB19F5B602"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "2562",
- "expanded_salt": "03D965DEAB97242826B4FF19C3BFC773"
+ "adv_salt": "AF5C",
+ "expanded_salt": "C7F68B27D565702CF382B680B8E7055F"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "5B7E8F40EE62D1D94A82CC7E36818C2A",
- "legacy_metadata_key": "EFB497510B524AAFA42FF37A3FE3"
+ "expanded_key": "1CC170AD6BC9799CB87FECFEB7FB593B",
+ "legacy_metadata_key": "4D860E0531136A82B22D80EED522"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "17AB991A67593024691AAD81904D2F6C",
- "derived_salt_first_section_no_de": "40204FE647A0AFD99F12853A9A1834F6",
- "derived_salt_first_section_third_de": "1BF1177C4362AD8FC1010C0B4A46A36F",
- "section_salt": "891488552A05536B7CE1D6B7EBC38BB7"
+ "derived_salt_first_section_first_de": "EB90E68FE9C38FF5A956B2DA2D44D399",
+ "derived_salt_first_section_no_de": "014EA160B58368629BA76FF16A844341",
+ "derived_salt_first_section_third_de": "9ABC5ED7EF8973C8FF865B6174CF18D8",
+ "section_salt": "04CDB186B08FB26AF67486FA439CA9AA"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "B60677BAB79BFA46CEDA1743",
- "extended_signed_metadata_key_hmac_key": "0282E477E44C921D161E60A252B3CA02AD695684E0FD7D51433099821DA5BF42",
- "extended_signed_section_aes_key": "74AAF3446C2C403A5E37D8884D177EEC",
- "extended_unsigned_metadata_key_hmac_key": "144AAF7688E8482540E3C63E31CD3E8AEA6DBFAD667474431BDB9876431DFA4D",
- "extended_unsigned_section_aes_key": "3BD4F3A78D325B962F684B215FBDE0CC",
- "extended_unsigned_section_mic_hmac_key": "E83ABCA72AA6AA366570733CCAF5799203AF55CE5B6F97342B117E65AC1BE287",
- "key_seed": "D015BA0B894A53A18D0355467C83C7D1CD3D23C0A439485C775DAFAA9BB71B18",
- "legacy_ldt_key": "E17BC586EFA98DF59C465654794FF35898E4556FA76A3F240A051EE8D8963E1CBD6CD160DA7AF0DAFF788657E37BF5AA9FCEFCED77161B45826351FF5AF0883E",
- "legacy_metadata_iv": "A6F62EEB6D6C38EB365D9911",
- "legacy_metadata_key_hmac_key": "12DCDC4D5CFD65313D44BABFA9B4A82DB13314718C426B80C32603AECB14663A"
+ "extended_metadata_nonce": "69EFD440262ABCAD6340712C",
+ "extended_signed_metadata_key_hmac_key": "ABE74AB6340DB962F20CC9D40EAD220DB2E644547F110AAE1AFA59E98ACA5073",
+ "extended_signed_section_aes_key": "C30E2EE7462A487197359E2B1E6B592F",
+ "extended_unsigned_metadata_key_hmac_key": "46BC94A1996B114BB3EDFF2EE8ECA2A897EEC62704CB2EDDFFD5B97330E770D4",
+ "extended_unsigned_section_aes_key": "F3ADC71F3D1948E5609C740FE8DC5DFD",
+ "extended_unsigned_section_mic_hmac_key": "45F4745792A7129CD8864CDFB715B7047356DF99F7A3ECDFA4F1191C2EEF39DA",
+ "key_seed": "8D228D34A11D8C6E89BEAD97C32CF1CDEB83128EDE806AB12AC1C315104A12C4",
+ "legacy_ldt_key": "58B087E71D5AFBE1B2C9D40770425BF2F950EC54A80BD266A8C3DC184F4FCE7F6799BC221FA5FE4025EA898632E2F3D3C8A983E9468B99AC033002779395CEB0",
+ "legacy_metadata_key_hmac_key": "79C5E3C3D6BBCB4FD9BE972683D273484578E592AB7808B1A2DBCB6A0AF0EB20",
+ "legacy_metadata_nonce": "22C6BF85F720FB130D698F43"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "9033",
- "expanded_salt": "3718042D9456E6A00ED23B8159FF8826"
+ "adv_salt": "AA36",
+ "expanded_salt": "1DCEFB9DA72BA3A4AEF988EA5C803E39"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "943B7030E83082AD6EB23BE3F628FABC",
- "legacy_metadata_key": "343C9CA2F76170028DC5209397E1"
+ "expanded_key": "60989D8A1EB13AE51250E2698F544BD0",
+ "legacy_metadata_key": "E9B69DC6D89A0FB49D43B34F5311"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F304DCE3A54866523B4902A3DC5A96D4",
- "derived_salt_first_section_no_de": "85D95909D49EA6B09DC5CEDB40AEC4F0",
- "derived_salt_first_section_third_de": "14162C8E0AD0DDF6F5F8C2AD78D3DEB6",
- "section_salt": "344F469A102CF4DDE9E7ECC7FA323E19"
+ "derived_salt_first_section_first_de": "64555F0FD7574CDB19BA389CDFBC543B",
+ "derived_salt_first_section_no_de": "3E0E5C26DD09AA19522AE9FF60E299B5",
+ "derived_salt_first_section_third_de": "2177B3044D79C03B816CD8E8433C5B3B",
+ "section_salt": "BFE9AF6A7740CD26E60E7C5A8AB281C0"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "3C9A87CEE1C3B4C1A49056A4",
- "extended_signed_metadata_key_hmac_key": "11E7412891CA8426F061C53DD051546F3DE1F603AA1903115BCBA89AC9A46CB7",
- "extended_signed_section_aes_key": "C3A899CE539E60B77D5FF70E537524A9",
- "extended_unsigned_metadata_key_hmac_key": "EB0C651BB6A50C3F9DCA0674AA87AE8880F1376B8219C09D681DF848012DB3DA",
- "extended_unsigned_section_aes_key": "6BB1CB979134CFA89708E577783A9624",
- "extended_unsigned_section_mic_hmac_key": "D25574F2177E9B1BAEEF2C80A4EC66E811F0164E44975B6B33CB2914A740BBF2",
- "key_seed": "4B1AD6D5B1BC8788229273D640A0658BDB74D0FC43CCEB2243438A618A448B6F",
- "legacy_ldt_key": "134CCCB5BEED8E4EAE41C1AB5D4C82A40513E5B903622410AA43DE01441D031051B0B4834118D7AEF15E799EB9093678EDF37D846C30F389877ABDB792C97EC4",
- "legacy_metadata_iv": "9067B23B5AF6BCCB4226E577",
- "legacy_metadata_key_hmac_key": "51EE9E159AA7C91E3F2C5EBD082856E92185E2B9487B16B47CA0FCE51C5DED09"
+ "extended_metadata_nonce": "8F2CC361A133B662D60E70B4",
+ "extended_signed_metadata_key_hmac_key": "14F28363041B1AC420116ADBE5E862E36C4F209C68D784AAF659003123931F20",
+ "extended_signed_section_aes_key": "F68813A0A51D3A7D6460C05109EF1730",
+ "extended_unsigned_metadata_key_hmac_key": "6AC0B8555E39508D3F72BA8984E530E59A42777BEB16A2A6CFC760345AB6AB13",
+ "extended_unsigned_section_aes_key": "F3DF15F42B2DCD3617C60847F88EC279",
+ "extended_unsigned_section_mic_hmac_key": "149F3635D7BB841DE87493388AF27E75F0D5C374DF9108C5865EB3F1B631AD1A",
+ "key_seed": "0D4D259D5D0E5D7C9B2A569A1C17D389E618B782D1BCE04F8484035492CE11C4",
+ "legacy_ldt_key": "E1628A30487D83BB90ED7B5643AE314CD9FD98C9679F37C25D922DFAA0FFA66999FDBEFC099EAC5250C6CBCBA2314085DBDEBC4341A2074226D3E92773B1946A",
+ "legacy_metadata_key_hmac_key": "9549B17906EDCEC2E747744703EF977F5236528197E55617F93755C860CBD0B5",
+ "legacy_metadata_nonce": "BAA28085EE97A8DF527A5594"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "E3BC",
- "expanded_salt": "5F0B45C0434D33B17031611DD6EF080F"
+ "adv_salt": "57EB",
+ "expanded_salt": "D275F5AB0B47DB46096D6A2ECDF58D52"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "A39EAD2B3BA5DA75FFBBB3E770BB28BA",
- "legacy_metadata_key": "0E408C68DBB342B83CF87606CBF3"
+ "expanded_key": "F3B453CA100ED3E10C91E12A7481F4CB",
+ "legacy_metadata_key": "859FCE97618BF2DB58D184DC53DE"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E229951037787F87D5D675F0DA331CBC",
- "derived_salt_first_section_no_de": "A4B9B781D887945BA92FEB76E8240FC4",
- "derived_salt_first_section_third_de": "F287B7E1F9DDCB385AB0873609FB753E",
- "section_salt": "5E811E71B15EEAA0B613F195FCB95030"
+ "derived_salt_first_section_first_de": "74F425482431EB42FF996BAC1A227F0F",
+ "derived_salt_first_section_no_de": "CAC0DBDE04AB7B70FBF8A40E18814286",
+ "derived_salt_first_section_third_de": "B751EC2415541106D79351A34AA5D2DC",
+ "section_salt": "4B0BF5D2EE37C72845CD0776F7AAA512"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "94E78B8E01CFAF0797996226",
- "extended_signed_metadata_key_hmac_key": "ABC1D84F1B19C8ABB7802718D988C12A2647E91C8B6015E60D5BFAC28D812595",
- "extended_signed_section_aes_key": "C0F7B6CDF41B35D220482FDBB23A5202",
- "extended_unsigned_metadata_key_hmac_key": "1EE32D07B673DDA63910F97F310A66ABFFDEAA94F789E966836C380D269E63FA",
- "extended_unsigned_section_aes_key": "5F3929146E23688288B68ACA993368C0",
- "extended_unsigned_section_mic_hmac_key": "12007D9343EB7937BD0F77B3A98EECC71DA6C2CC86A24C91E9DC2C7E4861A22E",
- "key_seed": "C43A4E0559937E9C15C3A34219C689EA9B466A380984E1386D462D085D0E6502",
- "legacy_ldt_key": "6F36BC667A0EB9EDF08EDB802E58C18067A25173E904F0B6CFDE8F7509713C6181A9FCA4BE7B74C0D0DD94D11E8F2E7D156292F12729B30754BC7DF68F332815",
- "legacy_metadata_iv": "29524B5501556F9E046AC3CE",
- "legacy_metadata_key_hmac_key": "AEB4947DC3642F26A4FF341FC9229C354DED3A968871A9D61C3D1839D8546CB7"
+ "extended_metadata_nonce": "183FB3B68B7A48FFF0C161AC",
+ "extended_signed_metadata_key_hmac_key": "50027ADA2FF20DD6132B1729D7CDDF3D6619EC2F0B676D68946B199C65EDF004",
+ "extended_signed_section_aes_key": "2C4916F70427AB1247D581CDEF656639",
+ "extended_unsigned_metadata_key_hmac_key": "211294989AB217BBC4794503C433B7B886612E2D9A8B824B0EDD590F2DEC8B7B",
+ "extended_unsigned_section_aes_key": "FEB3354D18E5ADA3E7684F96EDB719DB",
+ "extended_unsigned_section_mic_hmac_key": "144845A3ED634D768F0F4E4BCEED5E9F23D77A033D67FDBE6F1BA225FA0A71A1",
+ "key_seed": "2B4907289260929651D6339AE8157C6F509BF34AA7E2672B5C671837C62A0363",
+ "legacy_ldt_key": "2A1BDC158660033902E9EC6F47BCF81C99EF5AE759CB03352320324BEACAC4D62F816CA1A190BCC28A276838F565FA5F41E2A7BA8574FA77D61F2A83DCDF665B",
+ "legacy_metadata_key_hmac_key": "1266E50907BFA5ED5990F295F10B1562D4780775A3CC95F2F5D7DD9912644961",
+ "legacy_metadata_nonce": "27B1A368FC746D389CAB7604"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "4F63",
- "expanded_salt": "3AD4FA385A84003E50DADF8DE60A52B3"
+ "adv_salt": "2CF1",
+ "expanded_salt": "2D9360CAD492BF9B3F8BA5659FBFD479"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "4D9CAF3BCB076D0F6C9CD5FFE1284B62",
- "legacy_metadata_key": "F55F46D9207EF8BC9CACC178C623"
+ "expanded_key": "B04A6E310A7D824C2ECBAC27C078CF20",
+ "legacy_metadata_key": "2E262ABE8F4651CE3875F82BBF18"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6282FE551E15626E0873A8D85224F551",
- "derived_salt_first_section_no_de": "F2EC3F865A1EFD6C040AE31317B07776",
- "derived_salt_first_section_third_de": "86F9B2CC957BAADC8F0CA074722D6728",
- "section_salt": "3712E4ED118DF53D72B10E3D01ADD0DD"
+ "derived_salt_first_section_first_de": "A36E49ABD02685DAC38CE1D19D0B8B9E",
+ "derived_salt_first_section_no_de": "D531C60F8CA7C63115E838F71519894F",
+ "derived_salt_first_section_third_de": "722AD6D5D32103BE533568A2C3903320",
+ "section_salt": "581234FE7E1189244C5C61BAFDA5DDB4"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "955245785BDE91B8309200CC",
- "extended_signed_metadata_key_hmac_key": "06D3C96BA434033BC09E979A8F2CD39209AF070459BCFEF898BD7C4A4B4301FF",
- "extended_signed_section_aes_key": "8BABAF7A67660826DB6A116E0DF0F57D",
- "extended_unsigned_metadata_key_hmac_key": "F66D197B1ACC500EADFD4543ECD94BBD1C16745A28014ACD7841D39F7D559E7A",
- "extended_unsigned_section_aes_key": "1BB100635CC15A41F65149E4FE349F42",
- "extended_unsigned_section_mic_hmac_key": "B2D02BDD09D89D878F01A8D2CE3C07D8B0A499F347052838195A202AE175F0CC",
- "key_seed": "71C49ABC707B34F915A82E1A074C522C52F997E05A0E857B9DAF441DD31D4A19",
- "legacy_ldt_key": "580F800880B88F5F4EE27C81B9C2723719506A7B11C8DFB7CEEBB8A3A300AFA903DEE064E3DACE46E1782FDDD2371E825900221609C9694939BDB16B4AF93AC6",
- "legacy_metadata_iv": "2F9A2C64333BE782F7570C1B",
- "legacy_metadata_key_hmac_key": "4A2D6C4F8DB627F32BDA223F259B3F605C41D233AC4EDD25A792F83D197CFC88"
+ "extended_metadata_nonce": "45E5E1444674572E775B8224",
+ "extended_signed_metadata_key_hmac_key": "E0B347400DE60F9FA04DA4ADBAF3B6BD04C644F6793CE46F85CB71479ECF3EF9",
+ "extended_signed_section_aes_key": "B6DDDDAF922C963512160E75225D09F4",
+ "extended_unsigned_metadata_key_hmac_key": "AF0BE49B0E816D8F7712328C5F4E6ECC82DDC48892B3BDE3F1C4C01E5FA03136",
+ "extended_unsigned_section_aes_key": "848215F6E61B20D5928039AD45AD2132",
+ "extended_unsigned_section_mic_hmac_key": "8B905A2A15AD9CF4FB406828D832C9A035D4230C0F539D7647C55022232A9FE8",
+ "key_seed": "32DD54629DB08642CDD3D8FADA206AAC7283C4CA3E2A8C555AD8DD6598720562",
+ "legacy_ldt_key": "4274705A9EB207FFA0F1D42694C47173DAB548F1255772A438CB64BC9A03E80C50DC01E2F201BE9A1FF32E40C9008B4EAF1242A11CA3C0B4D398419369228C8C",
+ "legacy_metadata_key_hmac_key": "EDE5263B245DA34B73AD72B20E1D07CDC64A814F65676AD59F056B31D3525B34",
+ "legacy_metadata_nonce": "AE685D297E2D64B79DC9C2B7"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "6842",
- "expanded_salt": "EFC5CFB4DF37EF1E049063D172039C81"
+ "adv_salt": "8CA2",
+ "expanded_salt": "49637910997ECD98BC7F3190BAB36A4C"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "4382CD6D53BEB83DBD371AD2477AD0F3",
- "legacy_metadata_key": "F3725522AA445F95FD162648CE9E"
+ "expanded_key": "BF435149C0B6A7FA723E18855A5D02B2",
+ "legacy_metadata_key": "96FD3B89B68B0B14A3781DDF9538"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1829CE01D5F36708216D01DC32A2DD87",
- "derived_salt_first_section_no_de": "AE7E6C041F6AFB5DC9799F91FE56B3CB",
- "derived_salt_first_section_third_de": "8153039D88CE5CAF16612FF084657831",
- "section_salt": "6E0E14CEA77863077814E05035A48107"
+ "derived_salt_first_section_first_de": "DCBBEE3140866817D5B3E64BF6AFD60F",
+ "derived_salt_first_section_no_de": "C7DBA60E81BB4A0F806B82F9DD4DE170",
+ "derived_salt_first_section_third_de": "00C8B3CA67C7C566A850C3E17B7E3A29",
+ "section_salt": "80FC0A629CE7F0CD7B603F171F162D24"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "15BDC8FB1390CC44867BDC1C",
- "extended_signed_metadata_key_hmac_key": "317F639B6B7F69FC4263DE40B63EE16B21749033D2A1FF8418CF1DB2939BBBEC",
- "extended_signed_section_aes_key": "E47F7D6817F686F6271DBB3AC9BD96BD",
- "extended_unsigned_metadata_key_hmac_key": "6543A45BD421FD249F0BD95B43291E94C5FF0879B6A52706BFB05CF706E9A9E9",
- "extended_unsigned_section_aes_key": "7ACD0012DA2C1B254772F2852247CE9A",
- "extended_unsigned_section_mic_hmac_key": "634CEDC3C1750E7EF0A109B6D50B00E725A83E6EDDF9BAA1020DA4EAF87049AB",
- "key_seed": "7E780B917E9D4DBFB9689AE700D330215CC32A4634FC07D6BC63DAB32FE589EC",
- "legacy_ldt_key": "45934F0177E3DE9F9A8C8D13E4996FDC55A0BA2438809EF52E0FBF96F08015B9B4B85C4890502364E83A0B8733CBC28B2B32119689EE2D1A924A95D996FE0E09",
- "legacy_metadata_iv": "7AF5325EA2A926EB2DC13997",
- "legacy_metadata_key_hmac_key": "5E735017BAD4DCA69D3FA9EFFAD47444FD15A408331D0533A4A0AEB4DD3C7CAF"
+ "extended_metadata_nonce": "CA66CE6D69EA86A41AB0F413",
+ "extended_signed_metadata_key_hmac_key": "6EA8DF938647F825C60C6251F0CC1CD82FC642A0E254EF2620A746F46C9E1258",
+ "extended_signed_section_aes_key": "0F0B94A88E78E605C74B5B91AE62BFFD",
+ "extended_unsigned_metadata_key_hmac_key": "6C5D462BCD86343B68C4435D5B1EF6CF9AFB3C38F226AA84B7ADE93CDB23E83A",
+ "extended_unsigned_section_aes_key": "E2C02DADB79D7CBFEA71F94C4A65575D",
+ "extended_unsigned_section_mic_hmac_key": "38350921EF19BA63EA5D6A5511230EA652628101961EA4504A597C5FE4510591",
+ "key_seed": "3836F8FDE174BAA5BFCE8F199CD45AF774C245312F90939B6D6FF51892F5C549",
+ "legacy_ldt_key": "EC34EF3B3714001DD85534A5D3600A70645B612F7E8937362E43C683149F6F5621C3E2F700EC3E9E40AE468116316DB52F85746E6B9856FECFD94BA6BA852AF9",
+ "legacy_metadata_key_hmac_key": "7B2DE270684F7A3872B5752AACE00BDA88CA3D832833432EF1FCEA8D04523E59",
+ "legacy_metadata_nonce": "5A9EC7E213B30C88FB1F32BC"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "21F7",
- "expanded_salt": "1109B54B172496E91186918C0C8D317C"
+ "adv_salt": "EE17",
+ "expanded_salt": "D206579E8B5DA9132DBF4D1582A846E5"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "F0599DF66569B92A081C23F8385FB4F3",
- "legacy_metadata_key": "FBE565766E589867E66F7709290C"
+ "expanded_key": "BECFD5FC4083874524BD1E5A11A15CEF",
+ "legacy_metadata_key": "FD47DB9B922B170C9332494805DB"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E49FC5472F1F9E959AE06C5CFD1E5C96",
- "derived_salt_first_section_no_de": "D18EB27E9E4B29CBCDDAE198BCD218C1",
- "derived_salt_first_section_third_de": "E14AF6F3DAC0448BF1DDFB3BD6CE0515",
- "section_salt": "4AC88177868088EB39DFF812C22A6291"
+ "derived_salt_first_section_first_de": "BE32AD26A190F96FC445AABBCB1CE959",
+ "derived_salt_first_section_no_de": "8F061686BF5B1411A332C523C4E0A209",
+ "derived_salt_first_section_third_de": "232C9AB5D992F3411339C60540915063",
+ "section_salt": "8C2DCAFB7C90877729124D34A7D5B6E5"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5304114220F24B6DE3718004",
- "extended_signed_metadata_key_hmac_key": "E336CEC17D1C7B84A0C294E9F45A207AB715D62614BEB6EB820F2952A11BD5A8",
- "extended_signed_section_aes_key": "6B849645976E3CA5A657A753DD047D7E",
- "extended_unsigned_metadata_key_hmac_key": "02333625247226F677B41046C05F47E37280C113A4151A80A6EAF0E94B5C28F2",
- "extended_unsigned_section_aes_key": "C3B0AA4B8F65297750B8A6403A623E8D",
- "extended_unsigned_section_mic_hmac_key": "07E5909FA45AB0A802370A118E0FADEDD86E6D4C0B5A5AF4725B7D9C8EF05131",
- "key_seed": "3E278915E452A3782BDFE4D2AB8CD06E9E2F84E7B19E8BB2AC659AAE85BFD54C",
- "legacy_ldt_key": "AA535502632DFF61A05E2ADB3C4257C0280F3EB9F0940768DF61C4F69386C1F0C483F3B2D193AE699D287962C4DE0E880BD0448914ABDD16236DB682D383489B",
- "legacy_metadata_iv": "9B44C804F70BD44A861FE5FE",
- "legacy_metadata_key_hmac_key": "CE2F1EF12F73E5321D1D5FCDAF3E9A508EA574BEDA4F410F4546945BA05A4DAE"
+ "extended_metadata_nonce": "23CDFE5E54488821F6ED0A27",
+ "extended_signed_metadata_key_hmac_key": "2B262B746F258E0AE1CECEDC1C761535AB94C83536FB700A8C005F7DD418C388",
+ "extended_signed_section_aes_key": "DBAABCE45273B37FD68B63B6957E5785",
+ "extended_unsigned_metadata_key_hmac_key": "E177B64123EFE628A6268D943BB7824EFF52212CACF2E3F59C07E165E4F16637",
+ "extended_unsigned_section_aes_key": "B085C6252DC18DCD41D7F83A28071565",
+ "extended_unsigned_section_mic_hmac_key": "32CD283375EF7007BA71BA8540A8AA91A05AFD714FE80809A9F92F0754F3CC72",
+ "key_seed": "2E489B259C0566C778FA0ED37E2E7FA41DF3A664CAF4EF875A4427EDB479BB23",
+ "legacy_ldt_key": "68682B202007B1B9DDA6871451170B1B093C2A051C7C5416E71313ADC01B5F61C9E849A9C2C1CECC480F8658C6A649F195EAC21EC41749E4E9034894B1A13462",
+ "legacy_metadata_key_hmac_key": "9B6569331C5F5BC18C8444EDE38A946F59FF525D71C9DD3A0C0AF93BD799EF34",
+ "legacy_metadata_nonce": "A6A810AA0DCBD8FB7C957713"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "D4BD",
- "expanded_salt": "9A63AC812ED4D7DBAC1C706A4127EF91"
+ "adv_salt": "76E3",
+ "expanded_salt": "DB8C04B9A21DCCEC75C4D2C7806F57AE"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "48825E4A22099853F67EB1E269DECDDC",
- "legacy_metadata_key": "4683D3A45D2A5C45EABF302A799D"
+ "expanded_key": "0243B20CDF5D6EC2B5F40DE90BD517C6",
+ "legacy_metadata_key": "10D3F1C4B9422B343140B77FC230"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4B29EEF96F66C0A16DE7C7D004BF7228",
- "derived_salt_first_section_no_de": "76A506518A7718B1B20D93387C3C942A",
- "derived_salt_first_section_third_de": "C95D82F3B223FF4DBE9CABA1BD8B3F25",
- "section_salt": "7BFAD3C485A1571463AC9861A72A8B9A"
+ "derived_salt_first_section_first_de": "CC2F52EBC86DB28E36451CDAF13079E4",
+ "derived_salt_first_section_no_de": "DF2CF0AF9608449FBD2545BEBE111B51",
+ "derived_salt_first_section_third_de": "0B60FF977CD4A5D900642F660C496EC8",
+ "section_salt": "3D36E649B2617F943C57E5845043BD7B"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "A05273E344BE2CFA3AD2E057",
- "extended_signed_metadata_key_hmac_key": "BC43D733C18102ABF6C723740F70E697854B534040A2D9B0ADA6E5E2E78F9B08",
- "extended_signed_section_aes_key": "BB9B7C23786488E09F5C48F1DF58D5D7",
- "extended_unsigned_metadata_key_hmac_key": "9C097D0D95E10E3085DAC441C7F93F8107DB2164751FE1B71ECAC5925DE33F23",
- "extended_unsigned_section_aes_key": "4EA936CA5F9B7249BA2D8636FAE42A7F",
- "extended_unsigned_section_mic_hmac_key": "DC82C8072762A77D272B6A747F4F88798DB946CE57D5CB5C0418209FACC6FE91",
- "key_seed": "D9DC3AD6E363227795EE55DAAB84B3ACCE5BA3179ABFE908FA80998F37D8A1C8",
- "legacy_ldt_key": "E6C84E711DBB3CC540BF824FF36554A165B2358ED4ED49F3EDA6E5305C59578974843A8D021BA5078CA85A8E413514A45D34059B9D3B5F4D3B432E7B8961640F",
- "legacy_metadata_iv": "D439D1E0FFBF86FB1C1A3228",
- "legacy_metadata_key_hmac_key": "9286024093AA70647D85900B31FD546257F5B034050FBA641A9710079E6D0EAD"
+ "extended_metadata_nonce": "92124C3375F66E88EFE35C53",
+ "extended_signed_metadata_key_hmac_key": "A0D58D77AF063A719AF9FF4EE9073C16B9BE7624AAB46951032E2DCA7E58F9A9",
+ "extended_signed_section_aes_key": "2B11051C494B15EFF095B1CE27731780",
+ "extended_unsigned_metadata_key_hmac_key": "0DAC827E8E114BE7A5377C68A902C3F9F9ADAA3799DCAB115B4402D6986B6693",
+ "extended_unsigned_section_aes_key": "9EBE28389C5D4037FE9CE66E5815318A",
+ "extended_unsigned_section_mic_hmac_key": "575A04282694E59058B0B62D8EE68F9F97063EB4CAADBBBBDD49CCD58C00AF3A",
+ "key_seed": "0A188883B6CA017E98A98E6F25D090AD8B59432D5978D9B54F41A7E4F60BD880",
+ "legacy_ldt_key": "C393CA2F2A769B0C37F6F394C806FAB5E6D73AE829B7AD0AA58351D65A8436D09F67C076069BE57AE561CFEC65DF13F31A2D78C583835335B9E79D42667884E6",
+ "legacy_metadata_key_hmac_key": "CC4DDD317D155D714F0BCDCF55F7C7596B9593B5A331561D1E075D63605F1311",
+ "legacy_metadata_nonce": "9D15BA91B10DA670512B7F69"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "626F",
- "expanded_salt": "8E7ABD18E7FE69929C561609DEF856ED"
+ "adv_salt": "0786",
+ "expanded_salt": "90BF5725A647F3877EACDFE93F00743A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "321820C75763C5A241761CDE8FB6212A",
- "legacy_metadata_key": "FD7A74B8208AB5F5CFB4E8CC0B33"
+ "expanded_key": "44412FD614B0F95EB598CBD223F560A3",
+ "legacy_metadata_key": "3A127741C99A09FD4F7416C678B9"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "093F63DC0311CD69816479222E0B0493",
- "derived_salt_first_section_no_de": "BA69DD71366F961A9E2EDC44A4B0D807",
- "derived_salt_first_section_third_de": "F3278107A44F5AE601860344A957C5C2",
- "section_salt": "277778C7D91A67393BE2DAB449B9935A"
+ "derived_salt_first_section_first_de": "BF6F7B9731537CD65957FE062847164E",
+ "derived_salt_first_section_no_de": "7A4C1F1972B35CB2F1D8ED706210BF86",
+ "derived_salt_first_section_third_de": "86D64154463B1BA93C139DDB0476F29E",
+ "section_salt": "006BC21D03AFA7BD1316E76B52AF72AA"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "AEC74950594F1693AFA8F94E",
- "extended_signed_metadata_key_hmac_key": "0B1E990544A4F1C5EE9E5B27E50F64567C37D907CA58D402B7FA986853B39095",
- "extended_signed_section_aes_key": "BC3680603625514D26DD49E9862BC00C",
- "extended_unsigned_metadata_key_hmac_key": "11E5CEFBEDD9F851B24415E67ECA0D78D9179D0319AF082EC2A11011902088F8",
- "extended_unsigned_section_aes_key": "761A7A3EEA45D6626F6049CB5D386D85",
- "extended_unsigned_section_mic_hmac_key": "677AD74912B8C7A77514A02EE2A69D933A83680BF8DB89847E347D09624174CD",
- "key_seed": "69381EC889580AF4B2947AC25BFABDCACA5BFA47FABAFA56B8422D2B45EA6B73",
- "legacy_ldt_key": "4790E03D46541081CF78ECE451D3A175A5337A868372E81FE079F1302E3A81CCF78EB32D8C105798D014D1987325643A0E700D5A544B9942B1F248611A03D9B5",
- "legacy_metadata_iv": "BC2044A0A3DB3309EA596519",
- "legacy_metadata_key_hmac_key": "BCB7806F9B357EA9ACCA3995AE6E6FA93CE3C3CC9C46DD38E8C375D94526A16E"
+ "extended_metadata_nonce": "460BECD309A3EE6B35175031",
+ "extended_signed_metadata_key_hmac_key": "63CB2E1C16F5B94BFD5DCF725B322E2EC4CFED49BECD757FA4A5066524875C15",
+ "extended_signed_section_aes_key": "7D3E000289F97FEAC66DBA48492A985E",
+ "extended_unsigned_metadata_key_hmac_key": "3C9232DEF5692ECB5F753CF1CE5AE15F1E251881D947B0EF726D86720C1E03A4",
+ "extended_unsigned_section_aes_key": "A2FCCB33B71B1A8D807DC1D9241584D2",
+ "extended_unsigned_section_mic_hmac_key": "52C00EB623D242318A865DAD8FB76A775F6D5D80F5CF030CED9777F6B704E9B8",
+ "key_seed": "B48D65795DEEF4190966FEA215BB96F6052507BF909CB2DD5345E9FDEDF321CC",
+ "legacy_ldt_key": "22F49B6998414150E646326B75F7AC83CF5DF705B33C582310A963116845F5E00B2937634AA8338AF18E9B45EC6C892708924A0868051A44ED4561D9D091F47F",
+ "legacy_metadata_key_hmac_key": "8A28B3F414B387807148BB37C2C74977C2755E41863DAAC7B15E3B7C006A5E6A",
+ "legacy_metadata_nonce": "1CD3B2E498B4D30985B1E11A"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "168C",
- "expanded_salt": "A2C4D5EB8DF42D940C528F719DB4FCC8"
+ "adv_salt": "2619",
+ "expanded_salt": "11CD75FA9ED0CC386D81040E5E28BD5A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "401F7CA286CF9F5B8BCDFE4BBC5460EF",
- "legacy_metadata_key": "3BD53635D9B49E8C639D13D1A2FE"
+ "expanded_key": "6F0D67269728308DBCBB1DF1D485512C",
+ "legacy_metadata_key": "F3FA997825C9B8CE27114093994F"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "523C8D477019E0CE15A552D17176B7C3",
- "derived_salt_first_section_no_de": "F248B25D54BB3F267197CE7C28FE1BF4",
- "derived_salt_first_section_third_de": "B576E38561ECB0DDC2206C4BDB8A1351",
- "section_salt": "FBE907EAC01C4FF8AC0A406FEF716882"
+ "derived_salt_first_section_first_de": "C4394DDD7E50753EA4F6A380BEAA6D75",
+ "derived_salt_first_section_no_de": "9FBAB23311FF8DC91ED5581625BE5C31",
+ "derived_salt_first_section_third_de": "7EA2A3C3E08970ED0ADDDA2EE28989E3",
+ "section_salt": "F7802897A51C9CC8CB4F39237AA5AF75"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "0F9D418F1490BABC141217B1",
- "extended_signed_metadata_key_hmac_key": "F327E7600374710CF5CDB23A6330D27ED2B1C29758B970D06CD44553538346DB",
- "extended_signed_section_aes_key": "A4C356D2B1F5CFF80D3CF321B66BF183",
- "extended_unsigned_metadata_key_hmac_key": "F5B7137881A5CFAB8CA20DA1E9F7345C29B1890BA99E968891DF110AD918D099",
- "extended_unsigned_section_aes_key": "A71A0602AC9776E4CD38B21E95C279BB",
- "extended_unsigned_section_mic_hmac_key": "202A08F69C1702CB0927397B558FD3BCC4040A5D2CF3B77C6940422069B1AC40",
- "key_seed": "3CD36D93CEA92023936858AB6C4158CC25E0FE8835A6A85187FEE0F19228F697",
- "legacy_ldt_key": "7D79471088766A10C26D96ABEFCC750D726464AC449D88EB9F94EA131435141A3267471BF4260A6CD1ED96DBE3D25F8BA5B3E31180A131D857938AC3107C889E",
- "legacy_metadata_iv": "B405B0B72AA055A906DCE597",
- "legacy_metadata_key_hmac_key": "739519F75B01134896628D6B08996EB109C6592F977724A0C1F461966F0E4B73"
+ "extended_metadata_nonce": "32EBBA46F34FE6447FCB9F03",
+ "extended_signed_metadata_key_hmac_key": "9D457FEC0DED032FCA7C4663788C3413D985458D3B7DD7C77CA808CEC7A7EE23",
+ "extended_signed_section_aes_key": "C89264716F9ED0AD1A591D4E7B535537",
+ "extended_unsigned_metadata_key_hmac_key": "A478F927217CE04B52D69110C6FC26C773B68C9CF862C586474F498B38AF736A",
+ "extended_unsigned_section_aes_key": "726704CD26B963222D3ACE2E8510FDA8",
+ "extended_unsigned_section_mic_hmac_key": "6912E3F7E93AA50850A908EBEAC4595C5542BD274247902C4EEE48E9EE5C55DD",
+ "key_seed": "880B555B9AA8600F636A51A179B7E8F577425885545DF12D1CD6E01C87D3FE92",
+ "legacy_ldt_key": "AFD7043040B31C0F86D1CF833660C533AA297AA161B8D2EFEA77BD0B1A1A2FBE3A194A52BF2950CC1E307695D750E818EB6CF2161FC3C1A0AB54B647FF9275F0",
+ "legacy_metadata_key_hmac_key": "CDAC9BFD8382DDBB3941D3051353EFCD37015CA03452C66273EECBEFA22E03E5",
+ "legacy_metadata_nonce": "C80E0C617C7A3CB8D2863481"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "6A53",
- "expanded_salt": "F55EE61F2ED6E8C0F805BDB67329B74B"
+ "adv_salt": "7165",
+ "expanded_salt": "C7DAAE6B6635A8AB95D2300CB6416269"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "F1F9931E069B9EA5EA217506306DBB10",
- "legacy_metadata_key": "D2C918A5FFB49343171C4529564F"
+ "expanded_key": "42BCC04B27A64629343177218F57BE0A",
+ "legacy_metadata_key": "A876ABB90315F25712F38499B85C"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "460A129276D1E7C6DFCD657B554AD19B",
- "derived_salt_first_section_no_de": "47E8699559BF77157B1585DA74B04151",
- "derived_salt_first_section_third_de": "3BED3DCE1EE9985E760F2C7F8A4F5B8D",
- "section_salt": "0B98A76C861D9365FA51428AED2834E2"
+ "derived_salt_first_section_first_de": "0F6D736CE65D5C65A3B2D6559F5FD402",
+ "derived_salt_first_section_no_de": "554244AF344CA2C83F253966F6102027",
+ "derived_salt_first_section_third_de": "13F1B8E4B07D0A51B509F878A71C50A0",
+ "section_salt": "FA523DAC59FFB86119FFC29D753AA473"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "F4852009A5E5F02BDB23C293",
- "extended_signed_metadata_key_hmac_key": "64C03116D69030F0BD756A645FAA269590CBADE7FB59C4A1E02E17538D88CC37",
- "extended_signed_section_aes_key": "F0E03D355792399125BB67E9E8B3E2A5",
- "extended_unsigned_metadata_key_hmac_key": "D69122225E8A0C4035FA73A15AE939B2A384D55FB41B63923F3D0038C8208DF9",
- "extended_unsigned_section_aes_key": "AF28CA8AE952E0EB9CCD07834F5B015F",
- "extended_unsigned_section_mic_hmac_key": "DDEA69DDD7589C44B260885BCD77570562523C9BCE27F398ED0A0B6DCFB3E779",
- "key_seed": "7BDB35846F537399D3AC9F7351CF11AE2FA785178582F7386F06103BD57829D4",
- "legacy_ldt_key": "08B94CCC644E0F30CA3540A7931EF80D375D31645ABA4B4FD683C2101A1762C69B0A7CA496720F8CC26A3E2A202877D12CB9B93D85C7FD8D730F2D5BF9D3E1D3",
- "legacy_metadata_iv": "47AE8521C71D200C4B626597",
- "legacy_metadata_key_hmac_key": "231C940C9E18CE8A6553BCF3FB5A60F1FAF6A950D2905FC7D10F9A92A98CB694"
+ "extended_metadata_nonce": "2DF7FDECC381703DE06DFC8B",
+ "extended_signed_metadata_key_hmac_key": "002E77DA262FAF5BEFB7668D09710373FD69821DC3F563320202DFC6F7F8DAFF",
+ "extended_signed_section_aes_key": "A9B5C0BC08AFE740B6FD1E6BA8220E53",
+ "extended_unsigned_metadata_key_hmac_key": "2FB80909E593CEDE519FA19B034FFC6D189E0B772B0C4FC686C3732C82B34F19",
+ "extended_unsigned_section_aes_key": "E8D6F9C80CCF633B9F37574DBC38ECCA",
+ "extended_unsigned_section_mic_hmac_key": "4A3E71A87ED54DFECD1FC9EDC09371D329E8B231A189D072F827863C3377FD7F",
+ "key_seed": "B641968304F3D65286618FE936844A883932A98F172FAEB1CF5DC6E77007488D",
+ "legacy_ldt_key": "9D925DBD151593EAC40F2C7FEA7BE2EC81891FE87971CF1C7F38369BDB8B12EBA067EEA5BCDDC36E5D8430CC67C9F8C85C272E868D75404E64A087FFAB92D7CA",
+ "legacy_metadata_key_hmac_key": "F8AA867BD12B81AE663E62C650E705DD1F2A1D9ABE38A99A2E1D51EF7E2DA26A",
+ "legacy_metadata_nonce": "46D5A1760D44590DCE76FCE6"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "99B3",
- "expanded_salt": "81E13245C2EEE6124603C4FE4C22035A"
+ "adv_salt": "587E",
+ "expanded_salt": "D3CDEC97B00233FD542022C2EB5F3848"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E899521BD22B9A12778F05ED0B699B8A",
- "legacy_metadata_key": "2F2EB44729F3A6B41B3324B4B672"
+ "expanded_key": "0D01ADC26CDE59CB3350AC0374ADD752",
+ "legacy_metadata_key": "F9664E87F9E82683417A6C69FC6A"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1FF2A41CA4A49D0B00E1059380052C49",
- "derived_salt_first_section_no_de": "D158331DAFDA5BDFA68EE87D1862CD3F",
- "derived_salt_first_section_third_de": "219B35EDEF70F9D9ED8FA142624DE912",
- "section_salt": "78CCAC8E9F3B6D26A75061FB2894EC7E"
+ "derived_salt_first_section_first_de": "D2B338926A1201F6CD659AC639B1862F",
+ "derived_salt_first_section_no_de": "B3E7AA07BD4FAFB10015CD6C196E067C",
+ "derived_salt_first_section_third_de": "4D84FFA3D9A34766CCBD37DF356A9FFC",
+ "section_salt": "1D99919B07153CBA8C4D3311A118B9FC"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "BC9DD18FA3BA692F75BC6326",
- "extended_signed_metadata_key_hmac_key": "E5091DA7BD51B1D6CA5DE0B7532A7EF9E58ED0BBE632DDA423AF083925CC19F2",
- "extended_signed_section_aes_key": "CF9EA308A1E67CB18198FE39B778C8B8",
- "extended_unsigned_metadata_key_hmac_key": "4DD7CB1A47C387631379E78C215AFFA65BE6D71D56E3F34C7CE74E48956DABEE",
- "extended_unsigned_section_aes_key": "61080409BB1EC06BC9BD364A4EC761C7",
- "extended_unsigned_section_mic_hmac_key": "C0948142AAA58212B7AC234EE14682164A9117870D4E3B504C68FFA7AF1A0671",
- "key_seed": "F7594CC5480AD6461B18C633F8773D5EB85DAB5CCE06B8274C737AF57666EF89",
- "legacy_ldt_key": "3AF97EEDC6954FE58A126F52D706D68B05C9322DF00280FFB5707CA6B53CC8E0C68B0E48F9C973E327AC031CA54472AF339CE4A2FF8919B580CE0CD9FA14B380",
- "legacy_metadata_iv": "404E3724C6AF9A40EC90CAA2",
- "legacy_metadata_key_hmac_key": "0300F569E6E03595D6CE3D55303BE5FFE983E58CA112546574F42CF4EAFAEA98"
+ "extended_metadata_nonce": "F8495F6B16683501AE5B19E7",
+ "extended_signed_metadata_key_hmac_key": "75B5C62C60C3019BC2D9D4CD91CCAA2E76D33EDC43AD13384123F3B5D52D67C0",
+ "extended_signed_section_aes_key": "BCC8DB06C53733E8F793BD7D64DBF46E",
+ "extended_unsigned_metadata_key_hmac_key": "A90E9E7F829DDFB44D1C10AD1BC1BF08401781B8C22FCE5DE73AC6DC0AC66BEB",
+ "extended_unsigned_section_aes_key": "9F6E49E8CAD1919314298C3A354FC392",
+ "extended_unsigned_section_mic_hmac_key": "C316406D229A27AF3CB3C13E906287EF8B5036B658FE824A076C8B6E74D2B885",
+ "key_seed": "BEB2E5288A42FD7AC9E4BE6D4998F32CA5AD102DD6BBF21D9A63E92ECE14F7C8",
+ "legacy_ldt_key": "7B180A8344D1E4A7E154BDE1DFD16888E3778686A35DCDB75485EF2A93762E0932D6D79EA0826E5ABAF79DEC504B7D539C6324CFF9B7D4C1F19B60B65D3B9BCD",
+ "legacy_metadata_key_hmac_key": "BE281084F50E511096BF52D7FAA5AE64949796EFAD2615C4FD16495016C5CDE1",
+ "legacy_metadata_nonce": "42ED5DFB6ABF8FC2CA75DDB4"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "9115",
- "expanded_salt": "5618B98B5E6F4F96148D26DD7A0DB008"
+ "adv_salt": "9288",
+ "expanded_salt": "EB04D1DB34235FE2814ABE28338AF6BD"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "62AC384643E0F1BFA17FEB61AA9734D6",
- "legacy_metadata_key": "7C8CF959BC8F902B839A104FB14A"
+ "expanded_key": "E1478A4ABBA0D34E1DBB8440636BA1DE",
+ "legacy_metadata_key": "3B2669DBE04D22E4146856F24964"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ABD9E8E367C7FE14561F0F72835A5396",
- "derived_salt_first_section_no_de": "0A4E33216E0596B53BD196FA045DCCEF",
- "derived_salt_first_section_third_de": "63EED51E786CE44976D6559373AC7FB9",
- "section_salt": "C53CC23428DB48887DB27668433838AE"
+ "derived_salt_first_section_first_de": "2315A6A6A255AFDF9CB9BC23D7481C70",
+ "derived_salt_first_section_no_de": "2F871D368ECA88997CA4EA877F8BCDA1",
+ "derived_salt_first_section_third_de": "F4D547600C7C3CC1ECEB4D83C821D191",
+ "section_salt": "D82414D60C56BC7571AC11EA22FD95A1"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "78002EC135D87FED532E1D50",
- "extended_signed_metadata_key_hmac_key": "5971484FFE554CD8B1840A56F26D35D75F6C56A2918259451FE4BD2EE94399DC",
- "extended_signed_section_aes_key": "5AA5AA3C4FC816297AB0DC1B2E94FDA5",
- "extended_unsigned_metadata_key_hmac_key": "375042CAD5428874CC13C5C7B76D4B01AD7BEA11D6ACE4F6AA9D4D4EA5E869CA",
- "extended_unsigned_section_aes_key": "C26523CEA647F111AF835A8EF93CD89D",
- "extended_unsigned_section_mic_hmac_key": "84D06D9601B1E282E19428B007491658151B323494FAADF988C39F59A403AD7C",
- "key_seed": "41C10847936ABC3BA7FCDB9C65F75EEA614A583CB5F05B2735975F0825C74781",
- "legacy_ldt_key": "AB64F2C9F569E149B3EFCC0DA7F9C8414CF66FAB4767E44DE158F34CBEBCB80AC3968F0CBB57A079F9F5E540534EE409900A70C4124D0E1C6731D22F96555657",
- "legacy_metadata_iv": "A479C653B5F6A81482CCBCAB",
- "legacy_metadata_key_hmac_key": "650404FBCA47876A8282AEE3B33AE601EE94905B969487EF4622AD62E8EE55B0"
+ "extended_metadata_nonce": "3225229E97DE8EF6EF3738A4",
+ "extended_signed_metadata_key_hmac_key": "8F2D19779DE3D0BD45A93F9D546C7D70BA7D24A3039FC10FBED142099A7E48B0",
+ "extended_signed_section_aes_key": "552CF2D3F72D8AD6AE4613521D744069",
+ "extended_unsigned_metadata_key_hmac_key": "4DD906B20F0F537A4759DEC498B3F5F35A26A850F458B7AF9D140304C138DA3D",
+ "extended_unsigned_section_aes_key": "E915FB586132C17710BDDBBC7BE734D3",
+ "extended_unsigned_section_mic_hmac_key": "00FAB34E3EF9BABCC38BB24476583539C41F2C0CA69FBCD21C278742108158B2",
+ "key_seed": "B835493E7A34BA1C0ED885CF78EB30CED4203067CFB0E3501CF1509C44A10EA4",
+ "legacy_ldt_key": "63DDFA294943D9D30A1B8A911EF3C9643719AF8B1E30F6CC7FE9EA490E1F5544D22A65721399122A0A6324F215CC2FB178447E5D9F7F54FC326B994C27B257BB",
+ "legacy_metadata_key_hmac_key": "15C70495ED3FD7EF63650611395B8BD9D6015DEDFE41685077911059081639BC",
+ "legacy_metadata_nonce": "BBE949BBD59C4F963E7E2821"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "0E06",
- "expanded_salt": "95B27BC0998229DC12D28D2FA1C04E0B"
+ "adv_salt": "54C1",
+ "expanded_salt": "0DB76FBA8F6AC46D1C0E4D3BF4F9760B"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "BFEC8A2E9F616C508DF187E9DF1FDCB4",
- "legacy_metadata_key": "5782D727F4170569BA8B3595EA07"
+ "expanded_key": "6815ACAD17F576FCFAC31D7CA348B9C7",
+ "legacy_metadata_key": "D56BC285FCBC28F14904C110D022"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "07B886D430F1689CA266CC4919043373",
- "derived_salt_first_section_no_de": "86444D31AE12E32B9A21BE78C59CD681",
- "derived_salt_first_section_third_de": "1285FC3465CA99704ABFB3D44DAA14A8",
- "section_salt": "0DA17E9CB114F1A016C00A593C1D606E"
+ "derived_salt_first_section_first_de": "A63D90F8D31E70B5F12FA49567853940",
+ "derived_salt_first_section_no_de": "DBA2B7268B2EDFCE658C2DF7D1F50E18",
+ "derived_salt_first_section_third_de": "923531B496A572D8E6C45ECDC3598D78",
+ "section_salt": "228003CED4DE76F9E2E12998C3ACF2ED"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "B954B0F4B4F3D62A03230367",
- "extended_signed_metadata_key_hmac_key": "45D64885D52ED5169F7B0EFC2F922E7166D0C3076C0A5B98261D0241B28FCF7E",
- "extended_signed_section_aes_key": "765A015D81E3A2C80B81189C8C241BC5",
- "extended_unsigned_metadata_key_hmac_key": "C0488E7B09BD42F264CF52B518AF44EC4E971CFF970E8E2A2D252FD63E68A224",
- "extended_unsigned_section_aes_key": "C14B966D98AAB0AE7B9D0ADE42141098",
- "extended_unsigned_section_mic_hmac_key": "F79E33334D17CF2EE0657E019E7B900959F4332FF571FF046F97799A16915F2D",
- "key_seed": "DA9F818634A1F61715FDB1E4EA57538D299BEA59B12ABF4816BC03A3D03F7174",
- "legacy_ldt_key": "C3CDF05C11383D339BBF077DBB4275108A33721DBD915BB54619E360EB4047F1CBDD7BBD417CAFBCB124D4EA7ACF719B23E2584F8C048DFF6EB746958CF9BB03",
- "legacy_metadata_iv": "DD154B51CC08050CD70CF27B",
- "legacy_metadata_key_hmac_key": "449D821E637BAE959E8A440A0384811EAD2E46A1D530BBF09F1DEE4750A5BAE5"
+ "extended_metadata_nonce": "9D7BBE2671E7D6C30CD6F810",
+ "extended_signed_metadata_key_hmac_key": "33EB25BFFFC7B15197FAEB32C928CF5A128D01D00735C3EF7727F1F761F51BAE",
+ "extended_signed_section_aes_key": "7D5EE6F4E07F8C5F07E258ECD20D4D34",
+ "extended_unsigned_metadata_key_hmac_key": "792E4F635AD3FD8AA5054F8EC58AADF6BDF7471EDF9EAA2445C944C3C10B6463",
+ "extended_unsigned_section_aes_key": "9DDB1E227FD6E4F9FA7D29BB7A5A1C4F",
+ "extended_unsigned_section_mic_hmac_key": "9611D448338D20F3C6A6464C9CBE3841CD703E6FCBEBAC5EB44D3F5F5D6997B4",
+ "key_seed": "D116B27178BB5F9D9979CBAA97159E4D4410DE3D26CE2AC3ABA7BDAB63A6B85B",
+ "legacy_ldt_key": "5628DCC812A21B82C0619D613EE0E4B67082C89E316D23EA3409563EB8E297377F472FF25C4A0A70B2889BB27293873724B8C0E94A83D9EE2E080D3A5CFE0429",
+ "legacy_metadata_key_hmac_key": "76D7B1B4B3E7432884C9A49F46FF26F1DCE8D583344AFDC7A6635254EEB5CFA7",
+ "legacy_metadata_nonce": "3C2CA3B55509876DACCE58B2"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "25A7",
- "expanded_salt": "1001DE18025793685807174644F915E7"
+ "adv_salt": "A386",
+ "expanded_salt": "F59E3504B2B86D465989D0F5B5F04E7A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "5FB6AB6D699AF13AF4550AF46EFD8CD2",
- "legacy_metadata_key": "FC706D382F05CD979DEC53A87354"
+ "expanded_key": "D4522DEB87180CBAD14338BCF3B1107E",
+ "legacy_metadata_key": "F1A6EEEAEFD437330DFB706FBC43"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ABAEBDDD326AFF0E7FADF62E9496EF03",
- "derived_salt_first_section_no_de": "76E143060ABF1E292B3331B5EC261821",
- "derived_salt_first_section_third_de": "F88CFF6270A353FAA27025F48EA9878E",
- "section_salt": "4544A62834D40793B790B41E0E2E8CE5"
+ "derived_salt_first_section_first_de": "06C173FF92776658E2DB2394907E31C7",
+ "derived_salt_first_section_no_de": "CC2D079DF426A5359DB15CF4DF6C894D",
+ "derived_salt_first_section_third_de": "5FD567F78807129F25151725F939CA7A",
+ "section_salt": "375DB6FAE577F7F2BBB1483161B62D98"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5F64F78E78AAAB8A6F9C51EF",
- "extended_signed_metadata_key_hmac_key": "256B37ADA38A2B28C4AF8A6737C1BF9B5596E69C94B8A3E284C031F4A0F8D182",
- "extended_signed_section_aes_key": "A03EC259B92524474D4F6ED33DEA2F4B",
- "extended_unsigned_metadata_key_hmac_key": "D21528D865364660E25256813A65FC647C9718A89B0AE4A99BFD3737E178C93B",
- "extended_unsigned_section_aes_key": "6A917C79F21A6A1D3936E025BE6F18ED",
- "extended_unsigned_section_mic_hmac_key": "4CDC0B8692DE23ACFE31A7C7EA7F36B0EBB338BE7879ECE9A911465666DA7D50",
- "key_seed": "F383A8E9AD6875B92CE949E5AC4E2B6AF56F0D7C618A60E734A63D61B9954B44",
- "legacy_ldt_key": "8CB80A8D7DDD8072ED6D8D0B7EBC36CF5E8DEBF0E19AD205EE165FB85C9BFC8BF61E9C3CAA2C13D634C3099A12FB0C85726ACC80BA84F844604DB0A6A73ABC4F",
- "legacy_metadata_iv": "6E25C491922F66DDA6937D66",
- "legacy_metadata_key_hmac_key": "9616DC43B57AA994E028A5AEA1F877EE47805E729FBC860101981C14863D7457"
+ "extended_metadata_nonce": "4DB0F75206E7B33C55CD1A87",
+ "extended_signed_metadata_key_hmac_key": "F01DA0E7048DC47AF21AE6E1E00705711F397C80E4E5872FD484CB2A353EA84B",
+ "extended_signed_section_aes_key": "EA0D9B928C271079D8DE740792217A2E",
+ "extended_unsigned_metadata_key_hmac_key": "0FE25C53F513D8C4079663AD26D3EFB76C9E53403A32CF3DD1AC5C4F0B46D401",
+ "extended_unsigned_section_aes_key": "BEFF54630EB0851BABD6C9080B3650AB",
+ "extended_unsigned_section_mic_hmac_key": "41E49DFF047BB3D9DFEBB5D86CA2FED61CCA22A8DA4AFE08010B4B2E026605DC",
+ "key_seed": "8E94D64DA399A2EF9428419B72C2D6B96EBD83470CC5894564DC624BCAB5F437",
+ "legacy_ldt_key": "2B802CC087114906FA80A9C68E0991C1D99CAE898EF25F2EF7FEC84E4B8F194AA4608F022C7912B8879BADAF1689140CB37BD15C4646BE36C61CDE4199AD27B3",
+ "legacy_metadata_key_hmac_key": "290F16A7EF5A15726241870605899132979F304FC452B6E7D3CB80822AE3DA7F",
+ "legacy_metadata_nonce": "9FDD6FDAE7D43E1937EFD1B8"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "7D14",
- "expanded_salt": "B1705F907083DA214FEC3CCF2DFF8F9D"
+ "adv_salt": "1161",
+ "expanded_salt": "CAFA25E3F8E00053BC3825E8FF5D5078"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "920DC80626FA0C6A4E4C401917C6D2BB",
- "legacy_metadata_key": "CFF499042A005510A4019F804E0C"
+ "expanded_key": "D918D076ABA54A6B7FB5406522616208",
+ "legacy_metadata_key": "6C7A1A6D9A337FD3FE62B2E2ADF9"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AC052AB5D1D7F7D5DDAB2FB66B09E296",
- "derived_salt_first_section_no_de": "A3ECCF0CE7F4EC3D7333BF6EAA43FF75",
- "derived_salt_first_section_third_de": "98C3E143810A62C7308A959548C1F1FD",
- "section_salt": "3077BFDC668DF7FE3354CED1F2CDE565"
+ "derived_salt_first_section_first_de": "D2C405851BBC1268709BCA5E92ACB57B",
+ "derived_salt_first_section_no_de": "8F84A4AB6444AFD08FE7110D0D16C74D",
+ "derived_salt_first_section_third_de": "4C3C84632D69672E8921C5067A7DFB56",
+ "section_salt": "5D950CB5E7D9F44E9429359415FED1B4"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "DC65E84BA9FEEDDEB2F080FA",
- "extended_signed_metadata_key_hmac_key": "9F63A289D348673D9174A5D6709CA1A792CED5D1D090D268BDAD0A5926B9104C",
- "extended_signed_section_aes_key": "A5027B1FA0654EDD14BBA5481875900A",
- "extended_unsigned_metadata_key_hmac_key": "C8D7D26916DA91B149DC91E65ABE5F7C66E37901D2763DEDB278EF61C5B8CE97",
- "extended_unsigned_section_aes_key": "7EE5B9CB1B1BD871804222B8C02471C7",
- "extended_unsigned_section_mic_hmac_key": "032171B6C682D147AA002B22246406425197FE08AF457C169049A490FF93134A",
- "key_seed": "971CBFEC7B8ABC05CCA1C737E7496807956448C0E619964ED2E7BBC63C733340",
- "legacy_ldt_key": "83D421095DDAA0328F05116C3E0A6753939EBAA0C4AFBC89B363E62B925EC110D7949C4B76A5CA6F15DBF6353448C0F9F8AE9CA4EEABE0FAADCCED761FB317BB",
- "legacy_metadata_iv": "BB57B77A97FD6482114DC6C2",
- "legacy_metadata_key_hmac_key": "93448155FB18A7582571E50BCE555326CF2CFCE8E58E6CA7474DC83FD5B2E0AB"
+ "extended_metadata_nonce": "F061EE619FB13FE95DE267E8",
+ "extended_signed_metadata_key_hmac_key": "F276A731C51D5936687E7F908F88224BA28BDC2D6A4F94999765822DEE917D6B",
+ "extended_signed_section_aes_key": "CD9E5F7C922F58A56A17CB8F62B9DD09",
+ "extended_unsigned_metadata_key_hmac_key": "174295A2B19CD4F9A821895D098CC63CB4CF17AC16CA7BD0DABF7136C2D3D194",
+ "extended_unsigned_section_aes_key": "1CEC9AA427A98480A6642003700F4A5A",
+ "extended_unsigned_section_mic_hmac_key": "6780C7E76F1A85B3E31A1382505FE21BA04AAFE268C9810C626E72C9203C638E",
+ "key_seed": "234DD6BBDADEA172BB97EA68E22A0B0321F8DBD65EAAAA38F95940D73770F35A",
+ "legacy_ldt_key": "7E7C646B51F1867F6D7CEA56F2AC7EE80DE9D9DE2015E9CBD7525ABD0FA05656CAEFE120EEEF521CEB7D9E296555CF8A249862D97F0D3FCAEDE9A4E8C309092E",
+ "legacy_metadata_key_hmac_key": "1DA50172EAFA031A15FADA0313BA770324BC8A0D1223FD5EBC127A331459F2B2",
+ "legacy_metadata_nonce": "74C72A883D6BA2CFB5F68830"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "A320",
- "expanded_salt": "ED263552503D6A468A1BE9A03B2504CA"
+ "adv_salt": "F836",
+ "expanded_salt": "F8809BFDD69EE831A7686D8359BBBAE4"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "51A63F59DA49306D590549761A87F057",
- "legacy_metadata_key": "4AE77EE6F131EB3109BA9C91FC24"
+ "expanded_key": "A97B037072AC4D59472E20AE1C8688CE",
+ "legacy_metadata_key": "4E18A6F5EEDEDFAE9AEE43A53094"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "97927C38B7633E3EF19FA9F9D3D58DD1",
- "derived_salt_first_section_no_de": "DBD0500B240828F9BACA69AB2EC2DB3D",
- "derived_salt_first_section_third_de": "3EDA7B1E236AFDE2F0B8E59EA7BE070E",
- "section_salt": "A8AD1A2760C281658293991BED24B74C"
+ "derived_salt_first_section_first_de": "146332F0DF9B6701D5F6ED9173B966D7",
+ "derived_salt_first_section_no_de": "CA5CEB6D8BA41402859B0706E603C25D",
+ "derived_salt_first_section_third_de": "E93B2C310878FED27F89298CA9F77731",
+ "section_salt": "EB9DA18BDB815DBF4BF9906E8AAFB491"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "FB58F66D5008E6ED1BD918AA",
- "extended_signed_metadata_key_hmac_key": "262947556F6FB08E2F0D3DB3DD900E3464A9AB359682360FA6BF4647EA4A0F97",
- "extended_signed_section_aes_key": "BC845E9BD456D204F8FBE1F47130F857",
- "extended_unsigned_metadata_key_hmac_key": "2A7E6C2FE63C711C093CBEB842E6D7E0850A19C331BACAFF098A660851702B20",
- "extended_unsigned_section_aes_key": "1D1069C9AE5A3472B59CA0E5267D7CD5",
- "extended_unsigned_section_mic_hmac_key": "B6F563C44607C2E683F099C1061FF5DD5C65C333723A9531B8F6F415F6A21F9F",
- "key_seed": "8DAE1C64F3813B64E059D027FE87352067A3AEF200C5EB5EB3996FAC23B816DF",
- "legacy_ldt_key": "33DD85ABF11C6DCE85A2C8325D6401C86AD8091EE8CB4BF9758C8C56D8DA69023A24EE6E24E6CEA30EC3BAAE7F7BF9B2DEEFEECB39A23B05B073117CA4E46015",
- "legacy_metadata_iv": "69008525CD073D7494BD3F64",
- "legacy_metadata_key_hmac_key": "B46E96D71FFE9D836804C83A25ED6A2763F732BB87C378C38594BE11E47AE606"
+ "extended_metadata_nonce": "588AB130BE0197CBF1E240AB",
+ "extended_signed_metadata_key_hmac_key": "948A762DFB558385CDAE56420D2AF863F8AD6ACB9EC442775C20F1D12793D08A",
+ "extended_signed_section_aes_key": "FDFA11ABDAC005CD0C6DBAFE22CB84F5",
+ "extended_unsigned_metadata_key_hmac_key": "A8ABEFCD7AF7D09F7862E825FC5D641A23CF32210676F1CB8AFD375F180DE059",
+ "extended_unsigned_section_aes_key": "895814EEFA0514080381B2466C5560DF",
+ "extended_unsigned_section_mic_hmac_key": "770CD91393852E19BB1A5878B8BDA5E4B9AF9A0640856804C470EDE355DB0914",
+ "key_seed": "519521C296DA4C8A13A47835506AA306C9782F3F1C946D061616CA248E64CD9E",
+ "legacy_ldt_key": "84406D27E7717B520A082163CE7DF98BCC0261E8342C105F210C31FDE6B5521547E51414E67D00BDDDB57046564FD491A88E4C5CB913D28FDA7C972EA21A9DA0",
+ "legacy_metadata_key_hmac_key": "24032DA88D3510F18FEAF898A414BCCC55EF1E56350D07B6A4AAAC85AD09C863",
+ "legacy_metadata_nonce": "F0392AFD52B25E66D0D16B50"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "C826",
- "expanded_salt": "BF13548F8C621B59770F05D870305548"
+ "adv_salt": "AF9B",
+ "expanded_salt": "488FC6BDA553D9894C6C397E009D56F9"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "56D50B97F258DFD757DC1D5685CDC3D2",
- "legacy_metadata_key": "FF678C0893D2D8D7EEB163D316FC"
+ "expanded_key": "AF67A28D0088401BE912DFF010C7CD2B",
+ "legacy_metadata_key": "0A0692A83815A72C28C2E1A0C324"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8E88691DD95B74239B549D5FB70548A4",
- "derived_salt_first_section_no_de": "3210DF371ED0A11E0E4DFB81C270A5F2",
- "derived_salt_first_section_third_de": "51AACC038CD438AB820FEB0D9FD47FC6",
- "section_salt": "90632FB33ED905F4661BB042A17ABEF5"
+ "derived_salt_first_section_first_de": "B57FD4C4A95B5FA80E77FB0A4342B558",
+ "derived_salt_first_section_no_de": "804C7287DBC4705759D1543D3BB19796",
+ "derived_salt_first_section_third_de": "185B5BE5742AF28DA4D9BA8FFDC8E609",
+ "section_salt": "1D6723044D269740F2E422789242AD4A"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "E5A1D392B1BBEA8AADF3A8E6",
- "extended_signed_metadata_key_hmac_key": "9BD1C49DB3187A25CB3655B7F37957BC3A508A1B4BC756149C201DB4CD67B5D2",
- "extended_signed_section_aes_key": "F74A2FE4B3FCB7162EDE191DA30AB766",
- "extended_unsigned_metadata_key_hmac_key": "1DFA83367C1A685F3B13AEBBEDF53DAD8CD3DE29AC728A9C5DB427EE182A70BC",
- "extended_unsigned_section_aes_key": "4C1F5B710422759F615C1E87BF960F4E",
- "extended_unsigned_section_mic_hmac_key": "F7FC5A5C5BE1FEFE7CFC07DF039FD64A06A48481A02FC3D50A2E29563B1D172B",
- "key_seed": "68B17DBC92498AD7DC80900A9179AC976E28F0E9C55BF70A0330AF54002DDD8F",
- "legacy_ldt_key": "AB4E46FA5363638136B2B6B67D80C434E0573EA2044342A4FB8445A8BB16E116F1DF322A00C2F7ADCE4E1348384588D420C94D2024A3F66D39B4E2CDA88A163F",
- "legacy_metadata_iv": "32A978C7FC7A8F17D8B265F5",
- "legacy_metadata_key_hmac_key": "609F6AFAD9B0D4353396561DA23D37D9A2E8B165CBA39F0F15938202D26951F9"
+ "extended_metadata_nonce": "E4EDFA97754C39393AEEF09A",
+ "extended_signed_metadata_key_hmac_key": "AE6C660ACBE3D637F9D01CFB4EA927FF4B1DEB1446EB096688BCB54F5C1A5389",
+ "extended_signed_section_aes_key": "DC58AF65EDAB2BDB393DDD7033F781CD",
+ "extended_unsigned_metadata_key_hmac_key": "578C17FC68D03B2A9FFA8352C4ECD9D15DE2F97B5500DB4A9FEE70A93E28AD2D",
+ "extended_unsigned_section_aes_key": "573CC36574396A27D5CD12DE72470637",
+ "extended_unsigned_section_mic_hmac_key": "9D8CFA87DB083EF2FC4C495E6A7E3F8483C608A186AC9EFB6C22144B4A654034",
+ "key_seed": "A34102D098DBC12FBAAFAC0DE0F0959450DF888C7323AF55CF04B976E6B9152C",
+ "legacy_ldt_key": "78065CCC471C92F1328DF45AF7180DCF3073A56F599B861706DB9691DEE1580AAC1FBE1215CF24AF403A0BEA04E27C87E91E24DE63CB61C35576326B32A50F97",
+ "legacy_metadata_key_hmac_key": "E8B03892D17EFBAAFC23A96ABEF538A2AC1B34A9A76E5C32E70D67CA73491EFB",
+ "legacy_metadata_nonce": "889DB55C293C1227BCFA48AB"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "68E5",
- "expanded_salt": "A8C9676F80BD1CEF5B10102AC4E09618"
+ "adv_salt": "4644",
+ "expanded_salt": "8E7143D60063DC6AFF6A285C0CAED64A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "2FF1151352964731930122B592EEE6E4",
- "legacy_metadata_key": "59565A4BA64A758318FC2411644C"
+ "expanded_key": "B61F6E359C97537CC9B30A51581DCAE4",
+ "legacy_metadata_key": "D3E6FF7D90D25CD472C672173992"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "784112406C00A0518EF79B67826EE154",
- "derived_salt_first_section_no_de": "EE64094F8CD431010050FB09522AC49E",
- "derived_salt_first_section_third_de": "2964E5F126744A2563E9B65DF9254002",
- "section_salt": "C4EE68A6CB7636CCAD1474CBF3BAA916"
+ "derived_salt_first_section_first_de": "0CA731695CA701A5DA7CA3F15898E7B4",
+ "derived_salt_first_section_no_de": "C576F3146312E1744C5AAB5553880FD8",
+ "derived_salt_first_section_third_de": "39E3A93EEE518127370FD04B92CA2506",
+ "section_salt": "DC536229ABCC11D225875AFE64B192BF"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "3C158588200DF95A97D61EFB",
- "extended_signed_metadata_key_hmac_key": "E92E8DD400C3EEFDD0FBA0EE561B7395AC558E3678F52471FA9FF3FCC0AF503F",
- "extended_signed_section_aes_key": "5F96D90A65F114D50589A8C6F62DAB82",
- "extended_unsigned_metadata_key_hmac_key": "F5733B6EC45DD68F9E99BE55CB5A4E6E90844113B4F7CFF6650A834C704AFF7A",
- "extended_unsigned_section_aes_key": "560A0AC762AE8A1C5076664944C999E6",
- "extended_unsigned_section_mic_hmac_key": "7F3ACF4C5929E287CA396D0ECDD49A0E08CAB4FFF675353A596E9A9C97D42959",
- "key_seed": "0AB45365954891B064046D5023D9FDFA25531F65704B60D2F3693611BA926B2F",
- "legacy_ldt_key": "03B580AEB1CB9D399D73CA209740F14EE63BF2E199D4EF6C317B945D67F98C80D4A937B3AB729FACA823383072D721ABEC3CA57F016584AC566E6B844151994A",
- "legacy_metadata_iv": "A5948520200F2BB7513F5AE4",
- "legacy_metadata_key_hmac_key": "3ECD35B2977B2FC1022D00BEFF952B26378E3DE76DAD97B446F42BB2300EE465"
+ "extended_metadata_nonce": "D28B1E59115D3A1862CA1F90",
+ "extended_signed_metadata_key_hmac_key": "59A3E079DC5F8697219BEB4ED10CBD2BE60551E59B9FC30296574304026D05D2",
+ "extended_signed_section_aes_key": "15491B6EF07D98836A01228ED8225758",
+ "extended_unsigned_metadata_key_hmac_key": "ED9C566500737283B6CBE3288D119DC773E50C22A2736E0F95F6EF4BD583C67A",
+ "extended_unsigned_section_aes_key": "FE8FBBDB0EEEED2024B35F30E49E06B8",
+ "extended_unsigned_section_mic_hmac_key": "24EAB7D66302B766B2BFE287A784673467022D56E7A4706B3EE7BAE1A04787FB",
+ "key_seed": "09A152AA290EC4BF418AFB60B3F66BE866078A5F59FC3BB39728DC80EFDDC5A1",
+ "legacy_ldt_key": "E3265FA3C650A2F0DAF5CBE890CE5430807AD6C7E423858F4D8A47DACD39BD87C5439DC6D952CF87DBD0840736D5FFDF0EB5FE2661A9141B2CB3C8B28DBB7F77",
+ "legacy_metadata_key_hmac_key": "6497FF0A4F742EBD8C908673D696FFA289C2C1DB64434ED082F9D2C7D8862196",
+ "legacy_metadata_nonce": "21BEB33970139E57B2BB897A"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "B70D",
- "expanded_salt": "141139944BB60A8D8FE6D4990E7965E9"
+ "adv_salt": "DD89",
+ "expanded_salt": "0F01369801DE549FC4946F13D754CCE9"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "396AB173C4C600E2B61893CF0AF19930",
- "legacy_metadata_key": "9104A5DA1BC3168DB11EBF59DBD8"
+ "expanded_key": "EA4CA525B09663EBCABF017A6AF3FE89",
+ "legacy_metadata_key": "0D4C5F0560894C41FA9951DF6EE3"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ACFB592C026F4D33710DAE4BCC867F3B",
- "derived_salt_first_section_no_de": "3F28A51F93C2AC16B3239C8A977879DC",
- "derived_salt_first_section_third_de": "1FAE2C922DC303F18BF54D7D113AA3C7",
- "section_salt": "296639A30006771BF7DFC70FEB0CAED2"
+ "derived_salt_first_section_first_de": "621132026D7F9CCCF26A682B7761183E",
+ "derived_salt_first_section_no_de": "24DAE7CEF38D92425B0C2C94B88566BC",
+ "derived_salt_first_section_third_de": "813BBB1469B4319669B8093FC8FBAA15",
+ "section_salt": "42D31FE0C4495AB88C2CC34728DF59B9"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "2DD0722695F4E2BE80EA7E14",
- "extended_signed_metadata_key_hmac_key": "E40CBD326A57A60A57B04B497030D5AD8ABCED0316F2EBC5F2AD66627746118C",
- "extended_signed_section_aes_key": "A4BA6596C4068855B5A7F72F7F5C84A3",
- "extended_unsigned_metadata_key_hmac_key": "90243CAACDA7D8701303AB8D5741E6CF54CE2670FDE337D3839C65F17D24036A",
- "extended_unsigned_section_aes_key": "3087DBB861BFCE2684E7A47E1DFF95A9",
- "extended_unsigned_section_mic_hmac_key": "37CB85B98EA126D0F770123C3CE2FA247D5B4944688DB0DE810A96ACCF08C2E0",
- "key_seed": "B1A51F13DF87FB973D93A6A5BF1F2D0C38AD7AB8531196C9DF70EE0AED820C9C",
- "legacy_ldt_key": "109F917640402FC3456E706CAE9D18254E924D1ECC696D308B984FC13DC08F6B8421B5F7985DFBBA1B969EC4DD264B04FA6D2DE9144F43DF0A82C710B31208BA",
- "legacy_metadata_iv": "485857191CAEFA67AFB50618",
- "legacy_metadata_key_hmac_key": "84BA2E076CF4F5999A9B87C4F0294D670336606C1B06A74C3AEC8E3BC7277F04"
+ "extended_metadata_nonce": "99E72102DE2485A8CD026DCF",
+ "extended_signed_metadata_key_hmac_key": "49534D2085653D32DCBD06492CE860375D41A3D91C5517D98759257E6D22D46F",
+ "extended_signed_section_aes_key": "F7091AD2941314A7934D2C74D2D2CB35",
+ "extended_unsigned_metadata_key_hmac_key": "A0BA2094C1CBDD22854EB846FA4DDEC387B0C1E13A7BB833C6E7110ADA47F6AC",
+ "extended_unsigned_section_aes_key": "ED03585313F4DCE95E765913E100E591",
+ "extended_unsigned_section_mic_hmac_key": "EC361DD6B444EAED4BF342CA6479319B2FA391062D6E627A50F40730EFC50B5B",
+ "key_seed": "154EB89F568C5D04EDC4AB0A61DD783D0EBF04437A188B2175B495C8D5019655",
+ "legacy_ldt_key": "171DEF9D37747E6F9D6BBABE17B2F7E049608D67518DE48445AD0FD1901F6016C95AEFBE451AE7E256541B8307A16A7E0B7D259219DC81D4985EAA3FDB743E44",
+ "legacy_metadata_key_hmac_key": "9BC8F5BF79FD354DAE71DE2CA4B91AAC36D6A875D3287D721D3EDB4AF52AB3C5",
+ "legacy_metadata_nonce": "A5C09B3E1E02FC388CE5D124"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "A36E",
- "expanded_salt": "6D0D895907EB0C363ABCC610C313946C"
+ "adv_salt": "42AF",
+ "expanded_salt": "D2BB747C495DD8231531B9149C9C866F"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "BCF45287C8E2C64991683EAC8C0B8695",
- "legacy_metadata_key": "4990779D28E61B9F2A7A82A8D3F5"
+ "expanded_key": "7831F6B9B71D322F74FA91734B8C193C",
+ "legacy_metadata_key": "6C33C973C499174E058F63F0D59B"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "670C8F19BA195DBB63FE58C4F8DD4001",
- "derived_salt_first_section_no_de": "DEDB4D9827FA3F2F2384DF4421FF88C3",
- "derived_salt_first_section_third_de": "50E241203AF847156068FB50E70BFF82",
- "section_salt": "57EF0E9229ACEFEEBB2E6ABDF4765019"
+ "derived_salt_first_section_first_de": "3D772AF59FA77F172C0C61E75864316A",
+ "derived_salt_first_section_no_de": "45BDC255A9DC922C4D816CE216609E29",
+ "derived_salt_first_section_third_de": "C7256E328AFE8C6ADAA9007494408E01",
+ "section_salt": "3AA898649E58CC9FB5D7CC5FC9B26C7D"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "38B0F7A9574749FB614D2594",
- "extended_signed_metadata_key_hmac_key": "2A5E56264E93BC69FEEED20BC6797D7410EDADCB1BDC808BA1F7D3B74FEA1601",
- "extended_signed_section_aes_key": "F11540E6A4D4A61259735F7DA5A501F5",
- "extended_unsigned_metadata_key_hmac_key": "8FB2C0F4517A27746D0458B1B6797A06528683A8C217BA37A3EFB0DD684573E0",
- "extended_unsigned_section_aes_key": "32EC577B0CE41E2C5CF8702025AAA5D7",
- "extended_unsigned_section_mic_hmac_key": "103E3B5AA3A805D6C441813578118EDAE37D02201DFB9B68CBF3B00A0E1C9330",
- "key_seed": "10F754D655F194FD10E1821717336BCD15926299DE28EA6400CFC15B94AB2CD4",
- "legacy_ldt_key": "84206B7E51452E9E24EEF6CA6726AE84B3FFAFBFCDA60B27634145315293034D6A7EC3F279F0238357BB003815FF3BB5A0D82869C88B19913BA554FE6412FEDC",
- "legacy_metadata_iv": "6D9D00F190D1096CEAAA3147",
- "legacy_metadata_key_hmac_key": "990E2149008636C0DB2048E138FFACD4C843F91E4087E62E227FF7455ED30ED6"
+ "extended_metadata_nonce": "EAA31B86CCF3CA56AE358D43",
+ "extended_signed_metadata_key_hmac_key": "52DFF69B372CDF7A4E4844CFF34AFF3B97EAEFC323FD0BFEE409062D8D283ABA",
+ "extended_signed_section_aes_key": "51AE16500538B6819A646EB9AD330FF4",
+ "extended_unsigned_metadata_key_hmac_key": "8772D7EFEF2CA10A882DE8F73A4F5949575BF58E5293FEA863ACBABFC7E12EAA",
+ "extended_unsigned_section_aes_key": "70847AF7A37D9C84957AABC667F6F066",
+ "extended_unsigned_section_mic_hmac_key": "5E659C4B61ED807910D78AEB440F13CA494228B7F0332854B2D54C984254BFFD",
+ "key_seed": "314E89C6DD5D18FE4B824727DFD96F2844000FE144F0BB3AB004B4A8584DEA1C",
+ "legacy_ldt_key": "4E0F8B2D2B62F991AC23EEE229F133DF03674A412318DAE3B7D31B1EB3F5FC1394FBF81FE0CC0088C08624C058F8A4F5069A6B7DCFB26B2C24F59FE8999EADD6",
+ "legacy_metadata_key_hmac_key": "F3595FCB9F437ED53C7BB6D2A52EB890BCA1D8B823722383D76830B50E58086F",
+ "legacy_metadata_nonce": "BE5139909CF99938E465B5F3"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "BD56",
- "expanded_salt": "4CEDF4787968E0686B53BE2882C1D939"
+ "adv_salt": "E9D7",
+ "expanded_salt": "8143B10A7353AFD1884BD8652E38C1A1"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "50BAD2F8DF6026307B642BA45813017E",
- "legacy_metadata_key": "DB37799A802ED605CA34FF0366DB"
+ "expanded_key": "22B61200D9EEC2A81E8FAC74ADF6F9E6",
+ "legacy_metadata_key": "6EBCAA307ED2B72FFD2CD6F249C5"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D0581F6863D2C0D240727C60E6875A69",
- "derived_salt_first_section_no_de": "84E9ADF7695F1C3F457F6301D1613176",
- "derived_salt_first_section_third_de": "868C45991ECD4774AAD78B6F46344597",
- "section_salt": "FCCB5D9CEE6AFCF0D28D4B299ADB8440"
+ "derived_salt_first_section_first_de": "9D4357DFBE20C028112104A515ACC3E2",
+ "derived_salt_first_section_no_de": "A23C5D2DB650AD57227C15A86F1BF40E",
+ "derived_salt_first_section_third_de": "7A4B1899973D71DDCB4F92E1665072B3",
+ "section_salt": "68C6FD12C8C56CB58DF60455A0FE7AD1"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "7946C4BCB31D2C8F583D0E70",
- "extended_signed_metadata_key_hmac_key": "7E26E70A5F042773C07E7C1097B52D7CD96A00559DCCE41EB35C54149CD373C4",
- "extended_signed_section_aes_key": "49D898BFDF92F70F6F5177C12AA2CDDB",
- "extended_unsigned_metadata_key_hmac_key": "4B749B7364D8039CAE76CA41EA1B0DB296DD8D313B18F8222512F3E1014750A5",
- "extended_unsigned_section_aes_key": "C4C722B6B5CE2ADE5916F2A90250219C",
- "extended_unsigned_section_mic_hmac_key": "6194A5EBC5C8A703BBC0CB362B877CD2F934C21BC4D13C0C801B68BA280097A3",
- "key_seed": "CD492582B8304E3FE4498C5B956F8762B1D20BD5E30C80613EBB5CCC92C0EA82",
- "legacy_ldt_key": "5A05C79BD54C8B6E8BCC5E69C26475DF46B07EE1B08FCF6202B70C1DA3E3268599F8F3A6D4A6902E2C894ECF33800214D4DD931DB78DC774BDD5EDB9447BA014",
- "legacy_metadata_iv": "A802040CA363ABE9D5E5023A",
- "legacy_metadata_key_hmac_key": "89E650619677DE3A5E351D5641E0D826B358A0F1C17DF172AE000411D0528700"
+ "extended_metadata_nonce": "76EEC201AB36A236EC186625",
+ "extended_signed_metadata_key_hmac_key": "A0F331B488ED78B4190BB62063B6A66CDA7A3503E1CBC08368E39565C307C062",
+ "extended_signed_section_aes_key": "BC854924304C1F14181F985F2A7875E0",
+ "extended_unsigned_metadata_key_hmac_key": "0A298E55442FA855F3EF35E748D52E1EABBB0FA1B3E17D24957F964F413A76B5",
+ "extended_unsigned_section_aes_key": "6ACFA834A2FA81A1A4A7D6DB9988078F",
+ "extended_unsigned_section_mic_hmac_key": "B34EFE5E312B504B811E32330C120106154D5303F431DED9FB1FC845C71CE193",
+ "key_seed": "FFE98778134B058DDA1C17F3B368FF6DE1C9FCE69BF5AC63C133177E707AB259",
+ "legacy_ldt_key": "976F3552251D50BB5E6B10A291ECA51F7E5C0C62F13035B55420530F464364C74CB41036BB8294CA2A438F946EEF622071841005B6D804412959092ACDE0A22F",
+ "legacy_metadata_key_hmac_key": "1278970FF627F1F077A0AF1C370317EAA0CCC33843B47DCD94C59A908069A70A",
+ "legacy_metadata_nonce": "23C0DB064837D54FF3883DFC"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "6C1F",
- "expanded_salt": "76A04B364EB7A8D434B4238B5F383B41"
+ "adv_salt": "F2D0",
+ "expanded_salt": "BF636415E72B8974D9CEA57DFBD9713C"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "EB4E5B2778BB5C19DD56B1C6C0674CD2",
- "legacy_metadata_key": "A0D31F9E96B4BDE78E5C62D9DA54"
+ "expanded_key": "869D047A3EFED540B16C867918B5CA06",
+ "legacy_metadata_key": "D6C78751DF42B853DCB42F723B6D"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C0C3ED3DC68C39593C6C408B086F203C",
- "derived_salt_first_section_no_de": "6410190F3C49002275D9EF0DA88A09A1",
- "derived_salt_first_section_third_de": "D38659DC74D9E80FA0E29BEC552D7184",
- "section_salt": "E92AED4669EABD0425F55A95A6994659"
+ "derived_salt_first_section_first_de": "F6AF11DAE90B198388EA1D778C10CA4A",
+ "derived_salt_first_section_no_de": "3AEC2DD5E0D29A9EE0DE8B6C00DB2285",
+ "derived_salt_first_section_third_de": "29C1901D0646729360364695E47F59AA",
+ "section_salt": "B0955AB7ADF6FD11F1AAECB1A777A329"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "1F6BC6B08ACFF3B79EA1E25B",
- "extended_signed_metadata_key_hmac_key": "2249CD17A6BC00DF85C56695B519498DA56726A2F551C612C705845606C6E920",
- "extended_signed_section_aes_key": "B32F981FC641EA5328DE205F95CCD391",
- "extended_unsigned_metadata_key_hmac_key": "0D32C1884BDA456C0A0962B4F5FC5FBE962BA42567ABF4E60F1B4DC6E3FE3601",
- "extended_unsigned_section_aes_key": "F98CBD4F915DA89BB2B6411FD4233B21",
- "extended_unsigned_section_mic_hmac_key": "A6C0F2BB140BB2DF4D31718331B11F29C336A81B9F42C81A90A30DF7FBCE0059",
- "key_seed": "60D90B7577D8918CBDFE3825FA0746B027CE414769E7CCBDEB06089951D24046",
- "legacy_ldt_key": "2480D6F753C9520DBA39BC557EC1B2A8533D75055264D9C29276F56A7C4B8FFFBC56DC5E3E796CAFFBB6721FF7CCCA425E6E8CFD7971BF991E6F20C782F8F688",
- "legacy_metadata_iv": "6E984AAFE8D651E29C280F4A",
- "legacy_metadata_key_hmac_key": "B8A4B5324ECBCBAFD192A356C3FB29D2B0D5B03BA3E600DEC5187E5ED397F32D"
+ "extended_metadata_nonce": "E1CD4A0A0F44E1B9EBDC99E4",
+ "extended_signed_metadata_key_hmac_key": "B2EFABA87A2E8BCC4ADB9CA2C94B425E824A0B9E9ADE39C000E7AFC3D4084D8C",
+ "extended_signed_section_aes_key": "A59CFDB9BAB8A6774B67B80F1D5EB576",
+ "extended_unsigned_metadata_key_hmac_key": "E975F5B3AF3C931B94F7D7ABD332BA9AF8C40F822BFBE93685714E49FA34BE81",
+ "extended_unsigned_section_aes_key": "B9E68CEA1E1836ADA1C2B6F72F19814E",
+ "extended_unsigned_section_mic_hmac_key": "9054020C39D0AC975FA1446386B282FBA102D3B13B94E06751182223E8BACD20",
+ "key_seed": "92CC48D1E46FD37FD8D92063C275E5601F7956B1D79EB4DA6406989177F795E6",
+ "legacy_ldt_key": "79873B89C6801423B759014737AD82E8774EFC2648416703942B31D831438D9C7AE96912B7CE48F10A5A81222BFD11E7BA68188FF8A68594ACCC5F3EFD183376",
+ "legacy_metadata_key_hmac_key": "DB7883B5FC9939D08A478BA41CBC8D205359391813FF7AA1B1CE8E5446835005",
+ "legacy_metadata_nonce": "CAD17CB88CBB262FA2648FAA"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "CD61",
- "expanded_salt": "9FEDE3601292F72594E92DAC4A711966"
+ "adv_salt": "2760",
+ "expanded_salt": "ACE0FB227A299B29532B691723192E4C"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "69C898A6A277E88D5D64F35121291EBC",
- "legacy_metadata_key": "54CFF959FBBC0B2CDEB97CFF02AD"
+ "expanded_key": "CECFCF062962713BF67A2C253C34C430",
+ "legacy_metadata_key": "514B537E9F65528BB70C726EAB75"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0AB3B4CA45FB463BBEF7B51269697936",
- "derived_salt_first_section_no_de": "15345F69B755EA2EEEB9A96A036CC872",
- "derived_salt_first_section_third_de": "F22B6D83DDA9FF7D0C11FDE0450A2289",
- "section_salt": "F4D6A5B2153470A69A5DE681F31F9C05"
+ "derived_salt_first_section_first_de": "711E72342E2DF4D9DB3E21CB79E15B1A",
+ "derived_salt_first_section_no_de": "4AF7B282B09493FE2AB824CE11CF5A3D",
+ "derived_salt_first_section_third_de": "BDECA0D713545F2C06E92ECFD90F32FA",
+ "section_salt": "5A7297E0F00FB0AE50DB911EA8320E32"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "668A51EB753BD028C0B18352",
- "extended_signed_metadata_key_hmac_key": "826E42AFF45638682F49AD5FA634AEEEB3221E1E7AFB42CEC5A5C89E13EDF5C4",
- "extended_signed_section_aes_key": "85F119ED61960E7812E2EF612EEB1865",
- "extended_unsigned_metadata_key_hmac_key": "DAE1518A7E276E7128D9C8EFCF1E62CEE39DF8B026858414A8D84AF19B24758E",
- "extended_unsigned_section_aes_key": "47FAAA637CAA1145128AB426FE8A0B98",
- "extended_unsigned_section_mic_hmac_key": "9D5A91D834DCEFD863AF24540CF0FA508B7E31B935BCCA674033A99369948D07",
- "key_seed": "1392B9A9D5863CD2ED4E3010CEA900931D874B95CD3DC8C6C5715E85EC0F2945",
- "legacy_ldt_key": "38354658FC8E6AF1A9AB3C30649E50F54B30CB582BE2E0FE420D9792458FE365EDB815B32F0FF63142398915EA3AE6D8878525040B318AE5D94B340CF3ADB682",
- "legacy_metadata_iv": "549497D49576BE17A4AFC198",
- "legacy_metadata_key_hmac_key": "5CB3AA1182A18209B0ED97B741803A38088C11ACBAA3D1DC75FF46F097FD4F9E"
+ "extended_metadata_nonce": "53C12B415D361B1E7CFD2BE9",
+ "extended_signed_metadata_key_hmac_key": "1A903300F25E61572D66E6F92E4F20526EFB141748AC018547F164847EC33029",
+ "extended_signed_section_aes_key": "8EDD20D6C52E46FDB3005E2F11D40E78",
+ "extended_unsigned_metadata_key_hmac_key": "51AC4D0DCC343FB2A8442E497D086767A0F904FD8FF0C2F5C1C3C7F462E2690D",
+ "extended_unsigned_section_aes_key": "DDD633E7ABBC286E409104446AACE0F7",
+ "extended_unsigned_section_mic_hmac_key": "57061A968056E7ED330F1C8F65242B18335B0203B3AE5F863F861FBA07155CFE",
+ "key_seed": "9E095A9E979E0556C03FE1276821A0905A530027A4E48B445FF150DA40A47BC5",
+ "legacy_ldt_key": "74EDD1187CF248366FADC5DD69BB431EDB9FB39621221F62A67FED5CB3D0129EE8B5526BEEC86BC1CA0193239184A23D70D901B12F89079E1560A25AC839F6FE",
+ "legacy_metadata_key_hmac_key": "5B34A6319FD27843706A8E1A7A1E779200E3D9BE8DA1246CC5E32D88DE816486",
+ "legacy_metadata_nonce": "F23109B82D2099F6F94B4C88"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "2E0B",
- "expanded_salt": "1A255ABBCDF9654A1993EBB82A3E5835"
+ "adv_salt": "FE58",
+ "expanded_salt": "9C7EA9924564F03D6340019D4BCBBA47"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "DB11D8AF1C25396EF6B5085183935678",
- "legacy_metadata_key": "E1D0C8EFB76B4B18BE79E8DC9035"
+ "expanded_key": "439B31109FE781639C510638CD037A12",
+ "legacy_metadata_key": "1F22EFEAA64F55866D64968A732A"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "25BBA6152FCAC06FF872AFC7B077A1EE",
- "derived_salt_first_section_no_de": "ADF7975924E629F8F06145ED8CF3A6F0",
- "derived_salt_first_section_third_de": "EC831B81A2A70F38B0880DC0D30D00F8",
- "section_salt": "D17D8D478E5B033FCD5FF8C5F58AEB55"
+ "derived_salt_first_section_first_de": "F1CA484DCFEEEAF8652F00199C50A97F",
+ "derived_salt_first_section_no_de": "9F52A5DAA201CD3307BC80F9A3FF5A64",
+ "derived_salt_first_section_third_de": "BCC55DC7AD531D04D24F88CD03FC9947",
+ "section_salt": "96E68F69CE0AF1CA5947D950AC03167C"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "87BCE3BAE82D0F95D189CEFF",
- "extended_signed_metadata_key_hmac_key": "A2953180F297F101FAA8C412065283403E073B9F57EF37082D641CC973041AE7",
- "extended_signed_section_aes_key": "51B3CE7EF2A7C0394E8FCAA3F08030B6",
- "extended_unsigned_metadata_key_hmac_key": "977DDF77D4512DE863CEA4E52CEE4DF30B73DBA7AAB90F422B3C446835F9D321",
- "extended_unsigned_section_aes_key": "20BE1BC32B4E45AFA5DB576604B36F0A",
- "extended_unsigned_section_mic_hmac_key": "9A35548CB0F7E64490B867825580F937C001AEA050C2ECF8C034D67ED04F01F4",
- "key_seed": "7A2DE87834F906F57B68B05226023812F019109C33D60903617A0F007DAD03F5",
- "legacy_ldt_key": "9E575C6F86251C3CB60493DA89D9F70DBDA478F5A712D29C39A0C7AC92AC0D902A8FFF2EEA0EB74F73B41687C1B822C66F60174DB1B72282F2611D30AD9C299E",
- "legacy_metadata_iv": "D478B0CCFAD4B645078D1E98",
- "legacy_metadata_key_hmac_key": "F3C4F81465E5BD9A5ADD279A5E0FAAF2F4AF6A4751DE341E40FFC75BDD15CBA7"
+ "extended_metadata_nonce": "790DA0B3358A34B85EAC7667",
+ "extended_signed_metadata_key_hmac_key": "8CA9AA70936AFBCBABF150D6E5B27AB91974D4B039CCE5C1F3AD7CD09B124F08",
+ "extended_signed_section_aes_key": "9B148D55787368596D67A8536F89214E",
+ "extended_unsigned_metadata_key_hmac_key": "2497B036129D2F25F43E6838495CA54DA3E39DFBD80906C945F1C536CA8B54F3",
+ "extended_unsigned_section_aes_key": "680EB9CE125DA2B614C1768023E69C8D",
+ "extended_unsigned_section_mic_hmac_key": "4FDA73846885210F5E42B57D32C559C5C176B4FC17A5DE755E9832F7473A6615",
+ "key_seed": "1C21EF77FDCFE2F77ADC1687CCB48A85C71A6D53E8BBF9C445F9A81E44C96010",
+ "legacy_ldt_key": "65D36DD12CFA1D5985EBD4547CEE55D85A439A6879A390A114E8265B52DDC19071E346DE0F8AF67D8D91B506399043DE945F3B61F0698D58E80543BCD6FB57AF",
+ "legacy_metadata_key_hmac_key": "7D96F6A20DDE772C03F269C6B5D1851A569C300D5B0277B7AAEF6EB9C71C884A",
+ "legacy_metadata_nonce": "3E4300FD8F982F491BD335EC"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "15A2",
- "expanded_salt": "76FC92E801752A77DAD82883D87175E6"
+ "adv_salt": "9CC4",
+ "expanded_salt": "61B568A967985A5611EF9256E29E9894"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "273E3A4EE5FDCDE2124CBD43317EFEC3",
- "legacy_metadata_key": "8727F2AED267DC3E5BF3EFD53066"
+ "expanded_key": "D477CF6201CC1CADBA21370D16760F8F",
+ "legacy_metadata_key": "50841355894155E171A91BD507A7"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3E6EFFBFC5A90B15C34D984095284ACD",
- "derived_salt_first_section_no_de": "B3D1B2B6B5A529ABE81241ADD6429A97",
- "derived_salt_first_section_third_de": "5A512C6E98A11FF02A029943B1CB172A",
- "section_salt": "C2A2E1796ABCE73210BDC97FBF995E6E"
+ "derived_salt_first_section_first_de": "DCA35224242C81D062E2D7806C58D0B2",
+ "derived_salt_first_section_no_de": "54EF44DB16594004E554658EFA470231",
+ "derived_salt_first_section_third_de": "001814C42510FCD65262A3B4CC145933",
+ "section_salt": "B601766283CBAE3A4CE5C7DFF2A0DA74"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "1A76121A0A9F4FED38D81D5C",
- "extended_signed_metadata_key_hmac_key": "0FBFCC6AF0F9E0E50B5952346A489E3D862825DD1E38F47A2AA91B1282B41E54",
- "extended_signed_section_aes_key": "A3812765AA82126B31A555C584250977",
- "extended_unsigned_metadata_key_hmac_key": "4378A8905EC3CA02672B7F9FC86B976E863AE63080BF15BEA8C21185CE7EE33F",
- "extended_unsigned_section_aes_key": "145E63232DC3AD144A0ED27EC3C7F6FF",
- "extended_unsigned_section_mic_hmac_key": "932F8474A3C51E1568A31CE7643C80B5A8C091BD0E1AFF97E9803595C9D2F354",
- "key_seed": "08EA9C999C05CAF903E1843FA84563D191EE4DE24A7B7A0B3B70139BB681CABE",
- "legacy_ldt_key": "566FC3FC1DB1039AA3D3D0B4F972F8EA191E74F16B02600537B5DC8AD8C6AD94DC97F019190E624717756AF71022FA1C2DAC16DFC9E749773ED79A41F58B32F5",
- "legacy_metadata_iv": "18A9735D6186080B59857903",
- "legacy_metadata_key_hmac_key": "4D79E51620039F091ED24BD630BF5D241662022496CBE6EDB3B2EBE1BB96E893"
+ "extended_metadata_nonce": "A15525217C62F032E6D54151",
+ "extended_signed_metadata_key_hmac_key": "298E19377343EA2CA328F5BFA39DC8517F1C426BDA2171E0A09208C39BA50145",
+ "extended_signed_section_aes_key": "2167A0F9007EB1A8EFED8341491C5B68",
+ "extended_unsigned_metadata_key_hmac_key": "2219E955FC16E04FEF31B79E0C620133CC4BFE2CD2CB6FDFB756DD88FDBC0799",
+ "extended_unsigned_section_aes_key": "1F7AE997F2B6D9AE904158DDF91C7A62",
+ "extended_unsigned_section_mic_hmac_key": "4D3627566109F030079FC771DED6D567F556A1FB703A89C51FB76C2B59FC5443",
+ "key_seed": "121462ED1B16BC8682D880878916CDB81CD7E7556FEEBA1FE22210D2949F0931",
+ "legacy_ldt_key": "0EF6436C70F2797E08DCAE6D368C1C3EE7B8578572EA873C8B7C185D8CD1616FB0F33F4632618E4A60B9B6F9FBFD7D34655A50C444995C7059C93DD28AF58176",
+ "legacy_metadata_key_hmac_key": "184A3999BCF8CC12D37D4013D7822C64A11CE426267A0271C1ED53E7E8DB1000",
+ "legacy_metadata_nonce": "78C1769887FDE04453C81658"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "3ED5",
- "expanded_salt": "39B400D649A4A745CBF27A7B47035ACD"
+ "adv_salt": "296A",
+ "expanded_salt": "F44EA8B30FD9F999BC7E31C8130892C3"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "D3B149763E3EE8FEAD8EC111733FD10E",
- "legacy_metadata_key": "16ED7B0D75664D96929A65FC5174"
+ "expanded_key": "4299BCBB2412A71215EDFBFE1F8176E7",
+ "legacy_metadata_key": "07C4A089310EACCA1B3BA2D4EA94"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D7B3DA59242019B93C2DFB87D0A751F8",
- "derived_salt_first_section_no_de": "0E2671293887F02329DD299921F19AB2",
- "derived_salt_first_section_third_de": "E398C7DD1844670AB709529A9B3908B9",
- "section_salt": "6736970D6E3BC5052562C41F170BED9A"
+ "derived_salt_first_section_first_de": "F3CAEB25DC97A317A38C99E7F1438E1F",
+ "derived_salt_first_section_no_de": "EC4686E3C2F9A5AF8934C8EADAFAEB6D",
+ "derived_salt_first_section_third_de": "921DBFBA6B75D60A97443F20A6AE5779",
+ "section_salt": "F3A5EA6D8CC24F111F84B17EA038A2FC"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "EDF0F2D10A06D707660BDA97",
- "extended_signed_metadata_key_hmac_key": "1E2CF2800F29C3534C0DD7BF4672F8F411A7B8168CE7035D4530582C8D00511D",
- "extended_signed_section_aes_key": "E97E1FFDD4C1D6BD09A4CE45FA5B4838",
- "extended_unsigned_metadata_key_hmac_key": "9727DBCAF3F089C3355BACD127ECB1DB4867B55B7A68C83B6CCF84959A3DEB1A",
- "extended_unsigned_section_aes_key": "0586B148328011E0C069C45D2E2BB509",
- "extended_unsigned_section_mic_hmac_key": "FBFA83ADD7514B408BB07A0CA352A0B3BDEC1C5528A5E4DB79505C06C4499E59",
- "key_seed": "4A69CC002C4ED3207CB2DC23B3DFFD39F37F488389C2FBB25243546DC54B15F8",
- "legacy_ldt_key": "D9B4FB5B5322D32E8B96DFE534B04D7F425AC2A55FD76736C6EE237CBD30041F0D1A384FEF06C8DA79DE346B9D80509C256F0B56F4ABB9C8EDF3D5A51E7F7B33",
- "legacy_metadata_iv": "8B5DC630DFFB93CA8EBD4ED7",
- "legacy_metadata_key_hmac_key": "C372225AAD48A5ADE3D13B888F59240D72DF0230A6D66E463666506C9C961E91"
+ "extended_metadata_nonce": "944F676AE58D1738571A6988",
+ "extended_signed_metadata_key_hmac_key": "D5642BD297591472FEDD16557F86D9FC98701FC19BB83E24A87EE5D31314CCF7",
+ "extended_signed_section_aes_key": "B2FE576CBF190EFF36B7DDF428D08806",
+ "extended_unsigned_metadata_key_hmac_key": "80E4277B7C98DE76783580F99D7AFFBD0C939069E129FCD2A451DE2A4DFB347C",
+ "extended_unsigned_section_aes_key": "84AF72363AC42837703E0233DA58AF15",
+ "extended_unsigned_section_mic_hmac_key": "309CEADE18269614513CC150680E07E79A395BFD00966021D074AA51D5DBB0B3",
+ "key_seed": "174C6D54B1B0CC84774E8FB9339AC57933CFEC2D78A57F66268A2ED648C79D54",
+ "legacy_ldt_key": "FEFDC3138EC8C0F7CC34C171A43E9AEEBB4A0FE5EAADC607A9D6600D8B9B54D207A2BC90D0B38DD989EB57AEE3A21F11DFA1C22F8DEEFCBB84F14DE16706CB5E",
+ "legacy_metadata_key_hmac_key": "181967500164E896A23C22E206E00208E0A82CBF97B839DA87F9C3EC5759F1EB",
+ "legacy_metadata_nonce": "0688E75E1B921F995491EB07"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "AC47",
- "expanded_salt": "AEEB6BF5AC68EA6C69098CDAFB771408"
+ "adv_salt": "BEB5",
+ "expanded_salt": "C401AFC676735287424E9F7F0DF237B2"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "4F79E4223701491CA6C77FACD17D51FC",
- "legacy_metadata_key": "D36C137C99A368ECF5B92507D688"
+ "expanded_key": "8AB09C04AC42D4F4E123FC884885C595",
+ "legacy_metadata_key": "191530A2A7F75BBDFD7777601AE1"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D77ED82A369C0A9430D15063394B4D8B",
- "derived_salt_first_section_no_de": "5D548892AC258D29A0DDEFB62F274423",
- "derived_salt_first_section_third_de": "9EA1F64B754021805793A5E2433F5EE7",
- "section_salt": "3D67E928DD8CF6CB3305C3C3315858E1"
+ "derived_salt_first_section_first_de": "99D022786E9CC9AB870AC2FF57DA80EB",
+ "derived_salt_first_section_no_de": "01E17F91C55F51BD79A72463BC8493F8",
+ "derived_salt_first_section_third_de": "AE2DCB3E34AB81BF22F460D7546376F0",
+ "section_salt": "3E1F652AE28F8335D7B15864E9F7CCF5"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "3E8A909E3A3BB1A9BB6EE2DE",
- "extended_signed_metadata_key_hmac_key": "93FB6962A30A4B064E0339FA4AB087F162EC877EAD19B4DF5896DA06F925557C",
- "extended_signed_section_aes_key": "3B33A60DCFDA14A378437A6F5B72D147",
- "extended_unsigned_metadata_key_hmac_key": "20B7A83E9FC2A346D971560790E9A735ABBE64F8DA3852EED451D95AC7F41D1D",
- "extended_unsigned_section_aes_key": "E40330ACF25A8025EC937FEF61508425",
- "extended_unsigned_section_mic_hmac_key": "EE4ECD68F0E6283CB6A46EEC18A119804FD031DE5011D874F18D32FC9F65B62A",
- "key_seed": "12491A6B02C3FB406B108816802FBF127360D5AFB723769E36304CC74E2D5E22",
- "legacy_ldt_key": "AD0C433EBC56337D4C3A8792B3DC26BBB839612B93B3C8FFDBB052A5F77AC3E6BDBB087B1A81903AFD710BC5CFFD5CA08A33EF9EA6101EAB6A2FCF616D8E7283",
- "legacy_metadata_iv": "3B707F3CB33702EDB96ABC6C",
- "legacy_metadata_key_hmac_key": "4C88609AE3AC39C2D2C0DBD731BDA48DD3241EA64FE38F220C88DE6EA0324652"
+ "extended_metadata_nonce": "F3ABE0F91D65A95957CF2AD7",
+ "extended_signed_metadata_key_hmac_key": "0F4E56038ABF9ACAA73EC95395B337124A89ACC20399E1DBAB7F8F73182BC107",
+ "extended_signed_section_aes_key": "13B7FEAF3CD5ABF9905CDA55AFDDEFF4",
+ "extended_unsigned_metadata_key_hmac_key": "B42A14360C1128B0B4AA1D99E89B32F4D13D2C8A191EC5E58DB841EDDC4ABF76",
+ "extended_unsigned_section_aes_key": "3AE1FBA492CE6D8854923EEAC2AB8A17",
+ "extended_unsigned_section_mic_hmac_key": "9FF77BD8BF275AB41652950CE40976102A641CE5CBCF346A9E755281FC0259B3",
+ "key_seed": "9864ECFD656E7B608A63883FBEC4F62E8E6F7A3590114C39E036AEC87BECBE41",
+ "legacy_ldt_key": "8FC7B079C4225368931B03C4814EAB6DC02175EF1873B1A224CFD39B9CD99814417A884A2FDB9D324747F55A9BF7758B22C2C3113D06ADC373B0A47E925FADF3",
+ "legacy_metadata_key_hmac_key": "493B6E99413B5E07771053F536EEB8DBF169B4DE6E78EE341E1627C5055200B9",
+ "legacy_metadata_nonce": "B4245B6A65DA3B698B64B9B1"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "31FC",
- "expanded_salt": "2347B739031587FAC32D1CDAC07E2D5F"
+ "adv_salt": "8C5F",
+ "expanded_salt": "1E634D3633DB16B5698B53B1FAC7318A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "62B921983F1013469C9C70ABA6B01A06",
- "legacy_metadata_key": "21883F0402647E744883EF716FD8"
+ "expanded_key": "ABACBBEA70871DA67332DAD622F9877E",
+ "legacy_metadata_key": "711C81AF55689C9F41F26EC0B3D9"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BA079252BAAA33749A234C5FA7790C96",
- "derived_salt_first_section_no_de": "85A477C4A83CA27D3B34F508D20D8ED8",
- "derived_salt_first_section_third_de": "B9F438DED09E0E012C9139F8758211F5",
- "section_salt": "C9B5D48F58F3DB42DC74C09DF7127629"
+ "derived_salt_first_section_first_de": "D42F8611248F16803F100880FD2C40A8",
+ "derived_salt_first_section_no_de": "0AFD085C634D64812B22120E6EA087A2",
+ "derived_salt_first_section_third_de": "0530E299A7CECDA05EF000FCBD461AE6",
+ "section_salt": "1025402C2B74145C70E2CA2E518A83C4"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "82C16E5E420AF3F691E3A2C5",
- "extended_signed_metadata_key_hmac_key": "3A745299AEF628181783C8C3F8B58BC3B4AE469769F217A0E9FABFE9142D743E",
- "extended_signed_section_aes_key": "F85916AD3DAD25DD4AE60F852429878E",
- "extended_unsigned_metadata_key_hmac_key": "B7CF486E1CB95B2A15D30C3C9E26BC3DB7037DB8B34BE3AF196871F5572EE5BF",
- "extended_unsigned_section_aes_key": "80615E927C689B7D4F996876B4914BDD",
- "extended_unsigned_section_mic_hmac_key": "961F07C1C6F2AFA6B55CC522EBEFDBE3C28D93ABDE8F5215D5179FC8BC82C399",
- "key_seed": "6EC0A95CDBCEF7677DB507FE4A796BDF4479B614632B0B5711A8815349D0BFDB",
- "legacy_ldt_key": "58497F32BF13032AA8D284AB36BD5872DEBBDD65B8D8AE4283EBFDD0ADB0ADE22989AFB099ABFB45695A40641F7BC3E9CEEB0258245B8822DC331292836782E1",
- "legacy_metadata_iv": "5589CCDE17E53E1093EF242A",
- "legacy_metadata_key_hmac_key": "783F3236CCBA4C50CBB3E3C0132440C18D8B7C35ECC1DCEB51C19927E98089B1"
+ "extended_metadata_nonce": "37CAFFB8E8BC64931F3190F3",
+ "extended_signed_metadata_key_hmac_key": "15D89B2AEEBF854A0BE65C186885E4AAAB903E312CF27B67F8881FACB082B7D6",
+ "extended_signed_section_aes_key": "640271AF293235DD4592A0FD12EDCDBB",
+ "extended_unsigned_metadata_key_hmac_key": "3E5D5FBA4B63F41DD8B5F42C1A285DA8C0AACD5AE96891BF9BE94BA7F2A3422E",
+ "extended_unsigned_section_aes_key": "573C4B8052EF1CB1BFCE2EE02A21FDDB",
+ "extended_unsigned_section_mic_hmac_key": "269360FAD76012F1BFB9B46E48CCB4A4484C959B46AAF666E7E99BB571D02DBF",
+ "key_seed": "AED5B53B0E0A4A8E7A00B1DFCC03428D99E7B07CC6B90A2A226DAC3C51C53300",
+ "legacy_ldt_key": "80B93319EEC4CB0E43E07CE1DCC54AFA5143E3E0688297837BE19921550E3903AC441802CF7816C959C8BB5B5F650C294379767E8A13821F0BD4CD0164748355",
+ "legacy_metadata_key_hmac_key": "AD90B2CF579CA71E41CE8EED3E8D2EDBE74BC6B3E090C298B3027E2071E1D707",
+ "legacy_metadata_nonce": "28C25CA1937E414689922A89"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "8A69",
- "expanded_salt": "20BB9A87D6FD805B633F902422BB2D63"
+ "adv_salt": "5CD7",
+ "expanded_salt": "3479EE965DA3C29D12C79B83F87DE36A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "4FF3CE599B308584DB935C19C370F327",
- "legacy_metadata_key": "5602770C91B520CEF97EAF77A6BE"
+ "expanded_key": "EBB365F56DD11C290CF18ABAAA208F68",
+ "legacy_metadata_key": "798BB2405B1E4C58708885C8C64C"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "656F6740A7EF478541DEFF4BBFCB7181",
- "derived_salt_first_section_no_de": "595CA4ADA558C71DD688D2756420BF82",
- "derived_salt_first_section_third_de": "7391966FD4F65964C5B56DF3DF6BF697",
- "section_salt": "44441E813E9B82753056174CE918DFAC"
+ "derived_salt_first_section_first_de": "E06D761A8CA571BF0B0F44BECE8D84E5",
+ "derived_salt_first_section_no_de": "F4FA7DA6B4BEB32FB8D61AD5529221DB",
+ "derived_salt_first_section_third_de": "C8B3BAE8D808A3E4CACFDF99B9006801",
+ "section_salt": "44829BD9245724BB422CDF85FE06575A"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "D8D8F6B1C7071EA43ABE29C8",
- "extended_signed_metadata_key_hmac_key": "040B8A8D497030DA4445EB442DEE51D3BCBC9A4FCA386162F97E856802807E1F",
- "extended_signed_section_aes_key": "6DD715C74CF287389820D534F4721EB5",
- "extended_unsigned_metadata_key_hmac_key": "8D46C0CDBC4D89E23EDE6F6AA3C1150BFDB5B06F2DD7CE70CE0D5721177723D3",
- "extended_unsigned_section_aes_key": "58C545F1F5881E428066B22DD28DEEAF",
- "extended_unsigned_section_mic_hmac_key": "E475A5664235DF319CEDDA5235A3130F4D0F55D1C6CF53FF982BFF2866C7BA3A",
- "key_seed": "DE1BAF0EF6F6DFDCF2E4A6AAA5AD28DCE0518DB8F7671823B534CF4DAE897298",
- "legacy_ldt_key": "F42BF631E3E4C2978A6671C8B32460126CF8A392AE14A3E5E26DA4FC5F8A40E1371C69E1A7F641DF808B3C96C9EAFC792F6ED29B61313B30AB98F6501314DB87",
- "legacy_metadata_iv": "F59B01E1CA33D3388416C73A",
- "legacy_metadata_key_hmac_key": "8CDF7CC016820A804B929958FD32DA2E8F196B8DD13A552615DF31AD9D33F46B"
+ "extended_metadata_nonce": "3E8E5771EC037DFE9655CF21",
+ "extended_signed_metadata_key_hmac_key": "FB1E172D8BDC30C0686494050F0545AA14AC4CEB4B80178D1A60BA91F52E4220",
+ "extended_signed_section_aes_key": "CCCCAB2218464982259AC1F9E1C883C9",
+ "extended_unsigned_metadata_key_hmac_key": "A165FBA7AE751FB806EB71B517C107108ADE8AD83CAF2270CCBB500A16D6E8B8",
+ "extended_unsigned_section_aes_key": "939BC65E829C365A53FA76DEC5CCAF72",
+ "extended_unsigned_section_mic_hmac_key": "F517D42A409DECE9A73326D2D83073F5354D5FA6E18E361C8F5C322DF0DE2074",
+ "key_seed": "AFBF0717AAE34C12160C6699E875BC497324201A00F28BB689E72FF81EA02083",
+ "legacy_ldt_key": "64701C13AAFD18BD719961E5168794D660F2B303265D8164B3F42DA11DC1689AF643525BD5674FD39E4EDA98217D04C0F72188D4290C1820C3E7DD999E5C26A2",
+ "legacy_metadata_key_hmac_key": "3228A4757D856906247B16A2E70ACBA3E2B3A556B48C3F34188605EF76C36EEC",
+ "legacy_metadata_nonce": "5E989D42F47971FBB6D02CA2"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "F54D",
- "expanded_salt": "E5BBE1943864920FC0D18756F1EAC79C"
+ "adv_salt": "B7BF",
+ "expanded_salt": "B08300567B79FF302A5C7E88AA9FD54B"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "8648627449716811CB7EC3088EE35876",
- "legacy_metadata_key": "34CC6F287F683973052AF4D4A5A1"
+ "expanded_key": "D98863233D54488599DDB89774AEE330",
+ "legacy_metadata_key": "0077F1879D872A287071D462AF20"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FC09F417718F5B84D9E117E917024A2B",
- "derived_salt_first_section_no_de": "00609059BCFD5F60D1B6FBB3CA21950D",
- "derived_salt_first_section_third_de": "740F61CFC24FE3A4608DF96FC50C7492",
- "section_salt": "AE8DED295626BD432A72F1FD711B4399"
+ "derived_salt_first_section_first_de": "CAB00A6159E6DE851D7E64435197DBFA",
+ "derived_salt_first_section_no_de": "9D33AA17D4672886D95B8040F714E99A",
+ "derived_salt_first_section_third_de": "F000BFD919B6C082652650B4A5C5E1A1",
+ "section_salt": "11D3A895308F443C74723FE45C9AD464"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "56B3B52331647FBEFD8DDC6D",
- "extended_signed_metadata_key_hmac_key": "67FA16622EDFFD4795A480B530878E1A2A935B6ED72F2CAC6B49ECB22954D52D",
- "extended_signed_section_aes_key": "FCCCFD4CEEED34730850ADC17B9E6CA7",
- "extended_unsigned_metadata_key_hmac_key": "0D5E80915CDC2017F0A429BC2B983471C8936068A01DFF85AE715AF057E816DD",
- "extended_unsigned_section_aes_key": "373EA95FB2A319C867F27C6F03C2D363",
- "extended_unsigned_section_mic_hmac_key": "12C0624D63D0359F837E4FB277C4D72F2C5000D79479FD173798F9D3E8578F75",
- "key_seed": "97EBFBA6CF2B759DE3DAB86350CE4F0F3A303A831FC02DE07E19EF9F82813A87",
- "legacy_ldt_key": "08B9D0CC04066BDAA81B41AF695259C4D5B20AE6250B1FD3E5D1B20BF482D66C267A2CDAD458F4E1D6D54E0ECAB73D274CAB715EDF933B196EC5586E8445D815",
- "legacy_metadata_iv": "04D88864DD95282872D984BA",
- "legacy_metadata_key_hmac_key": "16F78FEF786AA1C396B5C71782D3CD61E4EADF5F11C356F2D7F9DE4E9135BE34"
+ "extended_metadata_nonce": "9594966607D85F389214AE63",
+ "extended_signed_metadata_key_hmac_key": "FA1A0A53C819972F4E4F9DC3557D7E48EF74FD16FD1B4E6E343EC2DB2CAC2812",
+ "extended_signed_section_aes_key": "03570780D11AF5A85038B03FF4DD0700",
+ "extended_unsigned_metadata_key_hmac_key": "7379F3362DF6C3204A4B334B8AE60369493FF4E5296C5A7AF2485881940F6170",
+ "extended_unsigned_section_aes_key": "2DF64D6C5F0843468AA52DFAA6A587CD",
+ "extended_unsigned_section_mic_hmac_key": "6259F5119F8B9D77E2DEB23DC41A54DDE67742AD520F225E83E67E98C44DE6A0",
+ "key_seed": "5EA0EF5C2E1E60B1741DAD421FC11EE78391D9598D143B5DAC4FB07091847EA3",
+ "legacy_ldt_key": "A2D8CD41763E0C7F5A24C05FEA4BBF9C05B50338FAD3B877F69A81768FA01BB0CC9704C1A8DCA929025CCC8F6E80507FD74D140BC8D56EFE9E201F2C34077DDB",
+ "legacy_metadata_key_hmac_key": "B5CCC3B2437D3D659C4CDFDF7B0EF920A5ECABFBF75DC6C36CE47E946F35CB9E",
+ "legacy_metadata_nonce": "745E3B9CDE832DE4EE67847F"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "1F98",
- "expanded_salt": "0F5E5D24D68D55E40224D9B794E59428"
+ "adv_salt": "81EB",
+ "expanded_salt": "400E2A436293377A368189866BF5A615"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "C289B25C5A3EC55C5581EBC8517B566F",
- "legacy_metadata_key": "B3E994C744F4FB9CFC6505B85407"
+ "expanded_key": "C0B5A3D9B7E8EB4D8A68F6AA158D0C90",
+ "legacy_metadata_key": "8E9165673AEFCC49B33E4535E0AF"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "02505AAE14B8E9DAD8322C79ACA6593C",
- "derived_salt_first_section_no_de": "CA560760B55EA6FC011ADA0A8840A3B3",
- "derived_salt_first_section_third_de": "DE6240CDBDE887EBBE1F78D8570F6464",
- "section_salt": "AFE3F8E6C7CB466E3D24C9B627BD03E6"
+ "derived_salt_first_section_first_de": "0FCF0C13F89FFAFF9CF2EBB9C74238B2",
+ "derived_salt_first_section_no_de": "D1375663E1B57A43DD17E6FFAFC17279",
+ "derived_salt_first_section_third_de": "2EFF6AC282F726CA937B8B9AEED2B9FA",
+ "section_salt": "76B2FF4BF7A1754AA61E2FDD6C88FC30"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "24BFC10E64F93DEDF1611419",
- "extended_signed_metadata_key_hmac_key": "75D0E111D35B882C48E185FFA1B599AC6D3AC629811F48059FD718BCB77BF75C",
- "extended_signed_section_aes_key": "3015307294007E78CB43A1455CC81F83",
- "extended_unsigned_metadata_key_hmac_key": "941C75CDB9FF2A8AAF903BA31B1B52FF84A32BB7F88387829F76DD97DA151555",
- "extended_unsigned_section_aes_key": "34CD512C30E6BCBC5A4D3AC98C2F553F",
- "extended_unsigned_section_mic_hmac_key": "4386339852C568E58462816F7E43916760BD9543223CC9F8646840603114B3D1",
- "key_seed": "B41F233FFE24ABF6A032540D021E32C87F36FBFFFAA6B1D4BF8C7C6577E4CD20",
- "legacy_ldt_key": "4DC9A6A6C7B416735582DCEB067D5720CE40D131441122DF6448D49698622FE1C489D086844FDF9D9D91363E2D83F59BE56837201C7D2BE4D2953A543F6DA1B1",
- "legacy_metadata_iv": "18C7039C91419C3B878C676B",
- "legacy_metadata_key_hmac_key": "21311915BF12DF0CA89F2B6AF0EA9CA21E7579EB95E8BFB9353EAAB984A129DC"
+ "extended_metadata_nonce": "5706AFC8EE2B6341CC4D3B05",
+ "extended_signed_metadata_key_hmac_key": "D790D59CCEEEA5A0C804429344D35C3AC9A515A9CFF7E10043125388CF5D326C",
+ "extended_signed_section_aes_key": "E23DF3CEBC1F83A569DDC05DE27DCA19",
+ "extended_unsigned_metadata_key_hmac_key": "A396B34DBF66E482B53D2B79DABD00F098E1E5240D45C3805F2386A1237B06ED",
+ "extended_unsigned_section_aes_key": "03D99FA28322A9506C3CB7B9F51F4542",
+ "extended_unsigned_section_mic_hmac_key": "E495765950E61B023CB6E2686ED4DC4189CA56F915CB3AF877B15ADE845EF31A",
+ "key_seed": "206C196A03EB7DE2525B6C27E478552CD3B1904D4D89D3785D51C02B8F1D9B36",
+ "legacy_ldt_key": "71534CC9368B8B599431DDAE5F62200DDFBDF8009248436F92636CF214F43E85CE80EC8703B78FC26503F6DD3634526B7301D8DDF45339A3B63C64838A09734A",
+ "legacy_metadata_key_hmac_key": "3158EF75327E4F117A5ABAB3EF29954CF76B7249C74DC50CB8D1EE4027F70CD2",
+ "legacy_metadata_nonce": "704A450B927CC83483CB5210"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "F579",
- "expanded_salt": "E04DB8DCDEF5454AAB794168647F3116"
+ "adv_salt": "4E36",
+ "expanded_salt": "D96E799C1F673C3AB5621DE38FB7D9FE"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "CA6776187744D498143D2B65F2BCB620",
- "legacy_metadata_key": "411866E3047FB22E19A49182404F"
+ "expanded_key": "DC4C0824F5965E110BE7C9036B6043D2",
+ "legacy_metadata_key": "D2DE6C51A1B2F0CC740A0433BA0C"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6C0AA6C0C0680E941756EE36F09FA5F9",
- "derived_salt_first_section_no_de": "67B90D606605DAFA7766050706519FDC",
- "derived_salt_first_section_third_de": "75E48764319EFC33B07EA410D475603F",
- "section_salt": "4EAABF9C04B256119C6ADF9EAAB011B7"
+ "derived_salt_first_section_first_de": "D735F933C91F70E6703FA277DD9D6B07",
+ "derived_salt_first_section_no_de": "A1216FDE48D4E7CF716EBA6304B0E002",
+ "derived_salt_first_section_third_de": "6C6F84F7B0ADB3DC95733154462DC464",
+ "section_salt": "EE077330D38FA4E741EEB2A423C44E16"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "E6A7582388F4810D96FA3CC0",
- "extended_signed_metadata_key_hmac_key": "C05B01A3C222F3060796D5021985C33D13C75F7DD72C59CE665F6F9FB29F7FF8",
- "extended_signed_section_aes_key": "1595663F4822183C6BD7D6E144A33D61",
- "extended_unsigned_metadata_key_hmac_key": "06DA867E38044972A77CD15F4525C30B23CDB47BF14B2CE7381B7DA8BBC91DE6",
- "extended_unsigned_section_aes_key": "CC046D26F257EFD0AF27D6A468A6195A",
- "extended_unsigned_section_mic_hmac_key": "B44BD6164C834858A3CCD9B68191759C1676B00385310C1F57A6CB1A3762004E",
- "key_seed": "9FA8398751DD8881A2D51957ED165070BBE252E25F549DDA01F318E6B65784A6",
- "legacy_ldt_key": "D1D059E33C171A9C0A0D6BCC5E4391B9A593B89C816CB518623A149F1FDCD443C6ABA040A0B5307DCC4EDF29D0A741C05BBA575BA659F4D472FB1DE3E7A1728A",
- "legacy_metadata_iv": "F9B5BC88F4528AF1B4ADEF27",
- "legacy_metadata_key_hmac_key": "8B18E541F6E8DEB8AF3D5F8023E10EE035CBDD4E026832B6D20E1DB299ADD277"
+ "extended_metadata_nonce": "E8591F5F7A4A9BEEFD11704A",
+ "extended_signed_metadata_key_hmac_key": "0D06ED71FA2DAF112A89EBA86E42961C0CCF5F114C9D5414221ACAB16493615A",
+ "extended_signed_section_aes_key": "5DCDDA469454FEB3C2EA71021F93C392",
+ "extended_unsigned_metadata_key_hmac_key": "770A74886ECB2E13C09DA386048A1FFDD32F184821CFABF97C591F2F1AF593D9",
+ "extended_unsigned_section_aes_key": "74093EBAD21C75C9FB6496AB55D71D10",
+ "extended_unsigned_section_mic_hmac_key": "528D1D684E3DBB6A55B3C74B76F12E3BF88F622796E111436F8436F9C68BD7AB",
+ "key_seed": "CB62878D769D49414CD07AB82DD01A567BD320BCDFE120E137EA6D24FD754A31",
+ "legacy_ldt_key": "526A62E198AF94F8E1C97AD51BCAD021ADE8BE68CBD16DA8FEDA9186141099AB4D1FB09B3C45E06217A50F20143C6669E024A5FF127311B46024E981A8F79C80",
+ "legacy_metadata_key_hmac_key": "C3FEF82D19D4198A12825C7B81D92F92A27E04C0D512FC07D2C144C48DF39A9A",
+ "legacy_metadata_nonce": "6A2FC44C5DCC8ECE690470BB"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "293D",
- "expanded_salt": "FF95CFBA8AABAC3C07C661BC3A214DB2"
+ "adv_salt": "4B93",
+ "expanded_salt": "0618681E330AA95ABCF5908C7D80266E"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "1C2057DB0FE26B2BE41E5B601365879D",
- "legacy_metadata_key": "4FBD487DE4CD5C504947E77CC9F9"
+ "expanded_key": "176853A104A7E84FB244044ADB23E60B",
+ "legacy_metadata_key": "AD1ADA1E3F33D44DBAD9D68546F8"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C4887B18A7D197A398E67F39BE510469",
- "derived_salt_first_section_no_de": "041CAE2EA460C65E11FDE0B39EE2C454",
- "derived_salt_first_section_third_de": "75700EB4C7996590A1011D14A895B38D",
- "section_salt": "6B2C8039FEAB14E8BE54A329A4CA4EE8"
+ "derived_salt_first_section_first_de": "1A605E7282BBB65E768BA802674316E4",
+ "derived_salt_first_section_no_de": "46EDD6B928BC45D5349843C3DA660A46",
+ "derived_salt_first_section_third_de": "23866A17B31C30E4B6BFCE65FF9EF2DD",
+ "section_salt": "CF0811E9E51806ED2EC869D2DCF7C3DD"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "C678B153F2C9BF42D8E4555C",
- "extended_signed_metadata_key_hmac_key": "37C28782B6CF1EE8B7E9576A300A273FFF28F64C7A4A3CF56EDA879038C67006",
- "extended_signed_section_aes_key": "276F38BCF2A9B9689E709A7FB8826490",
- "extended_unsigned_metadata_key_hmac_key": "7C935B6537A92C62468BBDD91C8B0C88E1886EC3A46759472EB9D8CE516248D0",
- "extended_unsigned_section_aes_key": "BC35D5091000B9513FFBCAB0ABF25EC3",
- "extended_unsigned_section_mic_hmac_key": "A76720BD978604FD0D97E6658FD1ED12ECB6E9754F79E9EB8733D043F79F6D88",
- "key_seed": "AA7D2C5DC43F44C9775654C7404668568C6AC6748C3FE6184384E7BF1F4BF74F",
- "legacy_ldt_key": "18D74CD6B3E81E28F51A30634D016247763588A8C37891DEB1A6DB6CD393BF499542E3585D793B2337C1DEAEB289BE35F4AA8E986438987C0AB66B5340B3A7FB",
- "legacy_metadata_iv": "23590684C180ADE155EC8E81",
- "legacy_metadata_key_hmac_key": "E0867ED7A2AEF85C7DAEDE681249E34136ADA175289E2D800120F7BE6FBF914A"
+ "extended_metadata_nonce": "D1031370C1491071F4D7C54A",
+ "extended_signed_metadata_key_hmac_key": "E27E04EEE22E36C87CA16C6AD7D5ADD10776EF643CE1D9CE30EB22D00A30FD59",
+ "extended_signed_section_aes_key": "15D907F25E7808AB08BECD25DC12BB17",
+ "extended_unsigned_metadata_key_hmac_key": "F3F714D219EEE49D4F2BBDEA6245570148A513989BDB07C72D940C8F6174A6C5",
+ "extended_unsigned_section_aes_key": "3449B21771EA3B2B1B246A73B031C67C",
+ "extended_unsigned_section_mic_hmac_key": "7AA8030A85FF64635D6B913A1E96D58EE649BD9E29A27F24A2EE429AADF5B6C5",
+ "key_seed": "FF255729FEA933CDB4EFEC5E38D382C2B8166FC1F61099FAB8E0DD472A1EA192",
+ "legacy_ldt_key": "95B5891E32CDD742FEFDF510C32937F19926BA8A2FF7568AA3A2049E4AC468620FB72DD2E0720EEDC69ABE700AAAD9077345CBC40B410C01F03D7B0B34EBF852",
+ "legacy_metadata_key_hmac_key": "B76F11E187F71D17D2A8038BBDA38DA7F6090E2CEDCF324D4DEBA899F9D39985",
+ "legacy_metadata_nonce": "72FE7AB45734E2C87AE34B96"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "FCD1",
- "expanded_salt": "4A9ACA41D9738ED18A3FF5295CC9430E"
+ "adv_salt": "3CF9",
+ "expanded_salt": "469C89FF0AFE6B7AEA5A94E8E5D413EF"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E8AF6D225FE1B289C6A720C25F67E96E",
- "legacy_metadata_key": "BFE9FC191980DF5697D0838F7DC8"
+ "expanded_key": "34C8733D5598224EBE7E0F468AC42AE0",
+ "legacy_metadata_key": "B4EBC9A698A9F67B3360AB444B65"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BC40622422E5B23B048B160435455E79",
- "derived_salt_first_section_no_de": "A931265EBD3ABAD9700DFF212E81C0FB",
- "derived_salt_first_section_third_de": "3DF9887DC177461FDDB0F0B3DF79264C",
- "section_salt": "D1E12007BD5FB093044099990C0CBE07"
+ "derived_salt_first_section_first_de": "6C0B7CAAB6B77D7E69927BEC4CF9857D",
+ "derived_salt_first_section_no_de": "E85B82E53864343FE2E11C3BBA921BE8",
+ "derived_salt_first_section_third_de": "B5C9E52B81072C158A44DA3D0F1B863C",
+ "section_salt": "55F816AB16A494DA8DB45539F30C615E"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "7AFE8CA9F71E7AD92F0696DC",
- "extended_signed_metadata_key_hmac_key": "5F3768C2F71BF1D45A5F5E6E09D833BB711569555B5EC3A129D552F92DB5C03B",
- "extended_signed_section_aes_key": "ECB5518DFD5661750187979ECD8DF863",
- "extended_unsigned_metadata_key_hmac_key": "578060349F7E3187CE9880510C3E81BB525E1C2BA4E0FB49BAA33274B8C40745",
- "extended_unsigned_section_aes_key": "5148702153A2C6CA2D5281BF36B0F787",
- "extended_unsigned_section_mic_hmac_key": "26A559C099AB77FA249FA9803EBC644DEB750D6DAB60E44E6576770776DAE0A4",
- "key_seed": "20367DFB3BB457D9851D4E691AAD494DE826B617D7FC770A52FA2EFE2D4E6A9E",
- "legacy_ldt_key": "A6C8329833C3A912FC07B146C5A1F1BF0D36ECBDEAE28860A4CF364F6FBDA1AF17EC189F1DFE4AC700BB835F90721AF1B5F453236751A8896142FBB0145572A9",
- "legacy_metadata_iv": "00734FD39B6B88DB583360E6",
- "legacy_metadata_key_hmac_key": "540EB00BCAD9C3458151FEAD75C566AF3FA5FD59D8465BE30BD0044BF3433170"
+ "extended_metadata_nonce": "9F3A841BC948F67E6F6C1394",
+ "extended_signed_metadata_key_hmac_key": "1741C9FEFE5F3C189A06E18FF55693BAD6F850740AE5EE91CF0CE7E1A6A48D65",
+ "extended_signed_section_aes_key": "6624413BF4F1665423E6AFC7E48F6DBA",
+ "extended_unsigned_metadata_key_hmac_key": "79009162ED60569C88E211D09543E5612C1D5A590B8277C44F5F86A3C1ED26FD",
+ "extended_unsigned_section_aes_key": "4AF8134B5774E0DA661D4D74424BDC8D",
+ "extended_unsigned_section_mic_hmac_key": "FC55078A316070CD61B23304D7E0A076490E3425F2257503D1FA3B13F806B8DD",
+ "key_seed": "17D52F8EE6C17DAA338290F9E0D08F91C9BE1AB1DEA910D487309BBB09F67F0F",
+ "legacy_ldt_key": "F01C06D770236831C55B3A10BC648812125B0A8F65367DE7AD83E48F6EB6C2151F09F83B933B2339BD08E36DB74780BE1F435F035DE643D28CE067AF88D4E30A",
+ "legacy_metadata_key_hmac_key": "4BC9A35B25DA286883594B8258037CCBA46F26A76CF3D16DA66B79A5AA645FBF",
+ "legacy_metadata_nonce": "BAC048C167A5890EA8D5D060"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "EA82",
- "expanded_salt": "D6EEF1589F3246FCBA21199F3540B5F2"
+ "adv_salt": "651A",
+ "expanded_salt": "D9C1AB2EA41BDCC8839A83CF4EFFBEA8"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "6B9F8C98D09B1E544D8FFD6CB4AF1EDF",
- "legacy_metadata_key": "0C1628F8AC04A8A637679362D14D"
+ "expanded_key": "ECB322FC63A5B136F19A39403AB4A3FF",
+ "legacy_metadata_key": "0224F2C3F01DF3961A9DDB33D33F"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AD8C0D8D1DD80C0EF00519A87105193E",
- "derived_salt_first_section_no_de": "3B53F6471A83FD8A8013F590D1D930CC",
- "derived_salt_first_section_third_de": "8C70C0524A9141091EA16329B4743226",
- "section_salt": "06424D600A0B9492D03BF0347ED4669D"
+ "derived_salt_first_section_first_de": "9BCC1DE1FB74CC1CD16D0B4200B04D30",
+ "derived_salt_first_section_no_de": "9ECDB554F3EF801381DB9373B9886BFB",
+ "derived_salt_first_section_third_de": "B898A171766659C0B6CFD5A54D7D3ED6",
+ "section_salt": "12120586C731008F58E2EBE90F2D9FD7"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "C1845459DA4112BC2E04BC79",
- "extended_signed_metadata_key_hmac_key": "24B4B4C9A483132A46E6D469ED288EE0F64DB9CE4112FC647A1A7A6A7B833F8F",
- "extended_signed_section_aes_key": "51D5D3B246FBA65BFA76E39625AB67B5",
- "extended_unsigned_metadata_key_hmac_key": "4814C040C5F60395E056D611594329827D3E57C98399D7BED6B30867FE7F0BCE",
- "extended_unsigned_section_aes_key": "F3FE20AAE571582C4E83E98575BF694A",
- "extended_unsigned_section_mic_hmac_key": "93F0305A97D0D770DEB92709E0FC1F53E3E5128BADFFB03981423C97106FB7C6",
- "key_seed": "B9EE04632D2F1ED6B1B9F517048CA98B10866DBDBCD8C03FE86D1FE2FC599218",
- "legacy_ldt_key": "6D1B8DC6BDF93FCBCE856D21EE4A0A6216715E3230A4974874327F7DAF6B9CBFD4FFBC4BD534B330882D5A5D20C8ADB1DDD303BCB1972ACBBDE0E138F037B484",
- "legacy_metadata_iv": "B9C6585A1E321D7E1F663801",
- "legacy_metadata_key_hmac_key": "A47C4D4CE0CBA0E226ED8A6EE3C62148675DB6500B4644495FF40336CFCF3A04"
+ "extended_metadata_nonce": "43EC170E0B76202475557760",
+ "extended_signed_metadata_key_hmac_key": "99B0F78F43A68D4F6367ED11338BD73DA00CAD40BCC917DC0E10CD1D3B8225FC",
+ "extended_signed_section_aes_key": "FDB4A65AC4DB43107994369895BB7340",
+ "extended_unsigned_metadata_key_hmac_key": "A4E32E714DBCC3AF4BB2054620ED0E26B05A00235AA46DE36E87DD1C33ED4B02",
+ "extended_unsigned_section_aes_key": "3A50203C921E126E8D1B0A31660E025D",
+ "extended_unsigned_section_mic_hmac_key": "F722C6EA33D7F8257B668A6A48AD451E90292DA2B5C5A2565383AABB3B75B158",
+ "key_seed": "DB33ED53F748F16D4C44A0D7256951E46737473A2ABEA4FF1A66166072D198A4",
+ "legacy_ldt_key": "4679142868B7A72EAE5D275C6077F84BF4A2AEF5A6B638925752B30C9A43F356CEBD1000C540CD5103F5FCF620E11FEE9900D951667026D68770E1CC9F37F9B7",
+ "legacy_metadata_key_hmac_key": "B81CE82EC7918F849BD209F9CBE4F6232FCC22FE773D96A7823468BD9FE6F6BF",
+ "legacy_metadata_nonce": "4DEC4087D83773E0A57AD6DC"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "3B48",
- "expanded_salt": "793BEB98C434CA53A37B5717A7131D61"
+ "adv_salt": "C854",
+ "expanded_salt": "7F509331897315561AE87E8E465731D5"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "4AED6A93858EF58AD7A58AFAD048B893",
- "legacy_metadata_key": "392D05BAB03F1C96863456CFF3C5"
+ "expanded_key": "445F1AC997B6F6258C04D6612730F576",
+ "legacy_metadata_key": "5A0395FCA63385D863B94C161830"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EC087F42218D9C30A7BC53D528CAF081",
- "derived_salt_first_section_no_de": "AC8C07596248E5BC4F41967DF7B0D961",
- "derived_salt_first_section_third_de": "6B5DDDDD9A1AF616C376A84782D298A9",
- "section_salt": "C07E6600335583170833F1222DE02B82"
+ "derived_salt_first_section_first_de": "C5D4701E3941FA12EBDFE7EAF8D1103D",
+ "derived_salt_first_section_no_de": "CA9740A690C83B28BB8EB6C99A28471B",
+ "derived_salt_first_section_third_de": "0C2ACC54B8EB3433574E87CC03090508",
+ "section_salt": "1420CFC23918397B5B0743A7BD1D33DE"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "CED8611DAB55E88213C8B765",
- "extended_signed_metadata_key_hmac_key": "3D1E528305A2833D5EC3F614903DB71535C0148ABE08849CF81507FC861F3D76",
- "extended_signed_section_aes_key": "B0B01AF8E9EE9796AEF56CEDEB8D66DE",
- "extended_unsigned_metadata_key_hmac_key": "8EB321B093F36EA637545CBE6019BE37FBEA629D171F0F1F58CA5792A0949A5E",
- "extended_unsigned_section_aes_key": "E496DEDC229651FCC429A4137FD566E4",
- "extended_unsigned_section_mic_hmac_key": "B91FCEA48A935A77E3B2206C5FF617184E250EF8CEF3D7BC761BB0AD0E2E7B6E",
- "key_seed": "6D431BFAB85CDE9EF09249FFD648CDDD181656D52A8E583238020C64ACD43A8C",
- "legacy_ldt_key": "978CF9178AE9E7C52F4BC7B5F37D1D68F5D66F91D159BAECAEF88315419AFB100767CD08DE03F915838D7D1D3F47C7ED76E9D22E4A35305FB95837B290E64CBA",
- "legacy_metadata_iv": "176F0CD5D59076DB37D52570",
- "legacy_metadata_key_hmac_key": "3A9F56EA3A110D23DC212FB201842B5C094D2F8DB85E82BB4E0E325427B025FF"
+ "extended_metadata_nonce": "2AE39BFE66BFF7F3685B7FFC",
+ "extended_signed_metadata_key_hmac_key": "1E5B00AADD20BEF97BB6CA33F97C20661F041FF73DB72D33787C374028FBDAB5",
+ "extended_signed_section_aes_key": "59A55BB848376BB2A1F2212E954743C4",
+ "extended_unsigned_metadata_key_hmac_key": "A33A337FC8BF0C5C435B46121BE28F5D119617D044C990ECDC61A36F8EF60808",
+ "extended_unsigned_section_aes_key": "4B6F0EA5C9C9A1DBC1203B0B5AA1D81C",
+ "extended_unsigned_section_mic_hmac_key": "D5B603436CA006324D83AE5020DAC7BD98F9E05EF3E94BA41F63558E2282FED2",
+ "key_seed": "0982F189CB2F763A17D3D68430CA8DE5C22D6B44C21881CF76473C21F4CF573F",
+ "legacy_ldt_key": "C61EEED8BF13DC405DFB8C57232F66381B7FF78CDFD4DA1FFB6737565E5419E98EB38C237064656DB9BC31611F4C47864D54DEB96CEE29F4BE9BFA8CA257D036",
+ "legacy_metadata_key_hmac_key": "DB9E4BF67F914548B813C071B42B37A486B1564DEB98D90CF8B4A020DB9A2702",
+ "legacy_metadata_nonce": "3BBD17F0F4C43E279C69A7E0"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "4F0B",
- "expanded_salt": "F9006FD5D3297143374963F99A15D136"
+ "adv_salt": "065F",
+ "expanded_salt": "1360903389867A3F865080EE99218A93"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "268F059EDB52AA81DF7B3FC93A9B4628",
- "legacy_metadata_key": "BBC70BCBB8FFC2B56A20D96288A2"
+ "expanded_key": "13D9CD7AB4481EC78AAE713AC7F7A534",
+ "legacy_metadata_key": "13A49EE19095CFD061978BE2DA07"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5852D912C0648B9FE1C2688D591D6CCF",
- "derived_salt_first_section_no_de": "812BA22EC8684CA75319E08DB855324C",
- "derived_salt_first_section_third_de": "E0D55EDCAFCBF707697C16D47B223C9F",
- "section_salt": "51F1B0CF181FA016C60E408A898548EB"
+ "derived_salt_first_section_first_de": "5809826FE4C41311D0DF8490071E4BA5",
+ "derived_salt_first_section_no_de": "B10FE9FE08BB71AAEF17701E3805E337",
+ "derived_salt_first_section_third_de": "5C8C4CFD85E659D2CCC0A735E4C14C44",
+ "section_salt": "C1290354344488D39DD88998567BFA1E"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "FC23DF54E1B9DD7EF8DB6366",
- "extended_signed_metadata_key_hmac_key": "8345D41AFD6DF0F26B187E7B6A88213A7E7D7669D5F0007C5D8F6BD97BF9BC99",
- "extended_signed_section_aes_key": "77B3509296F88DE04E1CD0C1103587C1",
- "extended_unsigned_metadata_key_hmac_key": "7A808C788D89EB5951EB50D1C9BBE0E074AA95FE4B2B5EB5D8534930D803B9DE",
- "extended_unsigned_section_aes_key": "2925883788080CC032CDD155B663AB30",
- "extended_unsigned_section_mic_hmac_key": "13B512FE157BF08D9E05774F592ACA12D30E0F54A374968E7A969869266EE750",
- "key_seed": "311DC430975FF06B6BFEA17A1F3EF051F801EE98138DC1AC0AFA921A12C5C8FE",
- "legacy_ldt_key": "D348F0AD0EBD8A26EFB4D14F3CCDBB2BBDE21AD740339FD49FEB130FB9122BB5E0A7A38E5D1178459AB353E9A67B442FC96271304C50963977EC580C783A52FA",
- "legacy_metadata_iv": "32FF6E0114945D576CB7071B",
- "legacy_metadata_key_hmac_key": "2B6F3B3614CF37EA099BA7B392B80A66D23E2DA35A89A95C5CC49E55544A290F"
+ "extended_metadata_nonce": "A0A936CA136E8ECA670708EB",
+ "extended_signed_metadata_key_hmac_key": "27200867B9446FAEC18E4B472C0C2A43D8180753607B42B678184CC5CA3B1AB1",
+ "extended_signed_section_aes_key": "2214D4050FEBA4E4C18543FD920D15C4",
+ "extended_unsigned_metadata_key_hmac_key": "51EE6B49F353568E055B06CFB717A8A467DEE6D90A6D5B325052DFFA15564C6E",
+ "extended_unsigned_section_aes_key": "6F162714F3BDA65324EBBC4B328CD0CE",
+ "extended_unsigned_section_mic_hmac_key": "DA51358ED2AA0916325399E9A2B0244D1791A1C5D600AFD8A351BBCADBE616EA",
+ "key_seed": "8EDCDDAE0F2742D381A7E56284E6804AC68080F872F6A587DE4DADC5B589A4A5",
+ "legacy_ldt_key": "6AC852D94DAFB8C18917A6406D3E8364125F01B03D1EC583FD20E5F9B71DD579B807D3874C4B3AB0FD9582F505E558C98F3E96F609636AAEAB90E9DE51703CA8",
+ "legacy_metadata_key_hmac_key": "89D14E7C13E4B33BDA2B0A70AFC4376FC82BC5E8B6D028F1C91D0E9159F9D549",
+ "legacy_metadata_nonce": "CDD93F6D02D83D0685DF0729"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "072F",
- "expanded_salt": "B43345D3366D608F54C1EE019C1998FF"
+ "adv_salt": "5E81",
+ "expanded_salt": "A1D53BE4EC3D0418587BD370BEFC413A"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "EEB3312A3732042945620AF2E7D0C29D",
- "legacy_metadata_key": "5E43FA6496647C089707D94ADAD1"
+ "expanded_key": "39B757F61E136408F7D8CD58DBAE1A89",
+ "legacy_metadata_key": "F58C1AE45F74112200878EB16AD2"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "77D827CAB84AC63B236FFE3E3433D58C",
- "derived_salt_first_section_no_de": "DDCDF25F4DF75CFDF6E61BAA3534D02F",
- "derived_salt_first_section_third_de": "B242FFC929E7CB45995FDBAA518023EF",
- "section_salt": "E9BE87097B46F1ECF1599A8CFF6B733A"
+ "derived_salt_first_section_first_de": "4B9D669E994848CF832475821E5BA9A0",
+ "derived_salt_first_section_no_de": "B0DD4242F201361D92B775C5F192C979",
+ "derived_salt_first_section_third_de": "E5A6AE615AE988C06CEAB18846B5F659",
+ "section_salt": "33CC65E1EC1CE33B169733DC3096B450"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "86EAA7A4DCC14F46BC0DED6A",
- "extended_signed_metadata_key_hmac_key": "0D9F3B42A8E767469502E712B51C813FCAB46C2334FA211CA4CF4F0AF0FDF3F6",
- "extended_signed_section_aes_key": "4128BB55855F1F66491B2D011C03E89E",
- "extended_unsigned_metadata_key_hmac_key": "690C1B3816D1C886F94D56CCDBB5F6CEF5A2ACB3723ACCCAEED31845893E7D40",
- "extended_unsigned_section_aes_key": "206FB9786A5540C6929F6D6F2BA00583",
- "extended_unsigned_section_mic_hmac_key": "A09020CDAF3065D819CBF403F535CCCE6C01F9065AEEE17D387CE4CD4ECE6190",
- "key_seed": "8B00934DF976A13EB999391B4CDB8BF828A40329F4D129986530DAF47FAB06A7",
- "legacy_ldt_key": "6511ACD5E8CA3B7D4B7A70306FDAF60AB8B7F64C8B0B8E46AA5AA365B4E04931B8F4A68A6BBBFF10B62F94F2F3EE9792E63DE0E451EF86FF73D9411FBDAFEBC4",
- "legacy_metadata_iv": "BE29BAB4891EE29762A289E8",
- "legacy_metadata_key_hmac_key": "2B44399F003EEE9B3C8BED7FD5DB36312BD3ABB74DAF2906385C8AC18CFBF031"
+ "extended_metadata_nonce": "DDBF503438D36104DA4B319D",
+ "extended_signed_metadata_key_hmac_key": "DB2C6A4EEBCA496FE06C311A8A26AB0C208E2785ACC33A02AEB4ABC1FFC8E5BB",
+ "extended_signed_section_aes_key": "8E5E7C2C79A489BA786B7FBA6B85383B",
+ "extended_unsigned_metadata_key_hmac_key": "803D250E88446724C7192F9BBBB5F1E4EBA342D5391DC8CB8FF53349D4E8DB67",
+ "extended_unsigned_section_aes_key": "58C6E7AFDBC57C0482C6E611EF1A346E",
+ "extended_unsigned_section_mic_hmac_key": "D704D0EC34F6D775C575D3C09AE34A5CC1926C88E59A4DDE6A8B5E0FAC2AD3F0",
+ "key_seed": "EFBE104969A3580E48A63285BFA56DB95CAF3C81137B5DEDA8BBC0ACC12C658E",
+ "legacy_ldt_key": "382BC725B508E73E5616B110C92CD8F55CEAF87EB9E0E5BC372150AD9BEE1F1647F3944E3171519B94249A3A789D472C9961FD675653927D1DFE345FF3266358",
+ "legacy_metadata_key_hmac_key": "8D6251503286E357F6EC394CC68446A36BD0C62D50F20FAC6C258B3DF1FACC4D",
+ "legacy_metadata_nonce": "A19B0D2A97B7F3B3CC296F97"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "B0BE",
- "expanded_salt": "67EC91AE5ECB6AE486F3CDE9DC157A55"
+ "adv_salt": "5FC9",
+ "expanded_salt": "C69D7BCD94B23FBD8E2AC68B96330BF5"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "F5F439BA7C62F663FAF23500503E86DB",
- "legacy_metadata_key": "84F9657119551852069A8951B33E"
+ "expanded_key": "6AFDFA46631667385F2C5D764E5301C7",
+ "legacy_metadata_key": "062743EDE5C56F5130998BADF2D0"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ABE6A4E16A295C2F8D36156AE08C3979",
- "derived_salt_first_section_no_de": "AF26EA627C6FE5316D94F9D92892B503",
- "derived_salt_first_section_third_de": "F6570D47497354FF539D80114BE10525",
- "section_salt": "10D37E1694E36AA955F01C1A90769FF0"
+ "derived_salt_first_section_first_de": "58552F903E39FAD1B6FF06B7E55835B0",
+ "derived_salt_first_section_no_de": "586199F442C8473B9690A6AEAC36A405",
+ "derived_salt_first_section_third_de": "B69365658EE47B79809645ACBD160173",
+ "section_salt": "D08A6947309047818E4529E4CC80F9E2"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "0E26EA05F05228C3FE1E1B0C",
- "extended_signed_metadata_key_hmac_key": "96F327C4730CA12369295B13FB1C11E28223837041AD5E67D60997C1119EE63F",
- "extended_signed_section_aes_key": "DF86F570FC4801FEEBEC994C13BD9A07",
- "extended_unsigned_metadata_key_hmac_key": "E36EA385D0D3289B0912B34E6475D01CEA211F3AB73E6CA079F6E93E791BFD56",
- "extended_unsigned_section_aes_key": "602B668BB146E2ADE451CD89576BF8B9",
- "extended_unsigned_section_mic_hmac_key": "B701BFBEC8E6B14E2B7B1D8E02ED006F360C1FE284E7A7EE0F5CA71EB74175C6",
- "key_seed": "5C5D4DCC4B69971424DF8B2F8F136CD5F80D8BB95131EFEA8159E0108F4CDC41",
- "legacy_ldt_key": "E09A7D0E848DCB21214B2218F6AD3EA9189AD97B0825822862DD6D104C7B6E398A454C84EF6BC9E15625C7A9BBC49CBB8F423624F439574A74A681BE1AB364C2",
- "legacy_metadata_iv": "7A4E38294361DF539175ED87",
- "legacy_metadata_key_hmac_key": "151C439A28F295D2759880EF9AEB93CCB66FE6CD7790C8A34449053E030E40C8"
+ "extended_metadata_nonce": "1C2BD072C9330CB6D3807B9F",
+ "extended_signed_metadata_key_hmac_key": "7EB76208F558DB04B0ED9C741F7F4146AD323ED5A9676708F3C2718FCF61DD5D",
+ "extended_signed_section_aes_key": "9E043B7A0F1D242100D98F88D77180D1",
+ "extended_unsigned_metadata_key_hmac_key": "4D6397EEC391828BA27EA7E0F01DCB8350A081577CC0DF9FA3C244CACA923EC5",
+ "extended_unsigned_section_aes_key": "13D8B05613887623BFC72CB4BD57D0DD",
+ "extended_unsigned_section_mic_hmac_key": "249A8EFEEF21C7597AB5EAAABA00536ADD7F2D57CDB1C7F81914946748922B30",
+ "key_seed": "C952629EA0AAF16EDF450AB792C0FDF454B3748F14F8228CA39B3AC3D733BCC8",
+ "legacy_ldt_key": "7D90190372B6EB72DE892F159FD90C723D0B30CD1F97D7A6C15536C8766335AF62DD0BFD8FCB33CF808EA9A8565EA8AEE60D03B9A21849C7473B5E653DD58E94",
+ "legacy_metadata_key_hmac_key": "C02E17C17A1E010FB5F8B34E104B6F4B83C3697CE3878896D9C1D8E12128F28A",
+ "legacy_metadata_nonce": "D2834CF3DD852C5D65EF47AF"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "45C6",
- "expanded_salt": "08138CDC7743180FC29D01F0BACFFC00"
+ "adv_salt": "79A5",
+ "expanded_salt": "18FB4E698A2B0F8FEEAE8D6571217051"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "FB5E4A698BA97AD12B1526EAA0850BCB",
- "legacy_metadata_key": "1FF7AC32FF6140A283ACE2772967"
+ "expanded_key": "359493D5139411922367E5C050162264",
+ "legacy_metadata_key": "579718BBEB70558182C85652E2FB"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7A042E53114742420A86FF6DE56BE8EE",
- "derived_salt_first_section_no_de": "5C5C352F7904AC03508E969594726C45",
- "derived_salt_first_section_third_de": "BE5D31677B6AEDF0D3C63D7759A75D85",
- "section_salt": "E1A4CAA581F257133F9C10C10F749FAA"
+ "derived_salt_first_section_first_de": "81083ED8ADE4D6E6EBFEC991A837AC97",
+ "derived_salt_first_section_no_de": "8BDCE6C08C41DDB5EF3990EE1962965F",
+ "derived_salt_first_section_third_de": "6451CAC1C77CDD02F6339AC8F5011935",
+ "section_salt": "19E1A6466DF15274E28FD2AA96C01BB0"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "658AC78A1B49EBB4AB0E8B20",
- "extended_signed_metadata_key_hmac_key": "55D6DE51F377101DD6E044D0FC92A452DDA7EEB3819D0DE550DF6738AEE594C4",
- "extended_signed_section_aes_key": "2A138F11AF094F96E0256FFB79D41111",
- "extended_unsigned_metadata_key_hmac_key": "D7DA38076E5A3A8FC24FA4A74024AE6FB195782C3396FC65FAB03DFA8831C750",
- "extended_unsigned_section_aes_key": "379CBA56C1547C83A09EAC5DDB4804F5",
- "extended_unsigned_section_mic_hmac_key": "9932E01BC87EF6BF5670018389B54ECA439E37E933C922984B32C4DAB0185B0C",
- "key_seed": "8E2C32FF3EA9D513073341C9DD01ACF647E82085189FFC0DF39F8A216051432B",
- "legacy_ldt_key": "7B4E92B6948DF6C8964A2578426F3BAE076C64D85039FC6110D182ECDED1FB71B462297AB7605DFB323A5C830E52A316F76D15AB6AA9FE4E11EF98FDF62DE86A",
- "legacy_metadata_iv": "A93186CCF93FD2992EBF9F3A",
- "legacy_metadata_key_hmac_key": "4189B8FFEFF1074ADEF6AE5E2121D811400A5D14C2E29F3D7FE8CB5B12C5FB58"
+ "extended_metadata_nonce": "C47EAAC92D0E2BC76D5B7168",
+ "extended_signed_metadata_key_hmac_key": "8666FC7A47A63BAB78216CE4225E819D8680DB8C6F79F3FFBFB8B573C0A35C95",
+ "extended_signed_section_aes_key": "E4CFAEF9DAA97426A0F6776ABBDD0615",
+ "extended_unsigned_metadata_key_hmac_key": "18B3DA3C8736739FBD9D203493BC7697E47EC2072DE351475F332A989CCE2600",
+ "extended_unsigned_section_aes_key": "3732E014F15539C1999F6486B7933A43",
+ "extended_unsigned_section_mic_hmac_key": "F0ABA5CC299B1D3C210774DA1B065BCBB877A0991EED7C34E1DF5B318D1D5C25",
+ "key_seed": "E49335220345649BE4C6AD75B3EDE2A49A9CD22D291764E90510826835CA3528",
+ "legacy_ldt_key": "637CA1A46B169B80D0833678505E3FBEBDDCD42C7D297E78EC5DD6CE1F8007914742F09396A5439592568445117436BBF0B8A4075BE65843259B28A49C8C4A3F",
+ "legacy_metadata_key_hmac_key": "1780831E70950E84CEDBB6D08591E5867DB33D64B9AEFC60C1D29D3F4BD0DB6A",
+ "legacy_metadata_nonce": "4FE56B42C34913314149EAD3"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "1FDC",
- "expanded_salt": "E25BB06A1B34CF094EA14AC6B8C20015"
+ "adv_salt": "7369",
+ "expanded_salt": "7B7D59EA9882AC8D8E5B95F11ED6773B"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "37448CA07DC157F27CAC2E1AB9C8D838",
- "legacy_metadata_key": "4350ADD6E02BCEB94E7433EEBBAA"
+ "expanded_key": "20D2CA28DAD44F40276871C7B8AD6D1A",
+ "legacy_metadata_key": "AD5DBAB68501DADA871E6CE6EFF0"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FAC09152C52B25743D542A42E3236908",
- "derived_salt_first_section_no_de": "DC4FE5ACECF590142099516D40065B66",
- "derived_salt_first_section_third_de": "710DCC911BA5ADE3E895690C09FF69A0",
- "section_salt": "36CC6F46BD73C7F024EB7AE10589C0D0"
+ "derived_salt_first_section_first_de": "C27C4FA03E43A46EADAC3A827A6ABDA1",
+ "derived_salt_first_section_no_de": "28B6CEF526584124B03720FC4A65188B",
+ "derived_salt_first_section_third_de": "76B42830B3813795F19CF07B6EFD17C8",
+ "section_salt": "3DAC056F62D259B969B815D08DA79507"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "7FBEB2BFE58CE18B01219D7C",
- "extended_signed_metadata_key_hmac_key": "5F5AB7B868F84AA7747CC7030FBEECB1153A20633BCBCE6B9BCA24371E84DA59",
- "extended_signed_section_aes_key": "1E3E972D0293692E5B17C60BB8A95A2E",
- "extended_unsigned_metadata_key_hmac_key": "6CCC191366C99005B7BAEBB464C14622E661E24A33D04A420A4B8448275E3F76",
- "extended_unsigned_section_aes_key": "A3ED709DD87276908A2C36C72485B11F",
- "extended_unsigned_section_mic_hmac_key": "8903C56E1AE0F1B2177E75781ACD2545DE587CDDBBF995AA6C29408C4E8E0558",
- "key_seed": "703753F89BA5852A349A3D91E89EB68784A19B1EB14C0A6D0B3741BFCB4E2A84",
- "legacy_ldt_key": "B973DB5B9D24EF6D685E6952955E91D43A9B3B2C8A208A1E610F9B9A9B893F4C6B9341A44CBDE10552049C37B83146E506BFD3FF371D8DE891F46DD8DF86D294",
- "legacy_metadata_iv": "8C8CCB66DCCC023D92BD10D0",
- "legacy_metadata_key_hmac_key": "702657C5826DE78F336F648DDF8B905C52BE8D9013493687FA07E3EB5FCADA9C"
+ "extended_metadata_nonce": "8BC4D291417DA2637FDCA948",
+ "extended_signed_metadata_key_hmac_key": "69305759C5CF4AD06490F51BF9305543E835A219F53EA84F39ABF714F6B2F855",
+ "extended_signed_section_aes_key": "69E4C6301882A5494C10231DD82FD9AB",
+ "extended_unsigned_metadata_key_hmac_key": "F6F45381D06AD669756F4BC421495F60F02FAA2FFD3ACF9FAE6755CE54AEEA0C",
+ "extended_unsigned_section_aes_key": "744A7950D65D03AEEF5AF17C36AC3954",
+ "extended_unsigned_section_mic_hmac_key": "AF012F292628BFCB7421B4A846361AD4829FB93FD766A014A5D846B7F471F5A8",
+ "key_seed": "B46750D2A75BDF9960E825289F24D8A1C777C4481FDE9E1E38F72A3DF7B29AEA",
+ "legacy_ldt_key": "7C689AF4CE7D769DEC4BE41DE5651B9C87F76D988C90DF4A5263859159CF855DCEFEA5B0047F450AE9033FE5E3C4D96D0B81DA5D52C94487C481C11BC5204A71",
+ "legacy_metadata_key_hmac_key": "4EFEB0DFFB5E37BF0BE1373A4917078FE2F54EAAC0E22CD049D3A84F79CD5BCA",
+ "legacy_metadata_nonce": "0185B0580338EA6BD57D801E"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "C402",
- "expanded_salt": "E5E224C3505986B2F98D3D737E6BA3ED"
+ "adv_salt": "4456",
+ "expanded_salt": "4C0B15F195F4E9506FD3BF692C8A81A9"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "480E88C02E840B8CE3877FE20160CDFC",
- "legacy_metadata_key": "3ACC87CA1631542A95634B83B062"
+ "expanded_key": "F7B19B1F77FDDDA49AD637F92F559434",
+ "legacy_metadata_key": "71C96FDFE7539BAA0A52B6F4C1ED"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D40C5D52B06D2313B338F93125EEED06",
- "derived_salt_first_section_no_de": "A728477BF2ECA4EE4638475E29FA2556",
- "derived_salt_first_section_third_de": "759CFC286455FE01EC95368700EB3517",
- "section_salt": "C3594C2F9B7B630474CE1B6E259E19EA"
+ "derived_salt_first_section_first_de": "DB0238E42DD58FFCEF52697A6B60EEAC",
+ "derived_salt_first_section_no_de": "76B8797D8220B4F7D3F2994F57AF40F6",
+ "derived_salt_first_section_third_de": "8FEFF73B163E9ECBF0B75743237146C2",
+ "section_salt": "3FF3074E6E32C3A1282DA7E7486FD5D2"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "3EC8E74208977F8155B4597E",
- "extended_signed_metadata_key_hmac_key": "335A5329D69F2DBAF752D827A3C00582151EDC1ED8679E7872175DAC629D0624",
- "extended_signed_section_aes_key": "9EBFC3C4597262F3BBFA703E46EC39C2",
- "extended_unsigned_metadata_key_hmac_key": "1869231FFEA530E96291A2F0AB63E720BC8D45EABA9A08359A75A8C869689422",
- "extended_unsigned_section_aes_key": "82E231441E43FAA0B759D7FAC0E8941C",
- "extended_unsigned_section_mic_hmac_key": "83A9DA95F0FBBB06AA15BC34C54F68E8988B1CEDDE04CD8555770402BE2990AA",
- "key_seed": "590FD89A5C23FAAFC3CD961636F690EF21F5B3C664B9E4431CBE6A0F5852D9AB",
- "legacy_ldt_key": "B4AC5564197C225D237C13A1E1E3AAE371D7C0C57EA88A3B9926605DEFC0FB375D433F890FBD7049C686DA0D8192994D0258579E76359FA01207259157290E78",
- "legacy_metadata_iv": "88E6091698F9FF2814911788",
- "legacy_metadata_key_hmac_key": "2B1D0B1A8389505F324F2434FC6052D840A560F759D0D7DA8E6FA2D2C898C0A0"
+ "extended_metadata_nonce": "8E1A231A33610A9B3F78D046",
+ "extended_signed_metadata_key_hmac_key": "724CBBC4F7B44408327A62B1EF12BBC451732406FE77B1F7E6F5EB125D47F69D",
+ "extended_signed_section_aes_key": "EADDEDCCE98E6DC2145C48C5648052A8",
+ "extended_unsigned_metadata_key_hmac_key": "9519CC0F24A2DB8D534B9233E863D1105711E79E84DFBE17E13DC3D6C1332D2A",
+ "extended_unsigned_section_aes_key": "80C1210F4F306D881C7ED5568A78D643",
+ "extended_unsigned_section_mic_hmac_key": "590362F05927596F04EEE3633FD526DA7C17FBA4A4489DC1B09F33FA2A84DACC",
+ "key_seed": "D83D79192D3A1490BB2DF4F72686E8E351F5F354BBEDB83B389DBC94D0DECC6F",
+ "legacy_ldt_key": "F6CC44D2FB8A497FDEF4D8505BF8954C1673F7AA74279938FF60D74F2D56E5E590B1EA7E71EEE7A14782FB6E5DDF856402DE2F388BC7A6BE7808C6B02D6AF3CF",
+ "legacy_metadata_key_hmac_key": "8EC62082A556856D8D9622063340E8B7A649CBB82193EE3FF1980DB7918A74C8",
+ "legacy_metadata_nonce": "0AE81376D41C4A66A58C9E15"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "0772",
- "expanded_salt": "413CDAEC5F3ADE3B805F6B059C3E5A41"
+ "adv_salt": "7538",
+ "expanded_salt": "9C0EAC987D64D64324502964CE4260AD"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "8514E57919999FFDABE029EBFE4C9426",
- "legacy_metadata_key": "F6A9282D66621963A4DD14DA5F60"
+ "expanded_key": "809FF61B6778348B260BFB91DB789913",
+ "legacy_metadata_key": "BBCFBE39DF3BDF239B25E14976A5"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6AEF2FC5BF21C17ABCE81F2818C47D92",
- "derived_salt_first_section_no_de": "37A84529C1DF8120FF00FB27D2B68728",
- "derived_salt_first_section_third_de": "8697E051AF8AB19B877750487128C68B",
- "section_salt": "C6DB41C0D3BFD90F931FCE541AFCD0E7"
+ "derived_salt_first_section_first_de": "86485E5604FA2EF6F8EAF42DF4CE0CF1",
+ "derived_salt_first_section_no_de": "5506D594D6DEBDF6AA3FF103EF018765",
+ "derived_salt_first_section_third_de": "DE2468D8B660E2757D9D80315450D573",
+ "section_salt": "C7321D6A2F9877CB0FF99B9B11D34309"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "9C8612162C7D9779A69DD85D",
- "extended_signed_metadata_key_hmac_key": "6B8C2FD91468F764C4401D2CD1F8463975E8661E50BBA370F08ACBF9B4FFA8F3",
- "extended_signed_section_aes_key": "E8ACE3ADA80F025239C5D570FBD051CA",
- "extended_unsigned_metadata_key_hmac_key": "43197CD7A7D0EBB45F3512EB0786C94FCA415A6246DC82A6D99EAB0E74B245BA",
- "extended_unsigned_section_aes_key": "E4D2222C7EE547E1E4D971F757EE19BC",
- "extended_unsigned_section_mic_hmac_key": "F6A8A09C5A1EA97BDD2C75B8E88FD0D764E96E7A914007CBD8DA628AA0689D71",
- "key_seed": "4A6B6CF28BAE3F8C884BC0A0CBCC9438730A18D305BB2840E52E0C24271D8B1C",
- "legacy_ldt_key": "599C3C8EC8140EAAAA0A817AA736A5903CC67A0AAA5E75EBBB2B4EBB937D3C19DB2D27932BB17C5AE7769773A460F6B728ECF16B4981EE3175EC291744157768",
- "legacy_metadata_iv": "196406504278F0806C4BDD7D",
- "legacy_metadata_key_hmac_key": "54AE858F851495DD1785E407A403EBF1BCDAAA419E0ACCACCAF9BA048148CD31"
+ "extended_metadata_nonce": "D7D49880F809AFFDCF2AB7BF",
+ "extended_signed_metadata_key_hmac_key": "89280461B4D2102D3F829CBBDA32CD75F01579E2B25E8C2F01F3983804A7B5D1",
+ "extended_signed_section_aes_key": "9B42E858D2ED7439F951403533CAF3F0",
+ "extended_unsigned_metadata_key_hmac_key": "509A8BF8096E9A547D14F27284C20D7EAFDA6C9D8D0946EF81D4611DE00F22DC",
+ "extended_unsigned_section_aes_key": "88F058A2EAD74A4BAED5F99136508DAD",
+ "extended_unsigned_section_mic_hmac_key": "3729770DD90FEFA7253F53F87244C928CDE14CF5D2D5513D8EB3C1889C34AAA0",
+ "key_seed": "96B3E4E23374C3162E94B1701F6720E0D0918AAAF10FA0E7FCBC4D7059C824D7",
+ "legacy_ldt_key": "4B0AB9E1C8CDE2F1B55EE0EA4A331B8B923E34AF5DADC5F18971111F45D41BDDC7E9A9F7D28F94AC71F50DFE5AAD7FA7B85884169FE0099175073100CE1DA9C7",
+ "legacy_metadata_key_hmac_key": "5FE8C268D4DFCFCC91F4B7820BA679D26A54C8FF0F3063EB856BE84FF4AED8F9",
+ "legacy_metadata_nonce": "D885F819DB614904DEF77E09"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "4DDB",
- "expanded_salt": "05E15052944C8807E83B0D02311E7899"
+ "adv_salt": "3881",
+ "expanded_salt": "839E06D9CAFECE9EB910ECA73E7B7041"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "5F5E3038F30C046414E62C7ED69ED169",
- "legacy_metadata_key": "0CF61FC5567A9DC10368651E154D"
+ "expanded_key": "C4ABC2194181D14624AFE1B545E87B95",
+ "legacy_metadata_key": "2F8C7737B5E98216C6358DFD1163"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "98CA3376108E785CA930BC45CB7D2763",
- "derived_salt_first_section_no_de": "54D605441466EFE26BC0A078EB1F66CD",
- "derived_salt_first_section_third_de": "67DF2342882079FC110BB360AF85C77D",
- "section_salt": "9691AAE691C218217DDDCCA62E71D2AA"
+ "derived_salt_first_section_first_de": "A662F512F68A331133401EA5EB2A2A66",
+ "derived_salt_first_section_no_de": "BFE2EA19A0984DEE6BE7EB90DC2FC58E",
+ "derived_salt_first_section_third_de": "92E3744D86B5ED21D50C726A66ED36B5",
+ "section_salt": "55DA08E873B5664E175650BAAA9A8021"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "71A75A7694C16FCC9FDBB067",
- "extended_signed_metadata_key_hmac_key": "4D0F14482F3C51AE89CB417631E8C11761D172ABD4918F41144934FA54505F0C",
- "extended_signed_section_aes_key": "B6B074FD2BAE04158DC19077A0B5371B",
- "extended_unsigned_metadata_key_hmac_key": "3EFAB9AD017DABF829400C0C2F62B910505E6626408970953332C537FDDF5802",
- "extended_unsigned_section_aes_key": "D80F706C6D951935AD34A2E80AF33DCD",
- "extended_unsigned_section_mic_hmac_key": "8DC394CAFA09DB7C6B0FDF9154B908C3C6DFCF9C54E08BC5C7C122F0EA14D9CF",
- "key_seed": "9BC1F6229559BE308A8A9AA78C3D16CEC94F6EFD4520A68C0D98ED059051E100",
- "legacy_ldt_key": "C549B76FC230F579DBFB758445809F9DD7D7550F8887150CEA27EF3598C8B8DC18AA00ECC46AFD8AB849A7A16C42F26283B768F3C23DEB5C244A9B7AA4B76718",
- "legacy_metadata_iv": "3C389B3A04A0B5D48007A0F6",
- "legacy_metadata_key_hmac_key": "EB81BA1307D7061F1EAEC54CED3BD3B72DAB3BE80C3890F1F0E37FF1DF0C6B98"
+ "extended_metadata_nonce": "8E7098BA5E6A64E0F97746AD",
+ "extended_signed_metadata_key_hmac_key": "D8C3614062B4B68DFDEC328EE588C257CB5D8378F33F514181FFBAABF9C18A2C",
+ "extended_signed_section_aes_key": "9215527DA83060DC2F32E39048ECD4FB",
+ "extended_unsigned_metadata_key_hmac_key": "345516B0AFF7928137B9AF940CB13EBC734F9015540C713C0C813AD136BCAA09",
+ "extended_unsigned_section_aes_key": "C563004B3236B38E9C02BC6817B9B199",
+ "extended_unsigned_section_mic_hmac_key": "2F4A9499095C511768D57BEC00A3EC265E9384BC9A12B0F9956791D8617BBE3C",
+ "key_seed": "4678C5DAC152DF06265640453E53177D237E72FD58E1B784C692D95363B3DB30",
+ "legacy_ldt_key": "08D4D021EC845DCE579783FAA377F1B8E20A75CD4768D18DF0326F314A181C17CBB821F0033C970B8A7448E208FA06025A855D25DC38775E44917DC51CF267CE",
+ "legacy_metadata_key_hmac_key": "0D31EE249C7FFA7A827E90EA8C20D70CF22F5DD8DE8BA331A5B05B3831435C36",
+ "legacy_metadata_nonce": "DA5011061FF4017D38381053"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "8632",
- "expanded_salt": "3D5E1AF980327BB62D48459A059B1F96"
+ "adv_salt": "7C72",
+ "expanded_salt": "7F599F5A3FA8CA8046C80BD2F8D43377"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E68145FE4C26BE389BA569435083B8FC",
- "legacy_metadata_key": "8BB2F7AA03300263A5377DCE862E"
+ "expanded_key": "77B1D1B130E78CD88DB0FB2D439722A5",
+ "legacy_metadata_key": "0FA76D2A99B2E693B6D358C41D42"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FCC3A77220BAF777DF28EDE0FBC03172",
- "derived_salt_first_section_no_de": "6191171408AE38F05ED1B74DF6BABB58",
- "derived_salt_first_section_third_de": "9A2101EE0445593A9D60F22A1D4B4F57",
- "section_salt": "015AA1BC9A0D95C10730A939077B8342"
+ "derived_salt_first_section_first_de": "532346C01C3D5C6488233523F1239853",
+ "derived_salt_first_section_no_de": "00FA8A3468172AA618AA22518A04AB90",
+ "derived_salt_first_section_third_de": "1B2BBA5F893D87824BD4D36EB568ADE3",
+ "section_salt": "F3BADB4D93D44B2C83651C4D977BDA85"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "F1180A40629B066921C600FC",
- "extended_signed_metadata_key_hmac_key": "F45ADE10610E1115C1EF673F7D4B35C621D8183F365313ED6CE953D0B01410DC",
- "extended_signed_section_aes_key": "BCC668791D21714098A0F64A49FB5614",
- "extended_unsigned_metadata_key_hmac_key": "9C75E833E7C9D42ED71C489F2D68D7583E0BEF98041ADAA30507D3BF201E1475",
- "extended_unsigned_section_aes_key": "56D4F223331D6D760EDA1627B07F1304",
- "extended_unsigned_section_mic_hmac_key": "29FAAE892C04307A54A77FD4805257D08AFE89D1DC751C87926C1A290A925F57",
- "key_seed": "A1E46B6D184072707573FB332D9624A77EA0A10FE636E43C25C8CD1E59147A99",
- "legacy_ldt_key": "42C3C27BED0D1CF4ABE08B8BC6E2C46B43A65DECA3AE6760DF8B6EA64767818980A6DEA52563AAEA14A965BCB50645F764437A8FD2BD64B5C68E1B0D716F53E7",
- "legacy_metadata_iv": "276A34A07BC9112DC4E8BA29",
- "legacy_metadata_key_hmac_key": "E7C3139CA809025D05971973C07C3F282077ADA5D623CEABF7062933BC467D31"
+ "extended_metadata_nonce": "AC7F3D2E8F0CA67D9E3286FB",
+ "extended_signed_metadata_key_hmac_key": "09F574FCD463AC6C36B8E3444B5C205D4E7F34FEE2C50F4C9D8F4E21F3F08E8D",
+ "extended_signed_section_aes_key": "03929B8C9D55DE8A2DB331F3A458C5A0",
+ "extended_unsigned_metadata_key_hmac_key": "41CB06A6ACA499582A97E506954CF3346E10922C6816893088E920400C15724A",
+ "extended_unsigned_section_aes_key": "8586ADD0A300F594781EC6A91F7525DC",
+ "extended_unsigned_section_mic_hmac_key": "0A104999429CBD6CC254840DEC399C70F9A64F4BD4B9EA572861F44280311D1C",
+ "key_seed": "5EA22F37C2895A5ECBEF49AA18F9BEF14E2221E8AD6B73C48B500059C0920563",
+ "legacy_ldt_key": "2CF083240697097DB14CCE7EC06542F2D8CA93DBF4404BF733A67BE123A7D577A4ACEAA6EAFF9BE5B73FAB9E48AAA93D63779D8FAA7044C24D1DF6E6415540D4",
+ "legacy_metadata_key_hmac_key": "5DF6ED321FFE805FD33A7A17CE8CB8348532798C604F3878892D3A6B1D12E4D0",
+ "legacy_metadata_nonce": "E9872F6F6C5595E82DE87409"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "3807",
- "expanded_salt": "9FAF3F48355E078675D703262457CDEA"
+ "adv_salt": "2D24",
+ "expanded_salt": "09935DB3B8781070715F440E27D5CD90"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "136E77C458B38D26ABFC57222B0C8328",
- "legacy_metadata_key": "030D688191286FD28E91F74F5891"
+ "expanded_key": "7B9525E023AE6563A1938D713276A250",
+ "legacy_metadata_key": "E95212B84FBB8BD181401FB77BCE"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "69C2AE1DC142959720C8592D90E7D450",
- "derived_salt_first_section_no_de": "5894FD6FD96E50366EDE4AFE193064E5",
- "derived_salt_first_section_third_de": "4B51DEFB06CC3A41AB031315FD744ACA",
- "section_salt": "1D55077FAD5CBD01665FC731638C21F0"
+ "derived_salt_first_section_first_de": "F4A7A1A0A42EE2C34BB44EE7CB7FDF50",
+ "derived_salt_first_section_no_de": "F13440BC0A2B7911039742C57654D2B6",
+ "derived_salt_first_section_third_de": "AE1A8F016C73B5BA485C27D9F21C4379",
+ "section_salt": "B7C7FD8E1C40228B71165C00DF490496"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "0B1AB737BFDE400C4F98B8C4",
- "extended_signed_metadata_key_hmac_key": "EAC89F533A54BCCBE536DD1905379893DA1CD2C23B3887C9234865F8395A92DF",
- "extended_signed_section_aes_key": "A5CBA3E579ABA906591FAFF192CEA585",
- "extended_unsigned_metadata_key_hmac_key": "36BE3C7776D9F9DCE3A8EF0D256B42E5DC7008B7453C3BD8FDE1020E696770FF",
- "extended_unsigned_section_aes_key": "5E7C6470AD2A91DE48F3BC1D1AFD3B3F",
- "extended_unsigned_section_mic_hmac_key": "34A2950B8EF80D9CC9E7706B702ED9C1FEE3D63A457516EC640875831C0BE04B",
- "key_seed": "8B558B1EA7EE9F63FA0A70EAC17DA896744EF68A8451CA9006E2208DB850FA1C",
- "legacy_ldt_key": "76F9692F07C47BBB890AF036562E887BCE5B2B66FAD03BDDC9006A9345C83EC2D3BFDCF6D6368A85CCE534F236BDB9918739AE4753D9952C289972203FB00C8E",
- "legacy_metadata_iv": "03EC7A1F3020A12C0DF6FCAE",
- "legacy_metadata_key_hmac_key": "F43B428D32CC71007017961A5FDE2AD341443AA99E327CA2FD42A7D475DDAA77"
+ "extended_metadata_nonce": "62E90AEC398397F92486725B",
+ "extended_signed_metadata_key_hmac_key": "512490244C6AFB22B8E1FF0AE15B1BD9BF61B02C20FDF18AFCC28704FAA04B11",
+ "extended_signed_section_aes_key": "C650084EAA3E35460C65A6D5A3BC056F",
+ "extended_unsigned_metadata_key_hmac_key": "969259ED1CC21D9DC198921204BD98F1B60D51E52758EF03EA42A088FC33AA99",
+ "extended_unsigned_section_aes_key": "A12E741FBEE73C341789F4A2E217E568",
+ "extended_unsigned_section_mic_hmac_key": "C11625C0E356394FA499EA6E7606CD7ED016364FC8913C2590CD04E6B7101C33",
+ "key_seed": "9FE70D5318CEACFFBC1C0BF66168E2404D67AC342B36AFAC5306F65AB75D4BD1",
+ "legacy_ldt_key": "07DB2360A6FF579827C73C33947D3432F0D2D44282C3055447C79C732A3DA4CFCA3423D87D080259F2056D9EEF0AD03D874AA6D3767019608486CCCE1CB34CAD",
+ "legacy_metadata_key_hmac_key": "B8EF43182F6E8159601E63E474DA30B6A0A18FAC8D37BA25207395990F75CA70",
+ "legacy_metadata_nonce": "B8E730D17A2B71DFD2113E80"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "041E",
- "expanded_salt": "661E48D938A42B8CFF7021FF618858B9"
+ "adv_salt": "7141",
+ "expanded_salt": "9E8C5C44E412C2E5D54FB423AB48102F"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "81AC722BA8CB31EC4550BBB8BB6C3460",
- "legacy_metadata_key": "7AD1AAE8DA11219F64954C036BC2"
+ "expanded_key": "1FC5EA826AA0C33800219591A2856184",
+ "legacy_metadata_key": "DBEE14EB39323EE9CC4B341C3A00"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9661E1ADCBAC7205300D411CF33A23B5",
- "derived_salt_first_section_no_de": "1EC7EC56D94D25CC7C9732C6B34316FD",
- "derived_salt_first_section_third_de": "D90D131F7C09E40224E4DFFB8A63EAC2",
- "section_salt": "0DF2E4E9154B5F8A61B120FA0A83AE2E"
+ "derived_salt_first_section_first_de": "BA4492E8755975045094D06AC8930F50",
+ "derived_salt_first_section_no_de": "20B8815C2C7788BE334D8D945AFD59DC",
+ "derived_salt_first_section_third_de": "2E567F8F25DF8D06C7DF61A05811F7F1",
+ "section_salt": "627BA43CFCB6B9FD6C4676C1102635CF"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5C813EA22BDB8ACA292EA213",
- "extended_signed_metadata_key_hmac_key": "6398BE8DA7D0B06BEE1B879C59BDF82EC2AB0FD1F0E7FE361FDEA2212826C619",
- "extended_signed_section_aes_key": "FF3D3F08D2589A0024454D99AF8F2B80",
- "extended_unsigned_metadata_key_hmac_key": "1D0F772EBEC27C98F783186813062F393B8840DCC350E0C1FF1A749C3D0C9CDA",
- "extended_unsigned_section_aes_key": "7BD3911664F7A1AFA07F0649CD81787A",
- "extended_unsigned_section_mic_hmac_key": "1536AB06F3EC74590B7D0D5D16F416C047AE2AE80F65403786B7270E24EE2E92",
- "key_seed": "1DE3D34F71BAED2270A6BF468CE0E7C789D6A82BA9C7EFC83E46DB2353CCF546",
- "legacy_ldt_key": "9C85D26AB9816A98291D36B86774B8018A7C39E0888B1303A741EDB33E98A329C99A0C9739464F3A4269D1F58EE941C0A3509C4D195162330837749A198550B3",
- "legacy_metadata_iv": "BFE64F05D17D962FECC099F3",
- "legacy_metadata_key_hmac_key": "E669C25D1F640933CA6F1A1B7566F2FF654E27DADDA58E1A9BA940DC08669190"
+ "extended_metadata_nonce": "D1FE7EF66BC90F8B53E64538",
+ "extended_signed_metadata_key_hmac_key": "1484C6E96375DD5B4314600D12BCADC5063E1C865D64C8390CFF60E52E6FC0A1",
+ "extended_signed_section_aes_key": "CF4880570B17863BCC0B17D263BD563F",
+ "extended_unsigned_metadata_key_hmac_key": "E3CF564D084FEC04FC96B6CD5A23B288D49F360B326005698B6B1CBD8B8860A9",
+ "extended_unsigned_section_aes_key": "6193B4A238BE3240C7E4D53E7708EE8B",
+ "extended_unsigned_section_mic_hmac_key": "45CC2AFD5BB72392874172AC5C059E871BD6E9C46D977E6D0F7510B817B180B4",
+ "key_seed": "B237A0FC008DF51F15EA3E1789FC834923556B61A7BD30664EA06BE6C40169D2",
+ "legacy_ldt_key": "FEE50CF8496A24EB1A216C0FDBED6CB9559099E8650BEC22C2DEF7ED4E490A9CFF5E21C40572A40AA9F5FC3E9C60F60CA60C257D08155849CADCEE76FC869202",
+ "legacy_metadata_key_hmac_key": "8E854A8DB7B847B84862757EDC73881609F0CF90A99DBD82571C204B040B5D54",
+ "legacy_metadata_nonce": "F58512DCB899E1F857C3394D"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "E3EA",
- "expanded_salt": "BBCB2DBBEC7A1E0B4FE4AE298A25509F"
+ "adv_salt": "770E",
+ "expanded_salt": "7A1A3782A82F1E40CCBD5330A84750E7"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "BE3318D1377A715C94A01EAF876FB622",
- "legacy_metadata_key": "1374ECBA466C0B72C464D856FF5F"
+ "expanded_key": "C8C682033DA60D93756D23338D6427BC",
+ "legacy_metadata_key": "E12C6EE466A1ED61753B30E6BD6C"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "322F6D53734E8E02C74CEB89202B0E59",
- "derived_salt_first_section_no_de": "EC4952E507D20AB4A882DD1F21A13416",
- "derived_salt_first_section_third_de": "85E05F603D51B587B160BD6A70F76030",
- "section_salt": "EC528E80A2356F8DDD2BC3BBD54424CB"
+ "derived_salt_first_section_first_de": "B20A3B57F64EFC41D079734A14A3D576",
+ "derived_salt_first_section_no_de": "09B542C88D08F276B29C0E1A2A424246",
+ "derived_salt_first_section_third_de": "962AC562D09F20F714EB885E729D4C3E",
+ "section_salt": "53F5CD677966C5D1E3EC25D1089BDFF2"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "CC3D812F7D79DED8AE8A5FCA",
- "extended_signed_metadata_key_hmac_key": "E1AE23F0680F633B625084D1675AE316CB583B0A5BD208BFFA482B57772D0DB5",
- "extended_signed_section_aes_key": "52442AEB7C67541C63105D59BFB961E3",
- "extended_unsigned_metadata_key_hmac_key": "929983E14C8A7B2D8FBE42A903CFF3485AB84F02E13D817075F67D5C7AAE39EA",
- "extended_unsigned_section_aes_key": "0A2F66DFE4FCF8114E3811925685D22D",
- "extended_unsigned_section_mic_hmac_key": "052B5BC1107C91628BC2D7DE0A463399BCF164484648F3D794277465B544DAAB",
- "key_seed": "900600348716C59FF0E199A04D85EDD79C9A46594C2DC2F2CAA087F093E31400",
- "legacy_ldt_key": "B055965D5F8455B6A882B64826FF05F4B6BA757DB13863E0BFD38489ACC2B45CB4735C9BF7A306E56C01C95E29B5B6AC20DBE9ECFDA7DE185388B6E855EBCB18",
- "legacy_metadata_iv": "80FA69F9ADC293A54C641BCB",
- "legacy_metadata_key_hmac_key": "25BD5D6DB4FAA2E5855A80D7A4C4DFA79CB2F78AB620E644275EB846A5BA6EF9"
+ "extended_metadata_nonce": "BE6106BCD5D7388E53C26ECA",
+ "extended_signed_metadata_key_hmac_key": "0D98105D990B688F91C10BC27885E635B1DBDBF2DAE215EE49E04C06E33DAFEE",
+ "extended_signed_section_aes_key": "7A3A2341DB494F1D5AB346E54EA49729",
+ "extended_unsigned_metadata_key_hmac_key": "C6C0836CC438960704071E2EC71EC18219A7CA336E314C9DF1FD5F5848803C07",
+ "extended_unsigned_section_aes_key": "C00032E500DD04C16176DE5EF45466F9",
+ "extended_unsigned_section_mic_hmac_key": "2B813176336A7A645826F95F3763A536ED2EDC15EF25C87FAE32C3766114323F",
+ "key_seed": "BFF3192023AF42A5D4B3D12DC34350E7F41E214B25501A7FE0ADD19497A48276",
+ "legacy_ldt_key": "37E2DFCFDEFECB1FC486B6B26670AA37D3BE7E106E0C2CB5AFD9CCB1130EE7899A3D38CAF15142CD3A06DFC2A39D34503F7826EE517F9232DCC7CB1931855028",
+ "legacy_metadata_key_hmac_key": "5771D06F65AFD121908E4750EF2EBA0E9C385839E6987F30161FBCF88F49A974",
+ "legacy_metadata_nonce": "20448FEFB69E2643D7932CAA"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "B903",
- "expanded_salt": "194D79DAA734901C2DAAA451BB23DEB9"
+ "adv_salt": "524B",
+ "expanded_salt": "F0B23D5EB99A02DF9E8A7D6F8B8A1A3D"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "24F788BB01AF91A94210B44E7821797E",
- "legacy_metadata_key": "5D2615E311F76852D252D146CBD3"
+ "expanded_key": "C6B9DB92F2818C6B57A3E386BD44B236",
+ "legacy_metadata_key": "A4C003398DEF995E0CF5457DF3A0"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7DB1D403D189121E8C63E5AF43B9F78D",
- "derived_salt_first_section_no_de": "3995148EE6DFCDF6C2A89D8DC6417810",
- "derived_salt_first_section_third_de": "53E3902FE22ACAB528CA7397F1F40176",
- "section_salt": "7B3365E1E8F4B7C0F0671DCC7BB7EEE8"
+ "derived_salt_first_section_first_de": "EB8E676E9E53A4828200A25942EBA2CF",
+ "derived_salt_first_section_no_de": "A342A8CFFBD87DA2F95D1C72CB0EEA36",
+ "derived_salt_first_section_third_de": "6F049F5664239C49D76286B8218D64B1",
+ "section_salt": "8096BBCFC6AE0C6CA7A17D5623929518"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "EEACFB97255DC156EB7F6D75",
- "extended_signed_metadata_key_hmac_key": "39BCCAB7F3964D14F6A6863F23F870845D8DECBB6C62D6C47450A6AACA334BEC",
- "extended_signed_section_aes_key": "6CF740211633DF7226155947AF38A9EA",
- "extended_unsigned_metadata_key_hmac_key": "6AF82E083A4A863B6D6416C4D15753468FEE6661A80C8890C6CE162CE46B5163",
- "extended_unsigned_section_aes_key": "90065E9FF8D5C192310FF3C381B4B850",
- "extended_unsigned_section_mic_hmac_key": "BD8171D007AA2846CD32B97229AF6DB5F2592ACA847A5ACEB99FB7DEE0CD017A",
- "key_seed": "3F54EB25A054138CFE5635DF7E2EB31956CF2E8927F0090EDEEAFE013F4CC3C3",
- "legacy_ldt_key": "89B605A02BDA17E74D4D2DF582F7B70ADA41AF1F866FAF86F0816D64620FC5864CF72BD8278A96BE91F6EBA889D83A0FA7B45BC9E51CCE71445CFAE14FBE6480",
- "legacy_metadata_iv": "115176AEE0A83494622594B5",
- "legacy_metadata_key_hmac_key": "A71178A666665140B78431F1FAEC5CFC317AEFAD1AD9111F8265457589B0CCBA"
+ "extended_metadata_nonce": "586425C6E1CAAE439F588912",
+ "extended_signed_metadata_key_hmac_key": "FD0CA08040BB854BDF7414DA7ECF4733A094644B4FE3473C04F787DBEF6E53E1",
+ "extended_signed_section_aes_key": "E4FA3E811B0C7263CCE2CD60500587A4",
+ "extended_unsigned_metadata_key_hmac_key": "6E6DA7DC5B6F17C7B6C8B37E9B8E82D09DA5C4300DB8C601CDBB258161A8701C",
+ "extended_unsigned_section_aes_key": "3E0E93D5EA50FC6420B0331F2D30EE07",
+ "extended_unsigned_section_mic_hmac_key": "78F44EA95AED2D816672A0EB7BC16B8DA13DC285CC903E63BB844BF6499949D4",
+ "key_seed": "66E4BFB8633C10BDD7B8C2E5653E014BC1E652D809487B1810DBF79515ED66F9",
+ "legacy_ldt_key": "D53EDC7BDDEF9CD6FFA5C7DCE7FCFC6A4653412B7F690454201BB6536FCD2EB04A090D3C252375FD703D87869AF7F6CC60EB7F381896396662C472C5B1626A81",
+ "legacy_metadata_key_hmac_key": "466B32DC5CCF02949C092E5AA5AB321CA35E339CA8F6483FB1F9F6F0C7E6A438",
+ "legacy_metadata_nonce": "BFF9144266F9BC3527CB8C46"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "720A",
- "expanded_salt": "861EC503D1A4C3F73A9D725AF35E750C"
+ "adv_salt": "CCB6",
+ "expanded_salt": "0F9B6162C8CDBC3092573D85B26DBC37"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "99E78F033321DDF49669E5A259E100B7",
- "legacy_metadata_key": "6F7FABCFB8027F832BB7415676CE"
+ "expanded_key": "AEB39B7A005D27F8DA9FAB9AD80D220E",
+ "legacy_metadata_key": "A52FF0A8837236A5D3DDA03BA23E"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0DBC6FC168E7EAB9AF7C2AD9075FF639",
- "derived_salt_first_section_no_de": "01C8D3506E9772CB39AA197DC228A745",
- "derived_salt_first_section_third_de": "20AC624DDE56F2288BF0A912585BE559",
- "section_salt": "C10AC014A2F2FD16ACC9A51ADBD8CD83"
+ "derived_salt_first_section_first_de": "FC6812BA03F06BEFD59BF0F949D8F449",
+ "derived_salt_first_section_no_de": "2DCB709ACE9617A6119BD2CC960EED9E",
+ "derived_salt_first_section_third_de": "FE06376C4AE96023D51C6C8475072558",
+ "section_salt": "2F808BAF3FE99E6E84B565038CA90BC9"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "A126C26AC6CDF99F3186FC9F",
- "extended_signed_metadata_key_hmac_key": "8A72F3722691BEFBCF278BCE130181A3203EC34F1E1722D76CB977FF81E3F6CF",
- "extended_signed_section_aes_key": "813CBB91B1D12E22FC407CD0FB4CDF01",
- "extended_unsigned_metadata_key_hmac_key": "202D5E210431B3DE72C2C8235A89EF523565F60B39F5242B369F7CD644BE6E07",
- "extended_unsigned_section_aes_key": "CCE03E7938DD6B91D0A8B5F246FE9159",
- "extended_unsigned_section_mic_hmac_key": "F59184E0CD009CEBB9373F13A25956867925FB6EB29DB5EBE2216FDC79D36F72",
- "key_seed": "1507E29D31236668ECD26475481EBF22868DE3B6C72CFDE0168A7495B4AC0414",
- "legacy_ldt_key": "553359F11D78677E2C395E27723F382CAF2924BBF362854876D90589E42AB69CC0BFCC794103E2DE6B0D968987EC436D8B9C77AFF1837E65DDCDA60B544DDC85",
- "legacy_metadata_iv": "BD68D7E8D90A6C608857C1CF",
- "legacy_metadata_key_hmac_key": "3C9A37268892058BAED9C02DA3D1D9A808E5EBC68C72CC878DACD936860E7BE7"
+ "extended_metadata_nonce": "D8C89D6886078AF21EE678DB",
+ "extended_signed_metadata_key_hmac_key": "FCE0422748BD4D4082B66F25B06DD3056E9D37C135CF212CE1C8631FEA94F864",
+ "extended_signed_section_aes_key": "9EB35E1816D04630AECA453BC64A8FE8",
+ "extended_unsigned_metadata_key_hmac_key": "D161E19CB3638E925E028602B7928D6889C776062DF66A33C97F2C45890C0581",
+ "extended_unsigned_section_aes_key": "A7AB3B735821FB8F59F63A8E8DE3F3F8",
+ "extended_unsigned_section_mic_hmac_key": "CEAD2B2095603CC58A1C5DDE0A5ECBC2FC960840DE6A463E9893C97409B0437A",
+ "key_seed": "3538A99DC75533C5A301539C166BD8A6476AF6F5F52A73382441681781283A4B",
+ "legacy_ldt_key": "32360EC7E4FE0B3C5FE27E236639D62C5C81BEE8397B320688087B4D4009B10E6C15B6057CCE1BC1B8F8732606E730BA172746D8CBD34DEECF911CBFB9712B15",
+ "legacy_metadata_key_hmac_key": "90A819E29083F6DF7FD2C7E9EC4A872CF4887CA8D964984E49C4CCC292EB8938",
+ "legacy_metadata_nonce": "0982939640FCC0CEE8551409"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "278A",
- "expanded_salt": "9C0F563EC06D003F3CD1F396FBA263DA"
+ "adv_salt": "7975",
+ "expanded_salt": "AE096CF053C4F4A17ADB41DF4AF79D01"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "3CE729B2F8DF2CEA0D99B11F7996EC41",
- "legacy_metadata_key": "70BA30661F9E66D37CC0FC1D9B80"
+ "expanded_key": "EA6B4A31500F98886521EBCEC6ECAAC5",
+ "legacy_metadata_key": "70A44BF295A6510C039A031BCB04"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "12B6C70236E13E95D0A06BAA7DF2AFDB",
- "derived_salt_first_section_no_de": "167A8FB19B3095C60E62A951D2A326D4",
- "derived_salt_first_section_third_de": "D3102993856E827E9A41927AD73B40E2",
- "section_salt": "CC399C86EAEFC09C475BDB0DE3DB27A4"
+ "derived_salt_first_section_first_de": "0818451F633193982BFEBBD61988FF62",
+ "derived_salt_first_section_no_de": "48ED1DF2C5BBF94DB0DADE30C0BE21C6",
+ "derived_salt_first_section_third_de": "633611AFE0697A6F36BC5B76E685391E",
+ "section_salt": "AAFCF56E0A0F6A8F76E2BC44E54F2B78"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "FB63D5C0E96482C780B5B87C",
- "extended_signed_metadata_key_hmac_key": "7A6C4ACDDB05C930226B673D81A0217D19B07F706AA9ACDD69D481BF13BB1F27",
- "extended_signed_section_aes_key": "487C1180AF9E3E43BB7306752EB3B614",
- "extended_unsigned_metadata_key_hmac_key": "7C877681BB3A6DAD99F04040149AB36BCB7E3604ACB68819BE4DBC9DF4A8ECD3",
- "extended_unsigned_section_aes_key": "0DD60CE8C3A58B9566CD91E1BA7ECF73",
- "extended_unsigned_section_mic_hmac_key": "9A1E68FAD3E62EB052CC204BAD673CAAEF5FDD58FEF9F1CDE4ADD4A90896C202",
- "key_seed": "BBF26F0C3659999F09304B66E338A71547C3EA6F43386E9AF6530129FF2B6933",
- "legacy_ldt_key": "12443BA17B3ABA950802517017846A804802C177A42FEF2B6DFF1E29C4C52D7B25325578E33819603BBEC9C369D39ED986CF622E697B401E5128FEB012AD7406",
- "legacy_metadata_iv": "7389868250F14835AD0DE377",
- "legacy_metadata_key_hmac_key": "9A2A1DA33A3ED20C916227B47860360CA5141882E40DA3ED5CE624EC139924D7"
+ "extended_metadata_nonce": "30696C2FFD88091165B93256",
+ "extended_signed_metadata_key_hmac_key": "346B7958CA1259BB7197FDCA84B718A41AF9049D2DE6B472B64B19102D4240CF",
+ "extended_signed_section_aes_key": "854ADA9753D9A82E94E5D6ADBB22873E",
+ "extended_unsigned_metadata_key_hmac_key": "29D905607B3ABF4E2CD261EE4E67C19EF36F41311A61CAADB60C95FC468FB72D",
+ "extended_unsigned_section_aes_key": "DD5329454006EC3BD37FE3520810CD98",
+ "extended_unsigned_section_mic_hmac_key": "E4077D45CDDD895F5577A11D2FE9CB3BE65242D5DFEDAC87471C76038605741C",
+ "key_seed": "3719ACB4884750708757D20A58648804B8B7A614C176AEF7DFA6E0A5BB9CD5A0",
+ "legacy_ldt_key": "88CAEB0E79177042908D16AF2ED4025D95448A76E901A4B6195F405E5210A6889324B3DB121508D411A012499EDAEFF35A280BFCD32B35B2DC773AAFFAC9DC35",
+ "legacy_metadata_key_hmac_key": "A358646C1D338EC123E72FBCAF4BF615844764F91F8F2BD9811CDFCEF5FC2548",
+ "legacy_metadata_nonce": "EB2B57119D7662AFA40BC448"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "CEF2",
- "expanded_salt": "BC30931FA22783576E6BF70152F756BB"
+ "adv_salt": "7BC6",
+ "expanded_salt": "F81E9EC1C91B1007FF2A32D72FB6483C"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "704F11EF144AAD9C2CFE2F2A9B8E306B",
- "legacy_metadata_key": "0EDE0EDAB1E9BDEF9540BB1E3086"
+ "expanded_key": "36BB3E66C0820FC418EB2F1B873BDDA5",
+ "legacy_metadata_key": "89981C312BA536E82EC3B1090CA5"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "232B444F53C0D556135000FA81194F5C",
- "derived_salt_first_section_no_de": "75643AAA00010ECA4AAC5E81193DD9CE",
- "derived_salt_first_section_third_de": "0D2012D22F26FD28A47755E0B06AB870",
- "section_salt": "BFA29B6B4FF9C8B86955747C3E4A985D"
+ "derived_salt_first_section_first_de": "218AB6D163ADEB31634B1DED52E56326",
+ "derived_salt_first_section_no_de": "0F4F42636DBC8ADE1DF3383E6E8C80F1",
+ "derived_salt_first_section_third_de": "B667CEF8B176732FD56AFE83BFAA7611",
+ "section_salt": "D884E95FCD3A29F4E951A3C64D43C020"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "139ED7D19314DFFFB87239BB",
- "extended_signed_metadata_key_hmac_key": "E448D76164DEB1E1F58E0D01D6B724CC91000DB0F5680013857BF977A6A14D00",
- "extended_signed_section_aes_key": "39ED6A0880AA92D92D6812F24AD2DB9B",
- "extended_unsigned_metadata_key_hmac_key": "5407B155524B8D798D079AC319D09F60C36B90EAF41DBF078EC8C1B3B88F8D49",
- "extended_unsigned_section_aes_key": "CAD8A3D6F7CF31453ED6484DE7B7A9BC",
- "extended_unsigned_section_mic_hmac_key": "230A6A663549AFAC636D2C0471710A7B7E8B8DE346DB8620545FC185D2448FAF",
- "key_seed": "52E9B521B6C584CE9D64B1CE3040325CC518A2FB91A4F78627F71EFFB5143070",
- "legacy_ldt_key": "B6C5E7692EC45E14A8F84CCA300945DA833EB61B18D8FF3D944FB5EBD067C417C25C9A26A12A43B90640E6381A98E2C58CF29C0D4066C06B358DCFE8E915B7D0",
- "legacy_metadata_iv": "4BF3A740D3CAA8C4F9FBFB71",
- "legacy_metadata_key_hmac_key": "29AB8006C12772E63DF5B30731AF7EC12764E5241E9AB64AD4A55EB8CAEDEDC5"
+ "extended_metadata_nonce": "497081ADD0EAAD948AC3D743",
+ "extended_signed_metadata_key_hmac_key": "4CF4E05DA1B0EF538CA84515202E1AFC845E94A236C672F091D7998A1AFD0D24",
+ "extended_signed_section_aes_key": "7DF8CEF6BFDA7D1944BC5F5105BD003D",
+ "extended_unsigned_metadata_key_hmac_key": "4892A9FD8A1080F06D299D8DF2FBD1382E5F31E32FDE1B974ED1958AD7348C08",
+ "extended_unsigned_section_aes_key": "608194400C0D4390A12891645FEE4EA1",
+ "extended_unsigned_section_mic_hmac_key": "8B3B932C61B0B9E2FF883B13791EAF9EBBE382E4539242DEEFAF03C6930FEE9C",
+ "key_seed": "871B0FD2D15F8C5EA49B610C544D0F957884876C614228083A414F8A441A2D30",
+ "legacy_ldt_key": "D41A6CF8C5BB99BB8FE8B33F341FAD33AF603E980B6C2FF70B6F0BC0080F655141D0421932F573706664085752947678D4F106E1FA71E8E584445BCE7ABBA35D",
+ "legacy_metadata_key_hmac_key": "99D2C4B908B8FF9151F30A4B7ADD9590BF85EBD4D086560B32A20AFB529CC524",
+ "legacy_metadata_nonce": "60B88352445ED074EA447690"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "316D",
- "expanded_salt": "911E7D5D4C77FD301C69A6C393F2780F"
+ "adv_salt": "BFDF",
+ "expanded_salt": "AFDBB3A928B41B9C72F3CC9C21437B63"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "9255D12C06F2E21FC5D1B46E0598811A",
- "legacy_metadata_key": "130C64E062D85A90B08017B3125A"
+ "expanded_key": "4F832379A70733EB481C98C287573D51",
+ "legacy_metadata_key": "9C8893A6DB94328439157550279E"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6C18BFC32117F35B99A17105DAE1EAF8",
- "derived_salt_first_section_no_de": "D9BE6122469942FB8381B8027C8C9366",
- "derived_salt_first_section_third_de": "7382FB945B8A0C6970C6D86C45DA228B",
- "section_salt": "6A95D71D0ADF01EC57F4DF6DAD185817"
+ "derived_salt_first_section_first_de": "1F3AC1292A3E34943F65ACBD5A5D5F71",
+ "derived_salt_first_section_no_de": "6162875F35A6B9B20C0F81C8CC9BC0D6",
+ "derived_salt_first_section_third_de": "EF5A3849BB1526EFEF254214AE714CD9",
+ "section_salt": "4058BBC28C1E874801AB570EAA0B1EB6"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "4106F365508C7AB9C61AF7E5",
- "extended_signed_metadata_key_hmac_key": "804FE7B0AB1263433082099D62E147024111945A4439F1160B14C9549237AF45",
- "extended_signed_section_aes_key": "89209C64F1ADA99D0CA83C0696FB81C7",
- "extended_unsigned_metadata_key_hmac_key": "6F55B8AC1BC16301B9EA20C3BD4A522428746D05356BAD55CDB3C157C199679E",
- "extended_unsigned_section_aes_key": "B40C275D64F4285314F5D87E5B717178",
- "extended_unsigned_section_mic_hmac_key": "F606514D6E20F64B7B1236208835AB0E2E2B8E5BA81481A7101DDD09637A8529",
- "key_seed": "66C637A11F9437136AD368FD5DA750CFB7B9DA2EA0A59AC3B102620DC0FE8607",
- "legacy_ldt_key": "514467B53BFD6597908C2A25DFA0FF3D7373ACDED1A5F23775DD0BF9399BB34C96A79B79C33891C7AF51AAA1145F927A1DE8F748A836E37207DF89F9C4B2A50E",
- "legacy_metadata_iv": "2A857DB5636BE41AF20AFF0F",
- "legacy_metadata_key_hmac_key": "6869E224351FF9B53FB41DD0E109A43C95F8A304F55528C111901307D12478AB"
+ "extended_metadata_nonce": "213546D6654AD76E62DDABF6",
+ "extended_signed_metadata_key_hmac_key": "359FCC4FB2576B773E11B61937E190FD0D9249EFE348AAABF18EEB331373BF66",
+ "extended_signed_section_aes_key": "48FEA76F4BA226E1880B3D8245125AEE",
+ "extended_unsigned_metadata_key_hmac_key": "59118D794BC59C9D1F4A6008E3AFB9FDBBC9F874C1F6C25812ADB75AD7744314",
+ "extended_unsigned_section_aes_key": "F55C149FB252D0744AAC781C04E87251",
+ "extended_unsigned_section_mic_hmac_key": "6A6C6DD45298CE923C01E0CCE68519E1C6E2C494F0E9476E596539DCB30423FA",
+ "key_seed": "7B65E45190EA159343E5562D63AE83ECF4B15DA7506706FBFAE25DC607D88720",
+ "legacy_ldt_key": "7801EA9A9FE16C5554116B72463EF63DE1565CA8AAF6DC1025FE6AF53C4B798AB15609774385FC25FDDDC4D28E57A2661ABDD074638A10C7C9CD7E852CCBB9A8",
+ "legacy_metadata_key_hmac_key": "3787DCAE0CC30E049935477D8562D380B9DB021BA494FD1ADD9925DBC8864A85",
+ "legacy_metadata_nonce": "902CCFD130ACF873A78F9481"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "9F0B",
- "expanded_salt": "E876CD3ECE28B7428A6B5590A6CB639C"
+ "adv_salt": "9A70",
+ "expanded_salt": "4ECBEE3BBC2B85F39E379254D7163227"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E4EDE852D5C6113B69DFAA3882EFDA15",
- "legacy_metadata_key": "5F79A78A99B1AD41B64E5D67CDAB"
+ "expanded_key": "AD4B09305929D4A277BBB2D3227B54BF",
+ "legacy_metadata_key": "ACA208D4C92030B19114C73F8399"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "15411E0071815F7D2B01CDF86E8D2748",
- "derived_salt_first_section_no_de": "E3C2FB850271C0A1214B5773EB747FC4",
- "derived_salt_first_section_third_de": "2BE462DAC5B5EABA6141522F45FC41EF",
- "section_salt": "171023CBFF1355AEC5FEF3A74A6F86BA"
+ "derived_salt_first_section_first_de": "34BCFCB74C32AAE99B97D24A839C4533",
+ "derived_salt_first_section_no_de": "C6C751B4257933CCE05AD7C336B3F17B",
+ "derived_salt_first_section_third_de": "292892273B46FB6C99FA4BC3C44708BD",
+ "section_salt": "74F5AC8F69F601C07AB4AC92E9F51C3F"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "F0FB3FB130A4FB5CD7F0C691",
- "extended_signed_metadata_key_hmac_key": "BAEA566B27C73CAFDF63047FF3187D20DF2A82644C52D0E0BFFD5BD7F86BCEB1",
- "extended_signed_section_aes_key": "D71D10DB41E0BF86E0701706E7B6A23E",
- "extended_unsigned_metadata_key_hmac_key": "F70E56096D8C742D72C608F3CB35607F79F16E40AE731DFCDA56678FFBBD4DD1",
- "extended_unsigned_section_aes_key": "B37009C433E9B2682962D6B7530104A0",
- "extended_unsigned_section_mic_hmac_key": "32A3BE53C8826926F01E3FAF36044D86D20FFA57696DC3E7B32FBAC59EAE68E9",
- "key_seed": "BA23E8740CBD2818B2D25705DE778CEFE49B3AC970D5B8C34FF1ED9B375FB6EA",
- "legacy_ldt_key": "0F6099B62571DE783606083CE247784245BFAF3733E0ABAF6DD0636AAF31CB8EE82A7921E7C3934103D3F5C245715AD18698C495F838C7F7461C009A60E34C7A",
- "legacy_metadata_iv": "D6B3192BB8FB16B94C5FF93F",
- "legacy_metadata_key_hmac_key": "D54F35FEEF4CDEEA9C84EF86ED6CCD34690A8DEEEC096EA4A5F94CF2AE52C8E2"
+ "extended_metadata_nonce": "3564E475886853F7BF5EC55A",
+ "extended_signed_metadata_key_hmac_key": "35A5FF3F932BDC655A9FD8AAEA36E25ED917C509A42F3337E3E3E89F2DDBCD0D",
+ "extended_signed_section_aes_key": "470C528EF53B704C515C58A17EDF6C86",
+ "extended_unsigned_metadata_key_hmac_key": "4144AFA9B5D527A9D1E05AA282A7C1D00DF51E79CFE93D7578043A5191C8D1A7",
+ "extended_unsigned_section_aes_key": "C32F8F9706900F0FCFEE149D120CAAB5",
+ "extended_unsigned_section_mic_hmac_key": "7D1D483580DA73C3322F088E3D2A24FE640A9F818CBD72842D288364A1937286",
+ "key_seed": "A8590C79753059E9873CB4F0BEEECD1B43071D76BDD4A1E07809FFA0B89AD5E6",
+ "legacy_ldt_key": "82D25B8271ABE1D6262F09DA005D99BB6046EC6BB387800B4E2E01993998867FBBD487C65E0BCDCECBDD89E1EA23ACDE697862E2D9B644963625BE8BAC4E3F99",
+ "legacy_metadata_key_hmac_key": "C574697B87A56EA447BD202BFD3D960E2393119A5AA4BD270CEB0E37B719BF16",
+ "legacy_metadata_nonce": "1CFD6A666E8F405C39D9E1AA"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "8898",
- "expanded_salt": "2A1B5CF36F21DC2ECF3FC9692C47CBAB"
+ "adv_salt": "5685",
+ "expanded_salt": "8AF7ACB0C156A5882E64105535A8521F"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "DFA2A5533B91AA56B9E5083A8DFEA3E4",
- "legacy_metadata_key": "7F2D15CB936AC5536825D62B00E0"
+ "expanded_key": "9B9FEE02950DC453BFB4EF3C1CCF4811",
+ "legacy_metadata_key": "B2C2A05B519CF20021C9996DF808"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1BFD12EDB0447B6867FE8928133E7337",
- "derived_salt_first_section_no_de": "F5A84606A88207E1404F8B9D6F9162CF",
- "derived_salt_first_section_third_de": "36DDB504CDB343DA4A4FFF6EB4BA9A33",
- "section_salt": "2B37936AEEBAAB430945809C42AC86B8"
+ "derived_salt_first_section_first_de": "89CF340356F2E40A23A033F98DDF7D28",
+ "derived_salt_first_section_no_de": "853D5F3E410E67A666A9E41F86BD4EFD",
+ "derived_salt_first_section_third_de": "DE0B861151059E218B754C32B123C147",
+ "section_salt": "226836AA61CC797529A81307D64EA301"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "64C8DAC422E1A7F7375B55D4",
- "extended_signed_metadata_key_hmac_key": "4564A16E1E4321EDCF21C24F982E27DDB93DC9433B3A87913F02986F88CB6CE7",
- "extended_signed_section_aes_key": "44E0CAAEFA5AD2D4E86A3AD24C80E272",
- "extended_unsigned_metadata_key_hmac_key": "0E519185357A2F8A60E19B964B642CAB61EEAEE295027A7E97F529F705EFADAB",
- "extended_unsigned_section_aes_key": "EBDF2CFA60EC13C0D0EAF9F6FC4FF80C",
- "extended_unsigned_section_mic_hmac_key": "86A9BC50CB4F310D7D1C79C3E362FDF96FD5E4F3E8FA1DB0DBCBA15E5241AFE2",
- "key_seed": "2242754CE42C87AFF95B8FAAD8C0A26A21F00A2341C299129D5AD1D3B6C02ACA",
- "legacy_ldt_key": "2C29C27481240D4FFE43B8EF6740E399126EBDC8C8DCE2EDA36641FA475160988DA49252109DCF6749AAD6C4AD066A6D4C427167C33F7567CB3F02C9B7765D66",
- "legacy_metadata_iv": "71655D1AF1C514D6BFC6C85B",
- "legacy_metadata_key_hmac_key": "E775E6FC0F1B5452B0E14FC6293667D62FB063E908D89DCB84FC439B6E852E24"
+ "extended_metadata_nonce": "285561F74E853C3208B51748",
+ "extended_signed_metadata_key_hmac_key": "32C03F14E9AA9082E4A87375B53543103A6B8B041922778BFA9C083D5E1F39B2",
+ "extended_signed_section_aes_key": "A0BE8DF66519E26A80CA4C1D84958150",
+ "extended_unsigned_metadata_key_hmac_key": "98CB9A09F93AB43D229C1D1699E998BB21DCC535128B4F3EBA93939CB2806199",
+ "extended_unsigned_section_aes_key": "C579BE805B3801B4680EC72CF6F4C888",
+ "extended_unsigned_section_mic_hmac_key": "DAE01D0E3D8A08A8B3BB00A48BC81E8C6B730133EC90A03326189F2E43A1B0A2",
+ "key_seed": "82B0C4B354909A4A05C43CFD728804FD58C9A339362576865378D1B92A3DC3FF",
+ "legacy_ldt_key": "A939DFBDC50FBF27637C0B2AE4357D4403A5E3956373BD17CB8C589657517E79D1EB900F634E3F41092E4E25787C6161D2D18EE09A13A35A354A449AB8292BCC",
+ "legacy_metadata_key_hmac_key": "4D32558AF034F2AC2E63AB36256B842852598D49ADC8E2F244C8AC13DA1E9D04",
+ "legacy_metadata_nonce": "F00120FCD5FFEC079D2CA173"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "CFCF",
- "expanded_salt": "5A039E6A722686B807397B61C56396B1"
+ "adv_salt": "6C58",
+ "expanded_salt": "92EC631F08ABD78DC8552A2484D568F2"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "5621E7D33523CF882D437514705FD095",
- "legacy_metadata_key": "641519C04877DC05BF1E9F6F7242"
+ "expanded_key": "04443FC782143B5B62BFFB6F4E0EFE8C",
+ "legacy_metadata_key": "F011C17EDC3FB4095C9ED4BFCEF6"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BC58325FC2416DD9B44FB1A014DC7F4A",
- "derived_salt_first_section_no_de": "99B60490B40EF04869D8932399350EB1",
- "derived_salt_first_section_third_de": "3EB388AEC3E9A1F441FD70AC38590AD2",
- "section_salt": "B28BBE4488801B34E952884C05A25DE9"
+ "derived_salt_first_section_first_de": "7104EDAF3D39ACA85F0DE66FB8A0E6A4",
+ "derived_salt_first_section_no_de": "297FC2DCC22C9793610FD3504DBAAA3B",
+ "derived_salt_first_section_third_de": "CF455558C8C67E5AB573C79AC356B02D",
+ "section_salt": "19421ECBB444B94A369F1684DA6E87F6"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "13AC782DFBC9315E7339ED18",
- "extended_signed_metadata_key_hmac_key": "B0FA8879974C93337DF47DAAF1EEA360BC0B7E1EED03557DD07A6836472F5075",
- "extended_signed_section_aes_key": "0CB5D2CC4702F15348E0E0F4A6ED2E4E",
- "extended_unsigned_metadata_key_hmac_key": "FD87DEF70826BA2F603B127DBE670412FB78B13507D4D937F326C54362B46940",
- "extended_unsigned_section_aes_key": "6CA248FC15B00B700D84CC3E816DF66E",
- "extended_unsigned_section_mic_hmac_key": "AFA27D2BEDA240DD25BB0602C663C496B422A146FA660D4E9E0F9F3D919BD175",
- "key_seed": "98DCA91B38BCF8EC30F5DF170AB8475B79A1D240B8903EF48AB8915DF06F30F5",
- "legacy_ldt_key": "A36347C1486F0834B29C5AFDA526F7ED1D40A2E6AC1DC2F55821D746C8D3E2496964D1BB7A35D3DF7F9F2DEB1856EF261083876069025C7D1BA8F9F8F2EC195A",
- "legacy_metadata_iv": "6743C3F804E19BBFB9EABF2C",
- "legacy_metadata_key_hmac_key": "98EB4A0D304CB167739F360037AEADE8DEE2AEE1DA6EC4A34354B3E5AD0C367C"
+ "extended_metadata_nonce": "C1BCED6F35A78F0FB40F698B",
+ "extended_signed_metadata_key_hmac_key": "30BB3C9AA11570317B0551F667CAB16554C72400B318F99E70FCDBE24138CBB9",
+ "extended_signed_section_aes_key": "A32C24E09D4ADAAE24CA1944697B961A",
+ "extended_unsigned_metadata_key_hmac_key": "4B5F583F19BB6D221E6105E55B45F9A2CEA17CCE179B03BEB99A9C50147CD2FD",
+ "extended_unsigned_section_aes_key": "5F97AE24166CBFAF9BFE96EC213142C9",
+ "extended_unsigned_section_mic_hmac_key": "C7AE5C3B45B8FA9AD2EB92D39CCF3D67C9F10BCFB44BDC747EEFF84FDEAFF921",
+ "key_seed": "ADBFB02FB9DFC75BD74516C628285096F2C4350DEA65D4616BB4DD30DF2C8907",
+ "legacy_ldt_key": "9CD5AFBB5CDB94FBF0A51B07C7B8C0CDE7EC9E8985D40CCB6E2EA21EBBA409B9D5E2123BA5EFB45000FB0660EC063274F4E112324037D7548F4CC9DD2B00A9EC",
+ "legacy_metadata_key_hmac_key": "CE65891EF8F79F286A62705AAB9FFDB3CC49FDDC42F084BC06D11A4B7C254403",
+ "legacy_metadata_nonce": "5630BBB459F3C2FF04480607"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "E4CC",
- "expanded_salt": "A1E4328176AB21117885227723B67D52"
+ "adv_salt": "6716",
+ "expanded_salt": "7EC07D3176C5ABCB3731A38D7CACE699"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "756C7A29854A53FF463D97E07C0E2324",
- "legacy_metadata_key": "E0F6EC8DF3ED6B392A2056761AD6"
+ "expanded_key": "97CCAE1E7A2BB5319834306D940B4798",
+ "legacy_metadata_key": "736A5584FB8EF29D722171B0E133"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7816AB88FFFF08DE644BEE158743E34E",
- "derived_salt_first_section_no_de": "4E4765F03A554DBB53E720A3B168F3A8",
- "derived_salt_first_section_third_de": "767F365DF04E1AFC152C2CC73BADE156",
- "section_salt": "01E26007CBB46DE79451BCD56DBB0E92"
+ "derived_salt_first_section_first_de": "AD388BD4C9CA419A983A50DE70B96E87",
+ "derived_salt_first_section_no_de": "ABACFA97695D2FBA00E7D5F2BB322165",
+ "derived_salt_first_section_third_de": "C3BDDC19E7A1D453F8BE2B85958C2B6A",
+ "section_salt": "522FF617F4877D7FCCB569597903DD05"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "B81C7DDE3C1C194D8B48F800",
- "extended_signed_metadata_key_hmac_key": "3A0396C1A90228467CB6ED09172CFF9BFF060B9F27847BA647424E82EDB8D699",
- "extended_signed_section_aes_key": "777C15B27DCA859AB59EDA9ED06ADC11",
- "extended_unsigned_metadata_key_hmac_key": "4C5A4851980562E242B7DABA7012776CD8A86D2029E725D845688E548B2900F3",
- "extended_unsigned_section_aes_key": "1813D7002B3D57748593F31BEAF20213",
- "extended_unsigned_section_mic_hmac_key": "463B4C2DD4F3D0D50EBBA95B8288D0636D2008D278FE8F73E8D76A6B844A5B33",
- "key_seed": "3A749B79D581C215A2FDE307E5903D9D5C6C1CC39120DAB7C8C216DFAD3B9D6B",
- "legacy_ldt_key": "1E52C8E048724AB42404224EFD13EB4A0FA657786D468EEF7C716F9728A4E51DE39365627F82D62AE6BEFF6C8CF1E0E61458A0B244559A346B06FF51E3C9BDD0",
- "legacy_metadata_iv": "D93727D74CEDA33437BBB8E6",
- "legacy_metadata_key_hmac_key": "7F3B256FB7FBBABBDB5A3B6E0B0859D3543A1149169B049B978E0A49FE403C1F"
+ "extended_metadata_nonce": "2D02434C5257433FC62E157D",
+ "extended_signed_metadata_key_hmac_key": "BC06E2ECDF44C4E749F07AA9FFDAE6786156382DEB38214C23ADF9676273F058",
+ "extended_signed_section_aes_key": "277CC3A4FBD6FA8A0433813C35AE03E0",
+ "extended_unsigned_metadata_key_hmac_key": "A93DCADBFDB56157B57CE0FB27845AB3B14072BB8F51AD430251D5FE431E4862",
+ "extended_unsigned_section_aes_key": "01AACC054CCC1E4C69A30F5BDB083DF6",
+ "extended_unsigned_section_mic_hmac_key": "ABD3E647D57721A8AFD6CE354E65FA9717FE273B3D3002C9EF116E3060EE49CA",
+ "key_seed": "04A09B2901EA8F73BF4503081DA2B2F1C701C8FB2E6D0727229AAF18E618D6B2",
+ "legacy_ldt_key": "F728279808DAA6957480F08D9A71EAFCDCA22F6D8BB646A1B55174997DF3C161D95E50BDC84F2AF897D97319D86D6CF1F4D29755B2A4BD4C896188B493579F69",
+ "legacy_metadata_key_hmac_key": "93F7B7662855DC419AEA47D99180AABAA42DE340259E5875C60E90DF9600F419",
+ "legacy_metadata_nonce": "D451E840855973EBCD5CB21E"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "A4E6",
- "expanded_salt": "9AD6EB3BE9395989A939AD0DB26077ED"
+ "adv_salt": "4BE1",
+ "expanded_salt": "76209392CCAC5FB22D8EEAFAEDD20ECC"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "9DC2FCE2450FF3447EFD4327A498192D",
- "legacy_metadata_key": "A61F6AA418E6B8809523F86D721A"
+ "expanded_key": "2EAFE79FB0028DEEAAABCC1ACE7F7B08",
+ "legacy_metadata_key": "1B9CE163FB544E4B189C5F2B72E1"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0B895D5A4B5E8F15E3F6B4BB46F14342",
- "derived_salt_first_section_no_de": "FFD47335FE0562183C751BC1FD33CC68",
- "derived_salt_first_section_third_de": "8C6E61694C094EB572C0E747626B8A07",
- "section_salt": "DDB194B8C1D0213FB9590185A101D80A"
+ "derived_salt_first_section_first_de": "2F0D5E19F15AD52B54C40021FEE0F9E1",
+ "derived_salt_first_section_no_de": "7826CEB8C46C4FE75DFAEB56973BC3BD",
+ "derived_salt_first_section_third_de": "CAC8343515178DAE36FD923FEBD8452D",
+ "section_salt": "CDBB37DFF788530779D089D6EDD732F5"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "242177A9F3E499492B672145",
- "extended_signed_metadata_key_hmac_key": "EF80B51B181C8747C8CB275CDBD9F27385B461CE1E382A4E85D421D278F6B7EF",
- "extended_signed_section_aes_key": "8D6BD49C36A1C2D85D0C6C0911506F88",
- "extended_unsigned_metadata_key_hmac_key": "8CE657576037BAEC83B37A2BBA9E36CDA43BB500062170688C5B87FF6CDCE780",
- "extended_unsigned_section_aes_key": "BE1E24A30C44CFDC720ACC3746BB28D7",
- "extended_unsigned_section_mic_hmac_key": "A6EF63BF56F6C52DE066CDD48712B4B946D3ED8A0E65C457D0397BD022610F4B",
- "key_seed": "8D1FA6123B46EAC40611C8B8825509F91E8291A3874B344FDE66C5428589B602",
- "legacy_ldt_key": "A7011691DAC6AA515EB699622011FC7794DF6228CABD0525BEEC29E76CD520C87F6FB478E17F4680FCDFA7374501B6A137106E8F1A83D97957CCCDE6E79115A3",
- "legacy_metadata_iv": "0C3F89CFEC1802BFDD387B3E",
- "legacy_metadata_key_hmac_key": "594E0DE6E430027E4CF556A46A8658FC0C350E5B0791C68447D4A091B45E6C49"
+ "extended_metadata_nonce": "71177ECD2A4AF37C9608B3A8",
+ "extended_signed_metadata_key_hmac_key": "B1ABA8C85AFC6DF1FA37250E164F40BD88ACBEA2E74A12437E13C3E0640C1FD6",
+ "extended_signed_section_aes_key": "FD479476C02CE97482D3AC90876BBD75",
+ "extended_unsigned_metadata_key_hmac_key": "01D6F430855496FE82A98334CEBD234A31BEBEFC900AEBE86C89ADDA184F1510",
+ "extended_unsigned_section_aes_key": "7B66F349E92928431F7499B1609BD60B",
+ "extended_unsigned_section_mic_hmac_key": "AB9676BE62D30988CB70A5A7F958E73B2DB6765CB2B06F06F37D462A930FCE4C",
+ "key_seed": "7C6A118C1331C9276169A367E049962899C7A2E20444F9F964D83FEE4B0C46A8",
+ "legacy_ldt_key": "A0C190B05BC945FE38E1C117D1AB06FE7DA9C46D74F76974CFD558344964054B05EE748E0F8F17D6A3AD995B129EC83F5A803F9FDE0098551020356E59CBE674",
+ "legacy_metadata_key_hmac_key": "C12FF27071B70A96145919151789D0C4311B5CE896C010D49431A78FF933393A",
+ "legacy_metadata_nonce": "F388B3284F9C4983BAC29498"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "8261",
- "expanded_salt": "ACE228B25E368353114924961002AE10"
+ "adv_salt": "B1F7",
+ "expanded_salt": "7DD107544AA52412D36D5AC0C65E8A86"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "BF37DCE1A65DEB93FF42E524C00BF473",
- "legacy_metadata_key": "BA578B4E7BA8787CA8DB63708977"
+ "expanded_key": "B6A84A4591AA5C4115D0D47E9D475DD1",
+ "legacy_metadata_key": "66D7DAC60B00990F01D618D929E7"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EF494FBDB120677EEE0DCBEEAD5D4D98",
- "derived_salt_first_section_no_de": "198947B0B85CF36820BBC11EEE141C6D",
- "derived_salt_first_section_third_de": "531DF047C3A752A3C2BE57219C2BBDAE",
- "section_salt": "9C138F3BC35BF3DE7F0A860E73BD37E7"
+ "derived_salt_first_section_first_de": "C03F4007F1E7180EC871FE12519F98B2",
+ "derived_salt_first_section_no_de": "A76C0BBEFDC804F829DEF65EA3F51C90",
+ "derived_salt_first_section_third_de": "A4DF26763162B19617B24D357C4E7EC3",
+ "section_salt": "4D555178782275479BAEBFCD147C9C61"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "7A538253EF254E5FEA30D7F9",
- "extended_signed_metadata_key_hmac_key": "C8AB6577792184CFAC6C4D80C7CC8E666D138F4A7200B3DF13F718FFBF225FAE",
- "extended_signed_section_aes_key": "1558249410EF6369456AA7A3930B5B5A",
- "extended_unsigned_metadata_key_hmac_key": "9F688E5624898684A0FC950575CFB66A98A4DA5E2742F5F1F72A9C50A0170E73",
- "extended_unsigned_section_aes_key": "FAC2E487B692CBFE62C476255879ED9C",
- "extended_unsigned_section_mic_hmac_key": "BED5439AFCE65397372CA54BBBD458EC11A28EC67AE697A6BA71C737AAC392A8",
- "key_seed": "DB01EA6CD4E664FF080D4DB2BAAD96909AEA6213333DD433A40DF3946C93ED64",
- "legacy_ldt_key": "1914A8B8B8C604717D1ABB63318C23532CD1F9B1FA20C127967D4F17DA5FA414D4E5325E5B6E539C1CC86544E426B5298EAFD25EE765F673A7643BB2E8D382FF",
- "legacy_metadata_iv": "332C45C824F9D68807DF1347",
- "legacy_metadata_key_hmac_key": "1FE1C2B864C265FA8FE7DF72259E36D283EC4DBB045DC3327DDC74297C00823B"
+ "extended_metadata_nonce": "E4E6C206BDD5477A4894F465",
+ "extended_signed_metadata_key_hmac_key": "9274B9E3806FFB99E2D096597B8716E0949486FF30BA7A1FAB01FB5D143E5E30",
+ "extended_signed_section_aes_key": "5E09FB429564270B1E01C0C12064457F",
+ "extended_unsigned_metadata_key_hmac_key": "AE2B21B4DD683EEA3815374C1E606EFE81B3012A20C244F3EF44E4B126C1B060",
+ "extended_unsigned_section_aes_key": "4FC383A9EB6FC92D4E550C0869BA7424",
+ "extended_unsigned_section_mic_hmac_key": "A2D2F07EE970FFA7030BC81DB05D87AD7A1CF60E45A0F607F7F7D6CE64E7FE1E",
+ "key_seed": "06E34312B7BA188C16BF9EC455B7C3DB7BFF273ED7E671DCA6218923F6315EAC",
+ "legacy_ldt_key": "9A779C0695146D84379F839C1B01410A77838D4627A16D697AD8BA062BAF892C0518FF10250348929DD369E8A6B0D41076A485B48287E01F9D28F76A7AA93C25",
+ "legacy_metadata_key_hmac_key": "802F06CF894D4A44E91C384CD4CA11282E443D9E44D9A038715A3CC889DDCB19",
+ "legacy_metadata_nonce": "0918753240B432ADA508D2A0"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "BC54",
- "expanded_salt": "99519074F0590192D425D934B91CDDF6"
+ "adv_salt": "B28E",
+ "expanded_salt": "27122881802D23D4B730928B317AD649"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "FB7D50B161AA1A082597C3A80184F06F",
- "legacy_metadata_key": "0A8B9807DCA4FB02B3186C9C35DD"
+ "expanded_key": "A60426318C060F541DED5C1F7AFA6E87",
+ "legacy_metadata_key": "4EE9FB0C014E5C8DEC62CDCE3A54"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "869BAA12CDAB00C7A222F83A09FDB021",
- "derived_salt_first_section_no_de": "8F03CC95E2B24989BEEFB74D204A3AF7",
- "derived_salt_first_section_third_de": "2C3033416D9A6171409B33EB988F3DA3",
- "section_salt": "0FBA8F7896472BEC47D7FB231A187B35"
+ "derived_salt_first_section_first_de": "C9264AB98A5CBEC98A59B436301C9456",
+ "derived_salt_first_section_no_de": "75AA3B31D990FA958C0BAB07C316137C",
+ "derived_salt_first_section_third_de": "20F8C6AA4C641C3EBAC513410853A637",
+ "section_salt": "63056BE924D9AF7A4E1EDFB78F8FFD42"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "115DCEBE6875AA3FF28F10CF",
- "extended_signed_metadata_key_hmac_key": "AB724B43674741DF2FA0CC75B51CD1EDFBE3AFE878E01D7D828ED984D2186250",
- "extended_signed_section_aes_key": "321C1394466DF82AAE7169BEF832F2EF",
- "extended_unsigned_metadata_key_hmac_key": "F23010A94B05DD5BE07E1A7D6F570ED7CCDF3BFD9E737A8E8E743A6704BAB276",
- "extended_unsigned_section_aes_key": "DC5F2ABB365C49A0F4925D4631A81C18",
- "extended_unsigned_section_mic_hmac_key": "5873A4844D239FD9C82E669A7F117AD29D9DED1BFFF28E95DA2CECEDC7D9E797",
- "key_seed": "3F946C8773BC7DF5F14BCBF4288DACCF088EB7958671F389C2EB9EBDA47BB2BE",
- "legacy_ldt_key": "0ED617FCCA790B14A08E31661C26DEFFDA2F7FAC22D19E183A6E345691FD8714536D315B1326991398B32ABA83F08495EC79E96033766D771F7A045BA4B5F75B",
- "legacy_metadata_iv": "D1D9E5E43FD21023D526AC88",
- "legacy_metadata_key_hmac_key": "DB7B5B851D158C23ACC7D35C55F499EFCAC226AF6AEC47BD0CAD8932D7F55EBD"
+ "extended_metadata_nonce": "641A9E897828B9CAD7C16FF8",
+ "extended_signed_metadata_key_hmac_key": "690679062F05D8BAC47BA64D13F91029084631B9FD39696B64702B533283C8F1",
+ "extended_signed_section_aes_key": "A521430F5CF09B5073A2EE5DCA704962",
+ "extended_unsigned_metadata_key_hmac_key": "2685C8CB006301455AA48F317D812AFA9F36FC071A692A7E21F411CA4B203E26",
+ "extended_unsigned_section_aes_key": "ADE5DC26FA3ECD51A6B4BE7B2EA0C70A",
+ "extended_unsigned_section_mic_hmac_key": "D8AE4269C81599401F6DE7805A5DD401BBEAFCE68BCF3245E315940130C041C5",
+ "key_seed": "41ECB16B981741F3FE1EC685A601EA8FB5F3B26ABAEC70294805339C90A8AD71",
+ "legacy_ldt_key": "8A6B4B8EFAF5DE8701684F7470183A4046FBFEE965E61D4219E09F95280D43B895BC9FE4B39499C927FF0541F067C95D98377D139CA23D19AD7B729F75207BD2",
+ "legacy_metadata_key_hmac_key": "D9A2131A2E99553E598BAACC299C5E40E3051A4E4244F3FB8705FEACE0CAB3AB",
+ "legacy_metadata_nonce": "862DF488A461D0EFA780FC19"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "4125",
- "expanded_salt": "242C1B74C50B45F437E30F545E66E8A5"
+ "adv_salt": "7CE1",
+ "expanded_salt": "72F031CD4FB7AB7A03423FBF04BA2A9E"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "6DEC2241E14E16A23AFB3818624E14E5",
- "legacy_metadata_key": "658172FBCBCBE95216909E9DBD96"
+ "expanded_key": "07EDA657E63FC8F6737B5B3F4A0A8C81",
+ "legacy_metadata_key": "F141D580CA3325C5FC485E552438"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B746138CDA75A9D828C14E2679226F4F",
- "derived_salt_first_section_no_de": "E9F13F38E8FE2FB65DC572E0CCBAC583",
- "derived_salt_first_section_third_de": "A823BF15D1EDE886E1178CBF4702D87B",
- "section_salt": "BCDA9DF5858AB23D74385FF78D7F2395"
+ "derived_salt_first_section_first_de": "D9498F72764DFB0266F773788284BCC9",
+ "derived_salt_first_section_no_de": "2736F330B0FC8CE3AC39558F48513039",
+ "derived_salt_first_section_third_de": "2B485FFF58AC337F216B01885F0A1FEB",
+ "section_salt": "482DFB90D8B4501C8089AD97750EC132"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "31C9701D7BC8DAFB957E84A4",
- "extended_signed_metadata_key_hmac_key": "EA3A44FB46EB11CE5DC3325F1134950C79E7197AB41A7A521F105ECAAC6007B7",
- "extended_signed_section_aes_key": "CDA9F9244955D0CA530042A11DB71E21",
- "extended_unsigned_metadata_key_hmac_key": "7E5AD419E8727E7299BFEB5F932616575D24522097D28A35D607A11FC34EDA70",
- "extended_unsigned_section_aes_key": "8C739D072DC7BBC30EE55F3C6B676129",
- "extended_unsigned_section_mic_hmac_key": "1F8FFBB6743F588B8F5AA7336547A687C7C68DC609FBDE22BDA380C3D525A0D4",
- "key_seed": "D1C4A759A4088EB1C2D85EC8D011A32592C1036A8BD9C543B6CDC69DA2F35779",
- "legacy_ldt_key": "F7067EBC510FEA192F7BC370885C39507C2CE406502B34CCA73D791AF7D6C8B6E5F1D19858A9FB793AAE704F46FBED4F3F7CF06DD20E115487868AC70D4B738E",
- "legacy_metadata_iv": "9C824D32509AEDD0577D1968",
- "legacy_metadata_key_hmac_key": "6C51A7C06035BC6F08A330C6BC43FA80DDF3A606CA2623001ED4A094444C8E3C"
+ "extended_metadata_nonce": "F1FA2EBDE91BEFEFDFC7CF00",
+ "extended_signed_metadata_key_hmac_key": "B1DF6DF11C98D5BE667BC5CE8B91321CC5498F9149B0217D48BA9C6E81BE9074",
+ "extended_signed_section_aes_key": "D63F841B59C4398735CCE79146AADC3F",
+ "extended_unsigned_metadata_key_hmac_key": "37A581DC364BB86DDC2AA8F8A1B939A7A92BBA83CA3697408D1CDED5699A4243",
+ "extended_unsigned_section_aes_key": "20A1EA0E7454FEFBFF4DA2BB4DF6CD8D",
+ "extended_unsigned_section_mic_hmac_key": "2842AAA512670388A45EC3DF52356B28AE1F7C3CEA324BE4847E9D8AF578A5DE",
+ "key_seed": "37399B354FF258D23A87941C4E9A348D851C5CAB79E1DB345BB2568841ADE7B7",
+ "legacy_ldt_key": "070759E454B3EBE99755C4C8C6FF67BB9DEA89D49A2CB68E02D3A4E66F12D1F97862F8A8B8664CD80A6F17EE9372170908F47B70681CCD6673019505E4130542",
+ "legacy_metadata_key_hmac_key": "535D5A54192D3E58EFB23C815A099924B2602137D8E12F6279A24077E232C3EA",
+ "legacy_metadata_nonce": "04B9108D0FB4A41EB17D754A"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "036D",
- "expanded_salt": "B632179C11C52811DD43E21CF1D8E086"
+ "adv_salt": "D6EB",
+ "expanded_salt": "83EB2FECC0F1C19A6EF7FB30E945C103"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E00AC2C8E3C7D9C23A56A5E9E6A85AA7",
- "legacy_metadata_key": "7D0343DFBF228A0C559B8CEECA39"
+ "expanded_key": "60C52A4D9245D6E8D49DB7FE7FDA5C43",
+ "legacy_metadata_key": "4E2117A0CED10CE233750FBAB835"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "38E0BFC31026D4A15698F60DA8DFD3EC",
- "derived_salt_first_section_no_de": "F727AF8DC6CF2A41C314FACD1F80D284",
- "derived_salt_first_section_third_de": "DA4114544641F16AEC0AF7D077ACB9A1",
- "section_salt": "1A656CFF4D9BE4E87546E06922434FB5"
+ "derived_salt_first_section_first_de": "849B406AC1383E3333C4526823350AC8",
+ "derived_salt_first_section_no_de": "F2657BBB7FB8879E98F9D4EE55343AA4",
+ "derived_salt_first_section_third_de": "9025C1E15E5668F1144640D7C2CB7F63",
+ "section_salt": "971929C83FBFB8552FAC4316895F82EF"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "3320663CE26D1CE3852628AC",
- "extended_signed_metadata_key_hmac_key": "67774B17FBF32582EBADA38C6D191007704963F48A1EBA622F4D058E20DBE51E",
- "extended_signed_section_aes_key": "440736D0ADDBDB02EC07438028AE8AEE",
- "extended_unsigned_metadata_key_hmac_key": "F749FF529F32DD3AA5F458EE56F8EF46C07E004EEE7E10394CB9578B9C8151C4",
- "extended_unsigned_section_aes_key": "0A930C920D892450C205A05A49B19A84",
- "extended_unsigned_section_mic_hmac_key": "867A520158D6579E25D36C6AAB002EFDE9C7A44AB31DEC43BA77558DF06CC20C",
- "key_seed": "EBD86E86E5C2B55B0049AD008B6C65AE284770FD0A8D37B4D282645397AE82C7",
- "legacy_ldt_key": "9C6AE81BD7179D59186E0ECB050A9EBF9620FA9EF530623259D141EA9B56DCCB6F8A0099D5B3AFC80F43BD9207C4E3B3A3E95C51C847A3A69CEF4EEAB5109A16",
- "legacy_metadata_iv": "84C9710D571A3DEA62E4C42A",
- "legacy_metadata_key_hmac_key": "A4EBB5EC5785E0BF3CAFCE085D32E64037BA6772D70339F4AE890D0FE342484C"
+ "extended_metadata_nonce": "BAB6E78DEE99392F09D6A045",
+ "extended_signed_metadata_key_hmac_key": "FE88421ABA3A3E0DA9E519243749AB2B28586480DB9B59C41F7E4AB17A9459CF",
+ "extended_signed_section_aes_key": "EB1F668BACAD4DE4555036C8B9F21D9F",
+ "extended_unsigned_metadata_key_hmac_key": "F7016A22618D636539DD37221EB7BA8BE8764707AB9DEBA695FAE93546E1E777",
+ "extended_unsigned_section_aes_key": "7AF856E9EA5F3AC6EBF2DA80EC065050",
+ "extended_unsigned_section_mic_hmac_key": "17738046ED5E72F0C379D08FE6A815CDF72CB1B8BA2C675DD013872E7B0DD185",
+ "key_seed": "185AF89CD890AD6F7C0F9DE8228DB8A92AE25DEF3BE510289663D4C196FC2CDD",
+ "legacy_ldt_key": "3659A65B725059278CB5ACD34B73F32EC5D8D267C15E567BD4EEE489618EFA62D03DF9A8C77D3B407F107927AEB771EC613320B1DAE7A295FC49AC8E1B274F8A",
+ "legacy_metadata_key_hmac_key": "5F10B1A7CCA2F40E32B00738583CA2604312F1D9648EB375995EF725438B6B5B",
+ "legacy_metadata_nonce": "EE05CC8759A360B9699FFD9F"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "84C0",
- "expanded_salt": "DAB0ED9C1F81865B9FD37071708BDF13"
+ "adv_salt": "7FEA",
+ "expanded_salt": "C7E9D2070465A796CB27EA5E81D7B5C9"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "F18E4AD65C18E8FD116E2CAEBFA7DB94",
- "legacy_metadata_key": "47174678CF6FA7DEE0E05334E06B"
+ "expanded_key": "E4AB233100D9D776DEBA1949426DC104",
+ "legacy_metadata_key": "C5E5885E8041F9A0E290D0174FF0"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B61DF6C66538685198C81C35B9786C11",
- "derived_salt_first_section_no_de": "021D1824FF0D46468E254C7417010EF6",
- "derived_salt_first_section_third_de": "71072302A93C89CD07907A2C30436265",
- "section_salt": "7CDE00AC84F62FB7936948FB6B95D40A"
+ "derived_salt_first_section_first_de": "582878C554E5BFF92A4C26C50BBC2B27",
+ "derived_salt_first_section_no_de": "C9FA9274CB4C3F6F03BB7F2AA5D70A11",
+ "derived_salt_first_section_third_de": "582276B5F71F65E87B883C86DEC83349",
+ "section_salt": "2DA2B6676B05EADBBA2AC2C7A1B91E5B"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "853BD75156AFFB8940613FA0",
- "extended_signed_metadata_key_hmac_key": "A3C71ABFA7CE16E128CA091991BD6DEE3120EED0AE5F31CFFDF3E530A8208505",
- "extended_signed_section_aes_key": "AE21920E638E3DAF3A7B994D5EB9D1DC",
- "extended_unsigned_metadata_key_hmac_key": "C3856345BD635C43A0605BF2DFB81A692D139CA9A61EA88F49BEFB9204E79439",
- "extended_unsigned_section_aes_key": "D73F1B993768B41AE951EC13DAB736F9",
- "extended_unsigned_section_mic_hmac_key": "8AD53085960C12B365A958D24B78D68B38B2B41D5D3F24C761D1944E960320E5",
- "key_seed": "62034832E628C769C45D5C3C3D548FFFC66E10756E7AD4DE0C7B9AB62BDDDDEE",
- "legacy_ldt_key": "551731E8DE9EDD34F63A59CFCD60BC103E6CCBC7141C6A8863F77038D80D4CC7EF1A8F186766BACBED531E0682852A84348790D96B2DDF362549A89475929B0C",
- "legacy_metadata_iv": "9FC580678032FF1AF94FB91E",
- "legacy_metadata_key_hmac_key": "CD3C5AF21887AEF7ACDAC2FF270AEA210D7C71F2E8EF2DE38C0B8C2CD2DBAC64"
+ "extended_metadata_nonce": "1516355E155E481A2C1BC292",
+ "extended_signed_metadata_key_hmac_key": "A96AB799DBBF000DBD6429124DF1AB94AD26BA8EA3CFA2BD3685D18F74AB95B5",
+ "extended_signed_section_aes_key": "2EA7AA6081C6055A50D2BA83F7650ECE",
+ "extended_unsigned_metadata_key_hmac_key": "54D6DE3AB30E06638AF867C79CA8F291499A6A912964EDAE3FFF06D75D6734FE",
+ "extended_unsigned_section_aes_key": "FCF1C0C04D383C2B440E91142D5F8DF3",
+ "extended_unsigned_section_mic_hmac_key": "617A0B559B6C31312C6DB59956560DB2200B0DA19132085BB51EEC4662365BEC",
+ "key_seed": "BEE55110B49523CA92D9CD1921A3A3556D3DAE9E7D2DC1DCF809A7F744D744FB",
+ "legacy_ldt_key": "3050E135E4A609B600FA94D673AD60C6800F860CEB26E0C080669174F4967FC877241054D94C945CFC4F511404AAB3941EF5337E49A3C0357DDCFBEE6D0FF178",
+ "legacy_metadata_key_hmac_key": "D4CD2F5513409E9C08796B367D68ED86E7F8AA1D73B3BC80E310A6A89FBB5AF1",
+ "legacy_metadata_nonce": "69BBF34C4C06F9098ED5822C"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "5699",
- "expanded_salt": "BE6BB375C9956FCA60348AD6FC770D52"
+ "adv_salt": "E41C",
+ "expanded_salt": "F90A3A5A7E184026B2412B7981E6E4EA"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "6634868DC35E8E14979A31C7053D7103",
- "legacy_metadata_key": "0B6956C229BE28808BC2F0F1D70A"
+ "expanded_key": "7CBB4317E53C77A6EAF04270340C8E74",
+ "legacy_metadata_key": "290406B8E4F3FDD69F77100C25F8"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "62A272AA059A3C6E31FFDA302872F521",
- "derived_salt_first_section_no_de": "2AFDDF6CE5808638ACCCF0D97E63AA73",
- "derived_salt_first_section_third_de": "C824ED3E8890CE08C926ABAAE18BC67A",
- "section_salt": "4B41FF36C2933198DE83446E0FB432D2"
+ "derived_salt_first_section_first_de": "09C85DC366B0A127E44BC3EB55F1B69F",
+ "derived_salt_first_section_no_de": "8E806978646803E71CF5A89A993EBD15",
+ "derived_salt_first_section_third_de": "A79CB0BE50F815A706B75686E8AF95A8",
+ "section_salt": "BDC5C3A2FDEFF52154DBEE9B2DC99272"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "95163FD1D226A246C9F25AD3",
- "extended_signed_metadata_key_hmac_key": "0938656A0BEEC2AEB7301E35F1304AE7753A65DA72A34F8AD2811FE041FC183C",
- "extended_signed_section_aes_key": "E0AC579A38A055936BF59D0ED96D7C12",
- "extended_unsigned_metadata_key_hmac_key": "6B8EC181FE621DA4DBE739206E6ADB1F4DA0D6F679D5BD565B60254DD69C4A55",
- "extended_unsigned_section_aes_key": "CB23D8FB79E934464B5A1F4834CCF8B6",
- "extended_unsigned_section_mic_hmac_key": "CDCD67E87A4E8A505F3E236DB7039E273F50DC91083ACB47F9103DFCE9B1028C",
- "key_seed": "27D3335E575FF5F78687067A03B25314AB423A89C14DA3827F5D8AA49DA50A6E",
- "legacy_ldt_key": "FB9C787387CDE0FD3E9F6F8E8FDFB7E4412A08C561BE4AC522BC0BEF4DB3AEC4DD1A922A230ADBD7588DD25E678684CB6FD9AB11E69F12A476DF0296B4E6AE53",
- "legacy_metadata_iv": "D288F68B033E2CC5920F2CCD",
- "legacy_metadata_key_hmac_key": "DAA2F61C2F59810758ED9CBB203F36C8AB5FBFE2A3E1C7B48F33DBF0D44FA394"
+ "extended_metadata_nonce": "38347176312E7BF0CFC150F5",
+ "extended_signed_metadata_key_hmac_key": "AF37F8DDF621E95E9DF9E960D7C3C3B204CF5F660E33015C0F76E1FFBF793255",
+ "extended_signed_section_aes_key": "DDCE8B724FCB835C5769FC12FBBBCFA1",
+ "extended_unsigned_metadata_key_hmac_key": "2A31672AF767AD1C20F69A40FC0C39E82760A88CF7FC32AC562B4334A3BB6FE1",
+ "extended_unsigned_section_aes_key": "A6DA0A55C2DF68D9A268E2E7D5DFA910",
+ "extended_unsigned_section_mic_hmac_key": "842AC63178D49573C9A294B11B23053A8D7D032E2092A7B090B18C3B4B1B0D41",
+ "key_seed": "5507520DCBC7FB26D474314F10DE9CA600A29F7EA2B4EE3FCBA75A79812410EB",
+ "legacy_ldt_key": "13FAD5A042A94E5BB18ACB097E8D9AC9BC3212ECECCAE8B3F0877B28BE475A00F055E916510D5E37B70EBFFC6E20281A98E960BB875B6CA04DC4A4D791D728D4",
+ "legacy_metadata_key_hmac_key": "D208CCF899D7738EFA94AF2F50D71E96A850ABD8DEA1E731513BF959E52245D8",
+ "legacy_metadata_nonce": "55869FF688A156A9AD67F4B0"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "6ACC",
- "expanded_salt": "D61D4B5CAC2130DE87C66A2139633B9E"
+ "adv_salt": "5D87",
+ "expanded_salt": "6CD22F42846D18DEB8B16AEC28055646"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "150D844EEA1A74427A44A75AEE7C54C8",
- "legacy_metadata_key": "610D4DE403479EF31CC0644AF7E0"
+ "expanded_key": "67C50D4BE0C807CC777A451E55290706",
+ "legacy_metadata_key": "CC56E75A8BB54C3CE1EE9DAC6855"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9BCCDF03ED65C478E289099FBFE44266",
- "derived_salt_first_section_no_de": "F28A623E175171EFE43278AF72633DC3",
- "derived_salt_first_section_third_de": "F9A29AF4A2755972FF6A57A7320682E9",
- "section_salt": "886B4FF7A06AB4A911DBF3BD962C525E"
+ "derived_salt_first_section_first_de": "724B63781CDFD0DE57D682E929C0F1AC",
+ "derived_salt_first_section_no_de": "DA6C22EBBD2E4FC58307D725E7001E18",
+ "derived_salt_first_section_third_de": "70E96C64C5013DDA87D8750BFC734CCF",
+ "section_salt": "60922665EAA6734D3AC84D0BC6B8173E"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "8CB59D37541DBF4A37D6F2B4",
- "extended_signed_metadata_key_hmac_key": "4DE5D7459FEF6FF334AA92D76D819BAC4458607AF1037CE533C24F536B81F655",
- "extended_signed_section_aes_key": "25690CB1F57B7D3491A73BD8A88A8060",
- "extended_unsigned_metadata_key_hmac_key": "44A7E884D565A4468F8DBB002663129D79C8D9CAC182417E25693F6BDC1F12CF",
- "extended_unsigned_section_aes_key": "2F11F191C2721362617C38EBD83232F9",
- "extended_unsigned_section_mic_hmac_key": "117514CCB6CABCA123B11FE2540CE83FCA177FE9A6F5612944A9BEFD6AAE2D8C",
- "key_seed": "AEDF192FDBA9BB4C6BE75CED8521D030A3116BF4F49086CA27F2F81378262ED7",
- "legacy_ldt_key": "1DDC178D7B77B6DB8081A3DE50E14BB20C5AD80803D559064C24306C7E230FBC8154F208524DE8ACDAF17597A1C4ECAF484548900AEDD0ACDFDAE805B6D3DACC",
- "legacy_metadata_iv": "BCD2267DF2F7152ECB5F99DB",
- "legacy_metadata_key_hmac_key": "73FCC3502C96E1C12BD22D7AEEB044A839C57E08999A1B37547141EECCC985CB"
+ "extended_metadata_nonce": "6195C05F850120907C37E671",
+ "extended_signed_metadata_key_hmac_key": "C197E6E017FDECD561EA88AD8CBF7F9826B17CC993E15803C2B770DB98803F71",
+ "extended_signed_section_aes_key": "0400A8E1E5D2A6D93FE2DA13E109D10A",
+ "extended_unsigned_metadata_key_hmac_key": "DA4F587EA32EE460D0605AEFB2A3D4916137A0D27FE142D2BA315CFE40A7CF7E",
+ "extended_unsigned_section_aes_key": "97F44ECF5B72FCAA7730A06BC7E21466",
+ "extended_unsigned_section_mic_hmac_key": "1B2815943A5DAE1D4823E8B146AA3CABB59017B2D01E9DDA7731933E77354459",
+ "key_seed": "933CC9ED79D768475F2C50D65DD35E354AEC0ACDDBB1DB7A406B16A967262F95",
+ "legacy_ldt_key": "B3C8DB885F6949E585C9B9CFB8292A2E1D16DFAEB0D8B4CB859362AF85EEB78F55C676BAED4ED82FE690EB5A52DC194E3C09037367E0AF6C012DC33AFE024750",
+ "legacy_metadata_key_hmac_key": "68B1BDFFCEC2A954A0C61C07BA65A3028BB117945F0D405BFF859719E90C603F",
+ "legacy_metadata_nonce": "9368E6A9BFD9CA79ED0FCC4D"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "99E1",
- "expanded_salt": "424BB3492545619BDDC5C76C37AD96FE"
+ "adv_salt": "2C1F",
+ "expanded_salt": "764B370D8ED153B4D9AF7326FD7E3131"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "AA9833B821C2CD55E2EC376B3AF1155C",
- "legacy_metadata_key": "2264E14310574DC254BCF1A5F117"
+ "expanded_key": "6B947A303D99A9874028683C7663E5AE",
+ "legacy_metadata_key": "95E95ADB8AAC112E502641BB3974"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CEA5F98EA741063D065EFB51467A4B86",
- "derived_salt_first_section_no_de": "E44A7B9CC4C003D7C28713B0C2B93816",
- "derived_salt_first_section_third_de": "8FB5A4998BF4CEE3E7D6FDFD70E2146B",
- "section_salt": "30EEA803C91D76C465AD9D45F567E3A8"
+ "derived_salt_first_section_first_de": "699F64EEEE0A421370D20D1E656D8EF1",
+ "derived_salt_first_section_no_de": "0B9CC994DEB1CBEE31334AAE82BB01C6",
+ "derived_salt_first_section_third_de": "E883BA14BB1E9C1CF2CA544507A8E26D",
+ "section_salt": "93EC27FD11A0710A12D837043C9CB895"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "FDCF8C9B2C7255A0CCAAE2C6",
- "extended_signed_metadata_key_hmac_key": "55D4A6AC48C1A67D6F3584B405E45FA31A188D2939D314C85294D24915105C02",
- "extended_signed_section_aes_key": "6ECA76EA3180DD85BC7F1A62570F2571",
- "extended_unsigned_metadata_key_hmac_key": "73C06C6394E384FDFE51F43C581567D99C307A14923954D7770A5B8F4821B441",
- "extended_unsigned_section_aes_key": "D19B1C62FADD80C60BB5D3C2A2E6B1D7",
- "extended_unsigned_section_mic_hmac_key": "75577350150195B6024F3F2D646F1737CAAEBAF0E06FCF2360762B021650ECBF",
- "key_seed": "0BA5B2AA6208EF6E60B7035458CF31262993C5D75FDD4C99304F2A32D2E878C8",
- "legacy_ldt_key": "1511D3E1EC7347C50087A8F0AD577C6C940602AF3DF59DBD23627633D0656E6BC1157FC7E74D4536E8B028277AE15A386A4ED34FF61F82507E1EB3023FF2774E",
- "legacy_metadata_iv": "0DA1F35E154959E30100D8FB",
- "legacy_metadata_key_hmac_key": "EB855E9051790A8DB9FD460FF732F6F572B55101A45B24E93EC78E058C0676B0"
+ "extended_metadata_nonce": "8C118284D7A96BF2A60C1239",
+ "extended_signed_metadata_key_hmac_key": "C6CE919C79E1CB055C77D1213E9266D95C8B828D32E93F77A8EA73EA48C6CD20",
+ "extended_signed_section_aes_key": "6E770DC0F1C276CE1DCFB138E8005EC3",
+ "extended_unsigned_metadata_key_hmac_key": "2582C714334AAEE935486705696B9196C27A4EC495CB0E59C8601CD60831022D",
+ "extended_unsigned_section_aes_key": "255034A404E961637FCF4CE1CA72B44F",
+ "extended_unsigned_section_mic_hmac_key": "4216782A51DCB1997224685E06185109FEF99FA3354038A49FAE4F0E0076FEE7",
+ "key_seed": "562111357842DD6AD71E95C6B9DC635ADE5E2EC3A2E29A242117147A0148705A",
+ "legacy_ldt_key": "D258BC177A33B5E2256475FDC9F84AD78F8B4886EB8781B4F1926716A6BA6D527D75D2953CC4037044B14107A91B292A45DD46ECEA653A1D086283EAB5607FC1",
+ "legacy_metadata_key_hmac_key": "8BBC6480F67E0BB2AE62AEFBB16D97BFD4C37618E34B1982B29BA56B34FDB466",
+ "legacy_metadata_nonce": "3EA11851CAC5F5608CCCE44F"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "7823",
- "expanded_salt": "3273434F1F7410F4A8002AD34F4914D9"
+ "adv_salt": "1C18",
+ "expanded_salt": "A58037650FF49441923278D15FE312D6"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "51B5324F4098AE01B4955FCF4A0D94F2",
- "legacy_metadata_key": "5AD1F8FAE16DD522357BC2F4468D"
+ "expanded_key": "96B7834CD34C6EE7027864BC6CC410FF",
+ "legacy_metadata_key": "B8CD0EC6CBB33A4601A522200869"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "51D88F39CDF7CD0E174FD0258C5F42B9",
- "derived_salt_first_section_no_de": "470EB7DEE423FCFA39F3BBA1F873B2C7",
- "derived_salt_first_section_third_de": "50F2B5E54FFC2D3FFE45D77A65378BCB",
- "section_salt": "FAB48E80D214D5052A30B09394585B17"
+ "derived_salt_first_section_first_de": "B091260FEC73EE7A8D70201F9D464F83",
+ "derived_salt_first_section_no_de": "EE1D6CE31F19649C24841A7F6533AF34",
+ "derived_salt_first_section_third_de": "14FD75BF7AD5B802CE6725D9A4C2EAC9",
+ "section_salt": "CC587F388F406FC90B64C0AF1000419C"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5C4D94F8689925C91E9C9ABC",
- "extended_signed_metadata_key_hmac_key": "ADAF627B20B5D879EE87B4417396A061D6B5CED5C0A7297535F3DA436E4F5FD7",
- "extended_signed_section_aes_key": "B0B083EA01EBB6310BA05F01636DB9D2",
- "extended_unsigned_metadata_key_hmac_key": "42FC64AD3B4F34DEFF2EE6EAACA5E06CA930CC8A4C1C5A59835793382E85BE3E",
- "extended_unsigned_section_aes_key": "A56CBC0E0CF41BC77443EFF82062A8CF",
- "extended_unsigned_section_mic_hmac_key": "14CDDB0587B084E3D2F9180B2A04A2688FDDB5F9AD7BE2CDF5E68348C8483442",
- "key_seed": "469B203492552EEF4E71AF0D5F2E1BDF7DD7EE1135EECFCE0BDA1FF2DEEBA3C7",
- "legacy_ldt_key": "71C89E3C8F9DE2CA1A37B80CCF9C2A6D6DDD3217AF18B3DCFFB5C48E7811DF8C6190648DD12A1A71241CAA9ED5E8EEC501D7F92A40942C7E57C1C4A122A541A5",
- "legacy_metadata_iv": "71C00008570208E1AEF420E6",
- "legacy_metadata_key_hmac_key": "831D350FDF2337827425887FC9CAC0E73EA26416A02804ACB20E2B51E20A48CA"
+ "extended_metadata_nonce": "0F1F6DDCDD98D829428F0551",
+ "extended_signed_metadata_key_hmac_key": "6BDD30B0682F92D8E01A1483C3B21887F0053B3E99435388C6DD41037EB51AEB",
+ "extended_signed_section_aes_key": "3F4604AD3B2C106C10BA72C3ECE5AE49",
+ "extended_unsigned_metadata_key_hmac_key": "874627B363F91A534891A9285E0DF0EDD15DC79E3E48A165B0984D4521ACAD7B",
+ "extended_unsigned_section_aes_key": "B103A43F35DC81696985B85943FC9F7C",
+ "extended_unsigned_section_mic_hmac_key": "4983A837EC95679DFBB7BBC1EDA6839C351059CF76E3465FCB7150E2C9DAA555",
+ "key_seed": "67E041F864141E3F2D046910D9F966739B5C393ACC320E68C5DA6017D4599DC7",
+ "legacy_ldt_key": "D8BB8E5985E39A4E64C54FCBDE74D1D5D3E27781C34AC260999F4FF0C06B0E1AE7A0E6D4099F9BF71BCEF921B24C85751314574F394891E49C8001FF56806572",
+ "legacy_metadata_key_hmac_key": "2BE0A55DA15AA8323C56AB17C946C6A4E539560BA87A85C656BD1EF2326300BF",
+ "legacy_metadata_nonce": "6E488DABE0EF2C8F5EDEE07B"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "1ED3",
- "expanded_salt": "0755524F687CB53E921DB5BC1ED6548F"
+ "adv_salt": "246C",
+ "expanded_salt": "A04B4F4D54258A3481BC4E119A6A2B62"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "8EE9C8C5EB9FD440DFF68ECD5CDA2392",
- "legacy_metadata_key": "2DF2B6E6DD0DE4303A96BBCDD9A9"
+ "expanded_key": "9DF4EB64B8D5D2959CFD9D092BC37B17",
+ "legacy_metadata_key": "5505114A304DFA404B9258AB6AF7"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9D5A206A4FC767E09B68F79DD44A0D4E",
- "derived_salt_first_section_no_de": "B80A907EE5C33C4B19333EC0DB60783F",
- "derived_salt_first_section_third_de": "96E8484AC22D3873AD1659C798C8E1B9",
- "section_salt": "A2D922473E18E5FAC6575A0167B90B05"
+ "derived_salt_first_section_first_de": "92F14175B1DFC4CE170902636E42713E",
+ "derived_salt_first_section_no_de": "4156C04BB9AE6EFA9DEC3233CD5A305A",
+ "derived_salt_first_section_third_de": "3C58FB419F0BD045E235ADC4352676DA",
+ "section_salt": "FCC5C8C0A905123991DB1963CA187342"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "6EA692602F00124C6A343838",
- "extended_signed_metadata_key_hmac_key": "8D7F42D23937FC38330ADF816774C48C8ED41AE3752B0350516C9871BCFC37FB",
- "extended_signed_section_aes_key": "B338C788C7F3DF2F016084C5E22C2180",
- "extended_unsigned_metadata_key_hmac_key": "C2733BA1954274A00E85675CD6F89E4EADE9B4D00C3D4DD21BDF5FC7E589A523",
- "extended_unsigned_section_aes_key": "38CB97770EDE18EE20E20918FCB85FF7",
- "extended_unsigned_section_mic_hmac_key": "67E93AC6C12E4558A32712F0A694CEDDF66FEB6CB9E508EE4D52E4DD18FB546E",
- "key_seed": "F18C859790E13FB1F2A04B257149350DC4735987A7BDF5B65830FB44B97AF7CD",
- "legacy_ldt_key": "F5201F49C8CEE2A96B4D4DC6B5EF9B13E42B52A16DB1F02AA4DF9C7E2BA6E0BCE0C5E13781E885973B9DBCF00006EF6CFA42216553FC91CCE9BD3DE617BC7F49",
- "legacy_metadata_iv": "0E751449FE5A0408594E2E0E",
- "legacy_metadata_key_hmac_key": "F7F046D7D67B58F39D046B1C04FAA98CE89BCCE54CF0B8FB406670C1344F5265"
+ "extended_metadata_nonce": "E6CB1D645A1C322DD231C530",
+ "extended_signed_metadata_key_hmac_key": "6541D917FFD4EBE53C09BF098B18DADAAA8DFF5ACBB1356BB3E1439EAE91E399",
+ "extended_signed_section_aes_key": "A5C69E0BB040A4ED7AEA8D202D1AC1B6",
+ "extended_unsigned_metadata_key_hmac_key": "0F3C39ABFB77F95C5B015829511A821DC453306953B33D12A1D0BA5F2E48F3DE",
+ "extended_unsigned_section_aes_key": "F73B279C87F7D8145D53BCE3FBE49FA2",
+ "extended_unsigned_section_mic_hmac_key": "C386709CED7BF9873F36D764C601B3DB06FFF096993FE59E2C2E7A2E06C83ECE",
+ "key_seed": "66BD6221C1E30871D422B67F060C9E22800A834DF098843BFC648B76E54ED908",
+ "legacy_ldt_key": "79204103FD0DC36158434265D60D9D4A7CDF2569D1A855CC1C0A5616298C41E07A25577E028C13A4C517D2BEBCFC6F2198710BE7573B7C0C70E73BFF28C9710F",
+ "legacy_metadata_key_hmac_key": "FDE5E6233F81A1DA995A94969207DA3CF835C672B2C4A5F65D36AE45B2A5D2A1",
+ "legacy_metadata_nonce": "57EA5DBE1D8D34591922A866"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "FF24",
- "expanded_salt": "A027C7AF7AD5FAA69346C0C33178CED1"
+ "adv_salt": "AE61",
+ "expanded_salt": "EE04115499CE6C19FB6BB2610257A5FC"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "1B9410BA672AF3BEB993C1A525A209E2",
- "legacy_metadata_key": "9D659CD69B4BF6050004EF540D45"
+ "expanded_key": "45FE6BCBC3E86F2B10458F44DBC73647",
+ "legacy_metadata_key": "D9B336A4E52CB722943FFD9CF784"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DBB815D3DDF37897C4439F2888385B90",
- "derived_salt_first_section_no_de": "F562806E8B6E3CF96BD9F0C8912C96D4",
- "derived_salt_first_section_third_de": "C02AFC741B08F60D0CEE071EEF6C9418",
- "section_salt": "A7B23AA37623F6EA0622DF8777A07963"
+ "derived_salt_first_section_first_de": "6919D48644FFCB351097E0A7F63BAD7C",
+ "derived_salt_first_section_no_de": "B40EEC7CA7711C443BC6131AE1209711",
+ "derived_salt_first_section_third_de": "EE87CC5CE451FACAC62DD63C70F53BB3",
+ "section_salt": "E9C2AB1A142AAD88D5B3E8ECE861F46C"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "F62528DD9C33753E7EABFB0B",
- "extended_signed_metadata_key_hmac_key": "55480162BF63B66B7047D95412BB19C3E631E1FFB9F528CBE657F6A863FE9387",
- "extended_signed_section_aes_key": "F56BC83F8631EF07298C58B72B64C8C3",
- "extended_unsigned_metadata_key_hmac_key": "A92257B517794C4D6DC6D428F5923E49B0F571454C5720C0CAE2D0AA801D9FD9",
- "extended_unsigned_section_aes_key": "A2A99669778E10269B0C1A238AC07B2A",
- "extended_unsigned_section_mic_hmac_key": "B5C092860370D8FCCB032EC14DE934FADCDB86F800675B8C731923F48D8F1220",
- "key_seed": "1A7141EB9B3ED3CBF5091BEFD266374A25DBD2916AABD5401C5CAC699339A24F",
- "legacy_ldt_key": "0B32541AB6938735067B42BB3991B52004EDEAE67C3D303110BCD904C6C755428D5E4EA348609DD25056F85A9E45441898873B9C00871A08A07D425F8B4F9AA2",
- "legacy_metadata_iv": "424E5D54C659BBD7AD37039E",
- "legacy_metadata_key_hmac_key": "258E8BEC8C78DE464D65FDB189AB6BF77EF4E889586546DEE8DF05D9AD154FB3"
+ "extended_metadata_nonce": "1F7415759E6AF70ED5ECFB8B",
+ "extended_signed_metadata_key_hmac_key": "4C52B8B27F4405B995784DA1A19800280D7790F02E1A4ED718AFF3B9D2CFB632",
+ "extended_signed_section_aes_key": "E39A23C3DE620D184AD6717B9441B453",
+ "extended_unsigned_metadata_key_hmac_key": "D97C790467145FC66B8962922BE7163D01E72398E58A7381E94E52205A99C49B",
+ "extended_unsigned_section_aes_key": "FB9F25B845153CD75A97C8FCDA32A6B9",
+ "extended_unsigned_section_mic_hmac_key": "7F291513A23A7AA803A1CD8DBA7A9DE24180EE1580B31E3AE689EF51851EF266",
+ "key_seed": "C76E4012BA6DAE4B2CC7DE0FD6A60790E7E69183D4C894EEB2C14F55F691D200",
+ "legacy_ldt_key": "02D0233B56EB07765A584139A7791E9E338698C5C16A32B89973A921DCE26B483E7322D354F8D597A48A67818E7697686C9416CE10A2FD5B5A153A80EF0C3DD7",
+ "legacy_metadata_key_hmac_key": "D3BFBF4AEF2B0EAA29B8C0A4A5A8E140C9861C55AE77939A9100863458F73A48",
+ "legacy_metadata_nonce": "3DB25905270EA45BDE8B2C78"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "864B",
- "expanded_salt": "6B3DD6BCB2411A1F8EA3855823F324DA"
+ "adv_salt": "C0DC",
+ "expanded_salt": "51AFDF06C286189BE2A38DF2AC5C157F"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "5947C53421B6131C7DC08FC6043FCB7D",
- "legacy_metadata_key": "B67E88A465BB5008F533663C4370"
+ "expanded_key": "DBFD6CB8BEF948E30034942C217AB49F",
+ "legacy_metadata_key": "A6572C02A89BFC53CE24AFE726A5"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "33EE656AEE1756B554B5C622BD7088F1",
- "derived_salt_first_section_no_de": "A5C103B9D2D948F1FE0306ADCCFC7924",
- "derived_salt_first_section_third_de": "6C026DA32F4B2E4C0EBF1593763F92A9",
- "section_salt": "AA43650B928B92DFDCE36FF016381A71"
+ "derived_salt_first_section_first_de": "F0C2D07232D5E955E8C82CD835B56E1C",
+ "derived_salt_first_section_no_de": "1F34BDC3807F158859A6FACC33B76BA6",
+ "derived_salt_first_section_third_de": "8B547F100FE1EAD817E8DD7AC7FA6D7D",
+ "section_salt": "E887AFFFEBC6CAEA000CD7B2843AD21E"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "8376EA0A0C448ED99F826445",
- "extended_signed_metadata_key_hmac_key": "4C9979D705252885B178B8BA54342B8BBB7EA94CDB028B123E2FB6D5C8E4CBAB",
- "extended_signed_section_aes_key": "3C408C28ACB5B573398693DAC7DF7705",
- "extended_unsigned_metadata_key_hmac_key": "67DF405A96814A9801BC802CCB1ADEF2D587E203E1D15A991CB710FEB423420B",
- "extended_unsigned_section_aes_key": "95D9F58871326089A206914282E67978",
- "extended_unsigned_section_mic_hmac_key": "5C02A198082182CF11FCDF5D6B8E53E6F4E5A318BDBA93D77B5472B8F6C28350",
- "key_seed": "177CD7E1E53230ECD6541D6CCF3CB92700AC8F127C0284E0087F222C93BD85FB",
- "legacy_ldt_key": "BDB5BE4B70A1FF1314241E7EC62D552BE4FA016A833631BC5FF0039717B181B3A0C9286FDA4A6A6BB2E0333C5BDA1741C9ACDCADB6916955714920638111B571",
- "legacy_metadata_iv": "D37E097A82CEF9F89D6D2724",
- "legacy_metadata_key_hmac_key": "25ED9DC8559E3F9ED9140FADFD52FA60D252AF734B6BF484BB24AC933854C862"
+ "extended_metadata_nonce": "817052592ED2AC889E53F3DB",
+ "extended_signed_metadata_key_hmac_key": "ED836D0F732D1051DD4E7DAE505FFB670CA6717F7BC287E0C8957EEAA6AAB9EC",
+ "extended_signed_section_aes_key": "03D31EED691F220ED807A0A3699D01E5",
+ "extended_unsigned_metadata_key_hmac_key": "0C304D6EA35B6602646FC0E6951EFF09249712E42E8AA6BD995666AC29E774B6",
+ "extended_unsigned_section_aes_key": "8507DF1A8D34390EE03C10C29C16E20C",
+ "extended_unsigned_section_mic_hmac_key": "857FA3CEE51F9018367961FF82F30041D43DB1F1916BF067396EE7DEEE08B063",
+ "key_seed": "F7E47754ED974913367ECC4B4DE2B1E66D9C8EF36BC36875111231A421A1F892",
+ "legacy_ldt_key": "DF739460333EED047E4700C6D43763208D6F7B8994CD36AFA6C3B725124BD68F50A5DF542D16780F8FAA64C919F4E1321752C2473BF44843012F49CCD2BDC43F",
+ "legacy_metadata_key_hmac_key": "7BC61FACD5C01C6F0B24B38004BD8CC5BD00215D9270D8621919266CFC7CC1F5",
+ "legacy_metadata_nonce": "23DE6EA7BB73D686CA04432D"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "C245",
- "expanded_salt": "59DAE48461A0EB7C98C3F8F2041BBE49"
+ "adv_salt": "FD97",
+ "expanded_salt": "AB621F612EC9F1DBF995C1CE7610A3F4"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "AC7F5C36073AAFBE1E90A6C06DAE3CCE",
- "legacy_metadata_key": "CD9067652260F600CFE4938640B0"
+ "expanded_key": "7E59495C2E31ACF37A8A82914D67A3C2",
+ "legacy_metadata_key": "FD95D8D7F1234F29C61B73586E50"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EC7548A208FCE0C26D6EF7AD840DC071",
- "derived_salt_first_section_no_de": "152104DBA89A07EEE83C4C5F2498C481",
- "derived_salt_first_section_third_de": "4D7E505355442D04FE3769159114FC01",
- "section_salt": "3C129F4AB656E7D5A949AD60CA80D45A"
+ "derived_salt_first_section_first_de": "B1FFFDB5149EB2C1E55818C9AC278F22",
+ "derived_salt_first_section_no_de": "9FF7BA7CA2D7A64907CAD503C9D9E931",
+ "derived_salt_first_section_third_de": "E05CE47FEAAB471BDAAEEFE326144F87",
+ "section_salt": "05FD6AD5FB6ECEF67187AB22628D83F5"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "BFCE9652B87F50E37FB526FB",
- "extended_signed_metadata_key_hmac_key": "461ABA8BAF6670A40F584091B94363861F9CBE46E68C084370DB4B0D8736DF76",
- "extended_signed_section_aes_key": "CC60130FD4CA0B4C8BD21CD21D17B202",
- "extended_unsigned_metadata_key_hmac_key": "FD96206385C607A5A273E6BC5E70525AE9C39603CE66337AD68494D8FB349C36",
- "extended_unsigned_section_aes_key": "9F8E6D7B8DEE90F435F12FBF4AC13A46",
- "extended_unsigned_section_mic_hmac_key": "C7A5DA9C0E39B3CAD55728F1CC3FB346E7A4083E63155942DB53B5480D01DC37",
- "key_seed": "4C59D79988A1BC74944D98CF014A9D9DF06DAC3E6FC75E9E276293EA6C842501",
- "legacy_ldt_key": "3A4631622F3078238F3987906D7C2F65FC091377BA2999E405291071F80B05FE241DE01C1F34613C02EF611535F9BE1D15A7142A6A088E6EFD206BA5B2A7D36F",
- "legacy_metadata_iv": "D508706C9C53C9425735AE5F",
- "legacy_metadata_key_hmac_key": "FAB071688D92BC6CF54CB9CAE28F4447BB98A42316BE556F4297DC04E89BA639"
+ "extended_metadata_nonce": "656ECAFAD9D02F5C53D1499C",
+ "extended_signed_metadata_key_hmac_key": "3C07733D5EADB798C0F0A085711E7980D5437BC8D9003F2E6D32EB1E997D8D08",
+ "extended_signed_section_aes_key": "D49EF1EFFE0236EA082EF79C6BEF496E",
+ "extended_unsigned_metadata_key_hmac_key": "BBAF91442DABA83EAEA9AA3C6312972672AB20FE962605FDD01FD709F832D562",
+ "extended_unsigned_section_aes_key": "D472A600CD6F77F233D6274917328EDE",
+ "extended_unsigned_section_mic_hmac_key": "62A45AFFBCAE257E682BCB364B77F8FFFEF9088BB8DE260FAA6E622088E44A43",
+ "key_seed": "744EE5E68214D686A678E2F964A33C054EBF0155354CEEEC0EE77448F6E156F1",
+ "legacy_ldt_key": "A3F256081813BAEF903C9DC155AAAA8F7D8443726E1DB42695632D36BA9932E0A70D568A10CC1631D1CCB86AABA44B82CE08A65EB31C466C4E41728A11429BA0",
+ "legacy_metadata_key_hmac_key": "33EADD4558505A6805581DC7E514C624670C824B489D63F54500E7AE348184E4",
+ "legacy_metadata_nonce": "33283F73B1E3EBA32C5D862D"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "7DA9",
- "expanded_salt": "5F301D2B9A1CA71E21C353A5493F3EBE"
+ "adv_salt": "5987",
+ "expanded_salt": "BDA17AF3C8D8E8E7627742B3AB2075B6"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "AC0A38282486063A30F5DBF41AB2702C",
- "legacy_metadata_key": "3010D21F14DFDCDECCA482454CCF"
+ "expanded_key": "F9BFA683C1B856991A2C5CA893D71050",
+ "legacy_metadata_key": "DCE4D724E5161B46AC54E4C18A08"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5774258C2390E6DCD81BB7B78868BBE1",
- "derived_salt_first_section_no_de": "BA55ACE78620E7F96823251199B26D07",
- "derived_salt_first_section_third_de": "06C8571AEC49FF48219AE1560368A8E9",
- "section_salt": "BD13B6AF91158EEFE1CF800A7894E536"
+ "derived_salt_first_section_first_de": "DB22BC19A27CCC15E51A0A1B950857F7",
+ "derived_salt_first_section_no_de": "547CC56DC0A5507125082C68C053D5D5",
+ "derived_salt_first_section_third_de": "DFBAFDA1CF3AA59B26FE011EA450B823",
+ "section_salt": "078A2C255BB03030F52965D13B0AA53D"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "FF02376F2089E7250A4C917C",
- "extended_signed_metadata_key_hmac_key": "661D4B425AB57DB9B537FB336B274B720CB5320D52FDBE66F39C5B30F556E2BF",
- "extended_signed_section_aes_key": "41EA05D4588FCB271AE65DBBEE794FB8",
- "extended_unsigned_metadata_key_hmac_key": "AEC434B9CD304EBA207D7DFD93986B1075BCFEA8A954F55699B80A9B73F60F06",
- "extended_unsigned_section_aes_key": "7FAF03D73571D4958A3BFFD7B9333539",
- "extended_unsigned_section_mic_hmac_key": "9BB251A17B12B8AED3C83223D87B8568AC18228F27106CEE29117A3261EFB70F",
- "key_seed": "D53635615A5DF5ACC0E9E2252007913133B192E18D9F99DB5AC2D6664674DA2C",
- "legacy_ldt_key": "53B9D4425342737FA2CC6261D725A0116E71369BBAF97C640B96CEF00FD9CE341053563B45A4DE179ED20BECE75EEA55EF4555B6C1C6B4BECB5E9EA581B6BE47",
- "legacy_metadata_iv": "395865863373C830572E0DDE",
- "legacy_metadata_key_hmac_key": "629FC68F0EC9500470C37D092082A2CB1B1F44C048C40063ED987B180789920B"
+ "extended_metadata_nonce": "1020F8C375AC5BF5D3DAC380",
+ "extended_signed_metadata_key_hmac_key": "98F6FD73D248D52E1338E6F37EF4BE53160EB68C57687BBD5F4C4AE7F2C5A6CD",
+ "extended_signed_section_aes_key": "63B0CB478D4E5F38F454521A785B5DA1",
+ "extended_unsigned_metadata_key_hmac_key": "77A743C542941356A1DB8D8F3031439401B82F1B7A6C5BDA68152C1232603CE9",
+ "extended_unsigned_section_aes_key": "B743EB7D63164D30EEA5F452F4ECB6EF",
+ "extended_unsigned_section_mic_hmac_key": "F34F5FED159362C0CFCE08702216F77B7BC9BD6739D7B7A6BE022F69E119A011",
+ "key_seed": "8D8B909F903746E317D2FAD7B81C44E14C2BC911BF57505FD21E657BDE7B9448",
+ "legacy_ldt_key": "B95B352CC7A616CFCEF94F140DB1FFF6C96699456B53E22EF2A92C189C8ACF71B15996E5592651FDB0B9EF482E3D3A77F69C43381BFA3FBEB77EF3FF3508C4F6",
+ "legacy_metadata_key_hmac_key": "0FA59F92E4D45EA6F7CE221654D40FD7F04723C271B02CF2E6FE7D2F38B1F9C8",
+ "legacy_metadata_nonce": "B8CE49F04135E2EFADD82878"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "2816",
- "expanded_salt": "6E58EF099AF281AEE3F48A0B638B66CD"
+ "adv_salt": "E04C",
+ "expanded_salt": "C09ED0239B32A0C2BE3A0EE440CCBE42"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "0244177F7CD7012B84AE2CFD2888FC03",
- "legacy_metadata_key": "8F9190ABC05EB25975C8163B9B4E"
+ "expanded_key": "3FEE720404CE1EA1B1D761262F6E2C09",
+ "legacy_metadata_key": "5D81EB7355CC5ED9A8979ACB3DC3"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "43A21F25E28F0C0840EC559FFF2C77CF",
- "derived_salt_first_section_no_de": "318D300B273A841391407DF1EA990678",
- "derived_salt_first_section_third_de": "F6C4462588698A1327AF8C5727F8D233",
- "section_salt": "C5AB9542815304C9CABEDF9D13A63777"
+ "derived_salt_first_section_first_de": "0062A464AD7B46EC51A8083B2F34410E",
+ "derived_salt_first_section_no_de": "08E8417B389B48DF971A62A738A28A1A",
+ "derived_salt_first_section_third_de": "A475206446E694B5751C5E3CAD225454",
+ "section_salt": "F2F39B46ED2763C2D2471485E6EAE97F"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "669490D3F88E97995D782DC9",
- "extended_signed_metadata_key_hmac_key": "62F038D895010AAB5B7D2C17EA26390B4B4CD1F436F16B1983CEFDE16CD7A5FC",
- "extended_signed_section_aes_key": "55719FC663D42279AE65DA11523D4354",
- "extended_unsigned_metadata_key_hmac_key": "459954142086B739F644E45D0F690E8FC1848FFB8A0E4B87A32C26784BF5DD5D",
- "extended_unsigned_section_aes_key": "C17A78BE9B333EB9C54C0B729F088C04",
- "extended_unsigned_section_mic_hmac_key": "D6359DEE4C7AC1F316AB3753F5510081CC5BDAFEB766F5C196E807CC20D405E0",
- "key_seed": "365B715C7A80F6FAB6D16F6A63E66CB0DFB42F011F9709F100A83F293272EF37",
- "legacy_ldt_key": "107E9174D2039ADE3FA763F914B884F8128B42782877BA8F1882EA5641466288EE5F34A0C873819C48C47DCEBD116539B3471106DB8FF7BA69D1AEDA21125503",
- "legacy_metadata_iv": "38A24094FE8CB64794EB3A38",
- "legacy_metadata_key_hmac_key": "7BF723A7822B795A9FE44058E4227EEC90B283C31B228C6766B13ED03651DF38"
+ "extended_metadata_nonce": "9D465DB8703FD644B14B99E1",
+ "extended_signed_metadata_key_hmac_key": "14BA9DEE1626741059F8B6D426CF83FCE010C26124E5AC9D66925D3B89EE2BB1",
+ "extended_signed_section_aes_key": "591995C12F75A6D28673E9BA651BF099",
+ "extended_unsigned_metadata_key_hmac_key": "7BCCE36CAE2D834C397513EA6C8F90026A1108A856285F9106B38319EFC9FF9C",
+ "extended_unsigned_section_aes_key": "A5A156C9EC17E50D3D4D5DABB63CCBA7",
+ "extended_unsigned_section_mic_hmac_key": "EBCEE2B687E58DD608CA3BE824C5465BB325FF602E30DAEBB2F2544DAABEF580",
+ "key_seed": "6EF7F1684C5C353B4ECDB1EEFDC10C34CF78B9E60D067EC7DB769595F8914CD8",
+ "legacy_ldt_key": "8251C9BC73D421AE9345E27335D84A03BB706EE9A2ED41A90D3E7BE66B3EEE9D98ADDF2958DD85B21FF1BF5CB06DD1B7180781BC89EA0AC6B31E0DFA8B6F49BA",
+ "legacy_metadata_key_hmac_key": "177B5056A2BF6ADE707EC448CE3825FC7F4EEFBF6118F58BAFB9504B461FB3C0",
+ "legacy_metadata_nonce": "989E60F047E8D4BD15075FDA"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "C12D",
- "expanded_salt": "1EC182E88A3D4DE1C3500B19202ED6CF"
+ "adv_salt": "0E4A",
+ "expanded_salt": "45841BEF518D55BC872449D35B69D3D3"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E0550B06344CC003692E5DB4E368B98F",
- "legacy_metadata_key": "FE76E5667AF042F4C95EF2B29E3F"
+ "expanded_key": "07BE6AE936B1ED68B3823A6893702467",
+ "legacy_metadata_key": "0C15537A85CACDC26F26019ED439"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "988C6E841E5AF41B1E4470AFDEE54E47",
- "derived_salt_first_section_no_de": "4A488B2CC479C3C778EF732C69F95D01",
- "derived_salt_first_section_third_de": "74898B8A456A4FA1D6F015979F97D200",
- "section_salt": "BEF11A33ECF7978DED3ACB61CFD53D6A"
+ "derived_salt_first_section_first_de": "3DE9D56F37147C866D25DF4D1EC6E854",
+ "derived_salt_first_section_no_de": "2FDE5B60AFED59C1CF366A514FBBACA3",
+ "derived_salt_first_section_third_de": "AF10E5F3A5DF61DE19420E75E55D12BD",
+ "section_salt": "ED4025D9A2CBE10CAA5B8A1ABA910BE4"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5FF500005AEE1B5A6FC6236C",
- "extended_signed_metadata_key_hmac_key": "A644EDF5A13C2389620F5E4409FFC13F8BE3AD92CAE758245C2E012016E7B398",
- "extended_signed_section_aes_key": "7E5F5F29A26671FBCEA9FE97DE50C1F9",
- "extended_unsigned_metadata_key_hmac_key": "F17352A5AFED36EB5B6BA3A43A9B04AF0C619CA31CC6E26F11D7C5C6BBD81B96",
- "extended_unsigned_section_aes_key": "F8C7D1D5D9979343C0C71AC4D697893E",
- "extended_unsigned_section_mic_hmac_key": "83D39B5CCE31A90AC03F7F80D320EA9FB6117D522F7AB32106FDFF788668413D",
- "key_seed": "6D80A34ED4064D4B8DEB3F7D5CF0AD341A02B315759A389AC2BB798223ECEF97",
- "legacy_ldt_key": "6AE03B0BD038A1E27B5F0347C649F7C66EE45B867089C9B64316F3407F3B4636636641CDF6556AC73E2A8850A7FE5D1DF5E962117C7690020A86F30F0FDF0427",
- "legacy_metadata_iv": "C1FBFCC0DCA8279BA9F67667",
- "legacy_metadata_key_hmac_key": "A6E914497E4FB2A580A098ECBB6A11672FF0F84C825053FE587BABBD60400E83"
+ "extended_metadata_nonce": "6F59318B12B620600E40892E",
+ "extended_signed_metadata_key_hmac_key": "383DEB0C8AA51D119AF01606930A19F42C253BA8AB6A6CA730F7F0DA67F6526B",
+ "extended_signed_section_aes_key": "8E2158CCE463C86814C3A923EB66BAAC",
+ "extended_unsigned_metadata_key_hmac_key": "551F2045C860E1A7B7B0E190ABB6A51447E9DBE9009AFC46FECD25331E4AA414",
+ "extended_unsigned_section_aes_key": "8AEF9D42C27067B232BEA8242FE93F3D",
+ "extended_unsigned_section_mic_hmac_key": "788130EA49F3BC5C2D9FEBA9C9758A4B268A0FB16C2B844A4F28E03E7549D602",
+ "key_seed": "0C692A79213891396CD3B92C3FAC2DA33EB0491272E59411E1CCBAD01F1CC663",
+ "legacy_ldt_key": "AEBD9A429EF5E38A23C12F825C269950D231BBC7548115E198C7BE64B096B6FA6C11CB120803241FFDE8A78BACF27CE5545DFE3E896F598CB5EA715115B9EE56",
+ "legacy_metadata_key_hmac_key": "D68DC293B640E8E6E0E60DAA01B744FB59FC2EF5868D8856EBDB39772A510E5A",
+ "legacy_metadata_nonce": "EC688179F89D775E64394EC6"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "32EA",
- "expanded_salt": "37B0BA6005F002664F64EEEAA5AA7384"
+ "adv_salt": "BD8B",
+ "expanded_salt": "F3078BA520F2080B927ADF89CF273A18"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "FF0A7CA91B8C8BEE57040EBFE4174A38",
- "legacy_metadata_key": "8DFCC55FE24A313D9C5D87697581"
+ "expanded_key": "DDACF0C5D556F78DE46253E77A85ACFF",
+ "legacy_metadata_key": "9732F406F870342BEE8B0A914078"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9443D9A9A61F034107C13016067A53DF",
- "derived_salt_first_section_no_de": "1DA1589D2533E9555CFFFAE3F107CD84",
- "derived_salt_first_section_third_de": "B11108E0D921D58A9B805054420FF85F",
- "section_salt": "3F4ADB1253E4D8799287D9498BFFD1BC"
+ "derived_salt_first_section_first_de": "EB86DD1685C8017EAACF542B7A32C154",
+ "derived_salt_first_section_no_de": "2E1D91452B6BE755CA6D1A510B786F95",
+ "derived_salt_first_section_third_de": "3F6795CB4E05C03486FBAD12D98543FF",
+ "section_salt": "700111649D792ABCC1E004978C637E0E"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "28DE096433D2ED475983BA54",
- "extended_signed_metadata_key_hmac_key": "C747632CD7162F119F23B98A42AB05EBC957B34E861C08E70DC1422705DC4FAC",
- "extended_signed_section_aes_key": "4C41A23E2D0CCD81D5FB9E5EFD549383",
- "extended_unsigned_metadata_key_hmac_key": "117799B73144F040E5C5E5EA26995922E2F59B8C58A0701FA325399D805575FC",
- "extended_unsigned_section_aes_key": "FF890AB72BED4A1A5E40546C0D268874",
- "extended_unsigned_section_mic_hmac_key": "26E809DC5A6F6972DA0CF337573709CB7ED1AB92988E31C6E5F0258A864361F6",
- "key_seed": "D8AD0F8E1C80BD683D0CCF7B12F2C504DC5B52735685B4158AE2E27F47680B1D",
- "legacy_ldt_key": "19ABA088AC758EF307032207041030703CEB6938543770021E6468F9FFA4F7E713D90FA9D2741430F04685CF27B04E11E97A817341ACF6193D13FDA2EF746268",
- "legacy_metadata_iv": "287D2DBA759CD4031E57DD5F",
- "legacy_metadata_key_hmac_key": "2C2DA2B5B306C9DE435AED5EC06095A11AD0D9B0215D334FC4989DA81A7F1129"
+ "extended_metadata_nonce": "E3A2F71B15300A7232927D5B",
+ "extended_signed_metadata_key_hmac_key": "688536A171F65ED7AF6DBE841968025720997891374D0E30EAD96C2DBA1C6CD8",
+ "extended_signed_section_aes_key": "72B7CD1147CAD43C239D0637C9192967",
+ "extended_unsigned_metadata_key_hmac_key": "22EFB24D7DEE84A07643AFF3D11A0EF56D818466C43882E3170027DE0CBEF920",
+ "extended_unsigned_section_aes_key": "C38BC169874FB5551DEA99A853A3242C",
+ "extended_unsigned_section_mic_hmac_key": "28F8743A05F77BB067BE29BB714EF5208532383125EB35317F6C9B464E65159B",
+ "key_seed": "8062D40BA07D2331C15DB4F4992D45A4C500350EB2B4DE00BF5EBBCE396A96E7",
+ "legacy_ldt_key": "4ABC6C92EEAAA16D277812A851D8A1334846D9FDA1DCCAEEA24927F74765F37C48FB6297F88982234DA5B576A6FA5EA69D11972104350CC3CD20932799E3EFDC",
+ "legacy_metadata_key_hmac_key": "30121B3A3B523BCD071DECE2F469E96D24EBD5B83CA941EAF7F038010A70A1B1",
+ "legacy_metadata_nonce": "873248D5319D71CF756CD8B6"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "F547",
- "expanded_salt": "75B724D60730D0706E8F3282AE4D49D1"
+ "adv_salt": "2D7F",
+ "expanded_salt": "3C48F27B1F13EE4BD87F817785EF7703"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "9E7919315017BE4C579879B942D43CBF",
- "legacy_metadata_key": "F3E4302304959752A6437CFA03CB"
+ "expanded_key": "50979493AC77E7C48BABD922BBBF9775",
+ "legacy_metadata_key": "EC8D649AF82B50E56F7E5F2C1426"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EF1F252DB00ADA99BEE073F48F1F07EA",
- "derived_salt_first_section_no_de": "DA92B1F3351942133E161377146EECF8",
- "derived_salt_first_section_third_de": "DD136D007A4685E44D22ABBEF1E60D3D",
- "section_salt": "A97177E42EEF5BAA6979F4423B5154C5"
+ "derived_salt_first_section_first_de": "D262A02E3A58DF486E345BEC4A2B5D4F",
+ "derived_salt_first_section_no_de": "9E106096FF44973E527F2F7CBBB68275",
+ "derived_salt_first_section_third_de": "F9B9F4D9CBCB69C7A00DA254229D4BF3",
+ "section_salt": "4496838ABE23AA21C0CA736114A37BD6"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "60373E3BD73B6D02A5DCBDC9",
- "extended_signed_metadata_key_hmac_key": "6408F00454A63C16DE53EC2B4CFFD335557F81A41105163BEA518557D32A09DE",
- "extended_signed_section_aes_key": "E646955ACCF8524FA96E5BB9A6DE723E",
- "extended_unsigned_metadata_key_hmac_key": "0ABAFDBF511AA267424C00823DA6DF2AED102CD3AC6DDF494CB5EF497354F870",
- "extended_unsigned_section_aes_key": "256A762C02A2A9839C0598FD91A5CBF0",
- "extended_unsigned_section_mic_hmac_key": "FF3DC4B2A0A1CA996FA0D51FCBF2D8A87EAD250482284BEB0EA8A54FC1B6DB30",
- "key_seed": "6AA081DDF9D71351DC47BB37460DC5DFC070853E358A323D75DAEB56B1A3D736",
- "legacy_ldt_key": "E664BC75A29C8FAAFB9709D24D7C76BAC8847A2AE98F87CA1959EE720E992357506D1011189D2584079DB450AC865A0F177FEE94DF59236D3704A3FA8F7590D1",
- "legacy_metadata_iv": "B2B5058BC3328C6503546FD9",
- "legacy_metadata_key_hmac_key": "44F0A7D296863E2D559B4A2D64141EABA13316CD7627D465C691E77D2D0D1E08"
+ "extended_metadata_nonce": "786176FCFF3231D1572CA808",
+ "extended_signed_metadata_key_hmac_key": "18CE44A7087E1E3FEDAA6248262F697E1BAC68F878815DDF44A330BFF19A43ED",
+ "extended_signed_section_aes_key": "AC9B94AC20F1D81E1D1DEC0684E36297",
+ "extended_unsigned_metadata_key_hmac_key": "47C8F715E8E2E9F67B1C376E2D726A60D30D1B8033E2D78B7EA3D1DD55BA23FE",
+ "extended_unsigned_section_aes_key": "0C40C4BA4105CE4F2CBE9C8DE5F01123",
+ "extended_unsigned_section_mic_hmac_key": "6D9373A7A34B9072FA386B06725B4BEF851EEEE601907991C5D2D51500356F2E",
+ "key_seed": "EA366AAA629102AB6B62305B92BFF85C878A1E7536C2057444C989AA68370138",
+ "legacy_ldt_key": "4FEC3FF94C7E7BBB8A7ADB496EE01056B702AD1EFE5458E94FD0D9436EE976CB367F12FF19A31166D2E7541C7C71C1B3BF25E532B08D80A456A1FF04A6C79503",
+ "legacy_metadata_key_hmac_key": "EF0679E429D9B23036DBE7B8AB08AD5B02C236DC8C2D526EF3E0E840E1FAE6FE",
+ "legacy_metadata_nonce": "B90108EF65B54923459A2B9F"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "3E4B",
- "expanded_salt": "17DA8589579BA4C772587D2AB8DED8A4"
+ "adv_salt": "5203",
+ "expanded_salt": "A3A47B0B38AB2899441F905548251625"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "A4B273638D85980558505A73E644E62D",
- "legacy_metadata_key": "56DEB786587211837BCB724BA229"
+ "expanded_key": "BB0BAE62AFF2FE5A6E20B8D581A272DE",
+ "legacy_metadata_key": "DF9B54563110C3D424C36C7A0B12"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "12B06C28EC1F14E12236943F6C8C1C27",
- "derived_salt_first_section_no_de": "8DD2D967C0990825E44588FDF9986CAC",
- "derived_salt_first_section_third_de": "BD92E95FB9CFCA1D96567180A686818F",
- "section_salt": "11FE39535255DD3B618D4BFEA71DF39A"
+ "derived_salt_first_section_first_de": "9794C1A08CF2F8E1E64FC53A89C81798",
+ "derived_salt_first_section_no_de": "899E09BEA7E181371FC7DB3E064B93BC",
+ "derived_salt_first_section_third_de": "BDA3B1732F5E0E7F2D0E8F3EA79402FD",
+ "section_salt": "82CF94C9A74170CDB84C8132E0A9AA25"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "68F640D9FE869288AA6D5D98",
- "extended_signed_metadata_key_hmac_key": "BD472C2657843E31B17406EB44CFB3393BCECFE32C0C379C72D30D4CD9BD123F",
- "extended_signed_section_aes_key": "3B2288569726C70F3A787A16154B5835",
- "extended_unsigned_metadata_key_hmac_key": "DF10CA1D06963A925E0716B5E370EC99CEBD4D2986486DCBB39163B3ED8D017F",
- "extended_unsigned_section_aes_key": "45C5B3A0DD35D02192467564B622CB9D",
- "extended_unsigned_section_mic_hmac_key": "77D5B001FA0966C81D99C9E621EFA9A75064C2C336589E94E0C58CA4C01EB833",
- "key_seed": "9D4A7B8030B63936A1273CEBE0DF2F244F68A59BC51D0E26E444412E5720BFF5",
- "legacy_ldt_key": "486378C03409629ED741F8A7C6220A9A8357B64982AC981CCD4BCDF4AB79A374A53D08B3875083E7036CEDDC6537CF7CF0C225AACAD03AFD34C9566079F0D441",
- "legacy_metadata_iv": "84FD854613AA86C8DA13F684",
- "legacy_metadata_key_hmac_key": "6884FA4758B6687CB6A4E910032EB9CB8F055E6C56F0CD1B7BAA5A775AFCDBC3"
+ "extended_metadata_nonce": "9E2E62CFF064E5688C2B785E",
+ "extended_signed_metadata_key_hmac_key": "397D11E6EE958656F2674EF69001146BEE0F972C497C92C71914B90F908228F7",
+ "extended_signed_section_aes_key": "C5AB5145752AA16E3C65C6EFE561EC9C",
+ "extended_unsigned_metadata_key_hmac_key": "EAB5C3F841C81AE3394987D3AE876D5043778BB711A191C36BBCCEF42CA3FF6A",
+ "extended_unsigned_section_aes_key": "E9B70118BF8A4D58A758F1B3FA1661AC",
+ "extended_unsigned_section_mic_hmac_key": "B3E6D61C78A8867BDD3F33404218279D13F6F89059671DED0E8D4EE34C7FB5D2",
+ "key_seed": "F61539C310341BFDA73F7D9504502B785A27BD555E2A4B80BCE329AB213522D0",
+ "legacy_ldt_key": "2D427E218733944B5F784EBE48E0DA05A515BE4D4D6C56FF79E36661F2DDDD8D6ACEB11FBB0F7C9DFA18EABF0BB2FA96F093F0D599DBFE357265DC5A6C860ECB",
+ "legacy_metadata_key_hmac_key": "53DB1506A87A258744C9B065C1B6D0C39395EFA8F0E6C543415506BFD6252FE0",
+ "legacy_metadata_nonce": "D3B81B8D52920BB3D47EC5BD"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "FB80",
- "expanded_salt": "5CAC916076A54F837FDBE24005A4528F"
+ "adv_salt": "2037",
+ "expanded_salt": "E1430F688FBB46C8F6067E50A1F4B296"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "7057CADCCE44487324E93B66B215FEF7",
- "legacy_metadata_key": "0F7BC7ADABB79EE81EF52AF1DAAB"
+ "expanded_key": "1D4C9F7C2CE767CDAAF1F2E2CC9E56D4",
+ "legacy_metadata_key": "8A521A8E6FD14285498B5DEC2A79"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A8806F6EF812768C411290E6ABAD0CCB",
- "derived_salt_first_section_no_de": "31BC2CAAE6623DDDAA0BA4BF3BC120A6",
- "derived_salt_first_section_third_de": "F79FB8D29634E5FCA0D1A99B998558F8",
- "section_salt": "30ED2B226A4FC8A9138AB3F11CB9E166"
+ "derived_salt_first_section_first_de": "4363CB3C7259246F4B123095550EE704",
+ "derived_salt_first_section_no_de": "6E95B9CFB044108DE5EABDDD098667A4",
+ "derived_salt_first_section_third_de": "F4441684E3A1C584AE218220C5823D63",
+ "section_salt": "4FB82CF0A6F46347DE465EF01BEF9DC7"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "8AC2138BA0641D3F4A06DC8C",
- "extended_signed_metadata_key_hmac_key": "33993AA78C3456978BD5A8F37446E614809F26C11B3A209DAFD8A30B67FBCF51",
- "extended_signed_section_aes_key": "CE576AF562359037A3788DCBF8A187FB",
- "extended_unsigned_metadata_key_hmac_key": "469BE4A50338021B01451B63BA92B3307EAB409BC569DA04AF31B121C8B9E2CA",
- "extended_unsigned_section_aes_key": "F5EEAEC478583D4EB9E4138AEC83DB44",
- "extended_unsigned_section_mic_hmac_key": "C17377ACD9CEAC28021518F25F56C53DE5BAF51B3678393E853B4B5EE80A75E1",
- "key_seed": "7779D82148A53FAB3FB7518DCCD637961F1913B80415080E1A278A6990BD0479",
- "legacy_ldt_key": "A62D3E21B30D7A86367F6EDEF357ECB86A337E4DC2B21D6B1B63BBDCB3E37C79449CAE12C63420D8BC02E89A02A40FA64433C4B45B029D9E38AABC828016B8AC",
- "legacy_metadata_iv": "882ABD49FBCBC7E6A56A1A7B",
- "legacy_metadata_key_hmac_key": "884CA611D4F6533DF61282EE9668C99F444077550DD244A2A05063A500511162"
+ "extended_metadata_nonce": "7F8B9AF9663AE92297910F2F",
+ "extended_signed_metadata_key_hmac_key": "12328EBBAC73837BAC2D4B82D2EB0943C41F11DEA46B6562C1992B49F91D78F4",
+ "extended_signed_section_aes_key": "DB11AC0C3FBD6B105EB4ECF65440F2BF",
+ "extended_unsigned_metadata_key_hmac_key": "D8A37BEB7EC0DB54ABEA9C4A05616090ADE42C3C255949698690C5D38D683627",
+ "extended_unsigned_section_aes_key": "AF42DDA012ADF8A795EE4A7B15DAA081",
+ "extended_unsigned_section_mic_hmac_key": "48EA765212AD49D3527D56554149629C969AE888F1D681DEAFE78CB0F0EAF658",
+ "key_seed": "E615EDD2FD82BB47855C4BE869BFC649E0BD0EF7A15EB0C8F99E5884156711DB",
+ "legacy_ldt_key": "EBC006F8343DAC70202A8ACA714C41EDCFBC6B5A5E6756DE2687A2A2B02068CF3317F3083E0DC3D626BCA08DFC188F1FA131B90679899618782C58CE2D3416E5",
+ "legacy_metadata_key_hmac_key": "F50BB9D2761D9FF880911989A82C2B844E21D7F4AFEAEA1CDB5F8BEB417F1EE0",
+ "legacy_metadata_nonce": "9152D3FCAB6D25F3EB847E41"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "7176",
- "expanded_salt": "D94A5CA76C646923C3B6CE79732F1785"
+ "adv_salt": "889B",
+ "expanded_salt": "7FBF8613F21C47797F4814D1939629E4"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "794807AF59A638098E8D879DEC3BC136",
- "legacy_metadata_key": "AE8B71C17C21E19BA03AC90703BF"
+ "expanded_key": "B10610105C6FB841987ED5DA28B1A8FA",
+ "legacy_metadata_key": "82558AF0C2A123C0577AD47FDDD9"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "89055FE0A62D6FAC1024DB6B4D137C2A",
- "derived_salt_first_section_no_de": "6773B147E849B48225835BF61A25D747",
- "derived_salt_first_section_third_de": "B4257D3B13513D339DD67E353D8E0CCE",
- "section_salt": "F641C7BA2C5336AE482D9E9E4951D976"
+ "derived_salt_first_section_first_de": "BF63189D3C53D46BC6D15EA10B4AB4E0",
+ "derived_salt_first_section_no_de": "C2D485579DD258D6806CF6E345E0EC22",
+ "derived_salt_first_section_third_de": "1CCCCF350FD11768168AC0C94F598931",
+ "section_salt": "3EE85997BA02AB4A6620B2CE05469FE2"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "D40BF5F69B47E47B4E188749",
- "extended_signed_metadata_key_hmac_key": "343B28084A4E58C3115A65E8D0607C35D82758F08E37D4839ED2868A6A28884B",
- "extended_signed_section_aes_key": "4CEFF83A1371A01BD63B7C52A532AD74",
- "extended_unsigned_metadata_key_hmac_key": "0677ACBCBC33C7297EEBC1DB311A85700A6F5928D88FE57E0A77C82B4675DF47",
- "extended_unsigned_section_aes_key": "1E0A89A51A82991590E73EB16B51A78C",
- "extended_unsigned_section_mic_hmac_key": "809C5DF2B3CB267372EAFB5A5A373AEC4DB60B60D619B0630B954813B9611436",
- "key_seed": "ADB819663A333D85CA42B0BE124A1C24298BB8CF4D30D9876D8C7911EA25AD38",
- "legacy_ldt_key": "8A5998A4D3C9AEA0A484199496381346C25506BBA7609839A4838CCA962F53C094E78572A6658A428A059B02FF9526229879C9B001F2873DE27F92C385DCEE7A",
- "legacy_metadata_iv": "A48D5A4FFEE16D1273A57E2B",
- "legacy_metadata_key_hmac_key": "31B632784A11E7293ECD712DEF8F5976DDB6251328E2FAE0833B98EF29C4FA55"
+ "extended_metadata_nonce": "6743665EF1F2534A7EB969AF",
+ "extended_signed_metadata_key_hmac_key": "355F49A98438F06E21D1501BF501ECCE624C206CC9F9430B0AFBC30041DA605A",
+ "extended_signed_section_aes_key": "CDD0694A18EF582345EA7C785F928EBD",
+ "extended_unsigned_metadata_key_hmac_key": "C82654B0FE5E9E50821806DDDD7F8114A79E9C2DA232C557A4B0AC98A514CEC3",
+ "extended_unsigned_section_aes_key": "E45A101D48BEBF02D446F97609EAFEC2",
+ "extended_unsigned_section_mic_hmac_key": "CE08A1DD793049E727DA51A8E6BA3B0AF1563D9DA40474FB335199037BFA7CAB",
+ "key_seed": "E396273E0432224E384CF4CA199547E73E985A3E7886102E0B9ABE911ADBDECC",
+ "legacy_ldt_key": "78E0EF38C80C61C0B907FF322D047C00664B19B5C704E3698E30B4860EED1814AA25097D7437E972007C5B923DB8D3708B312420EB1708817353D5D3345D40B6",
+ "legacy_metadata_key_hmac_key": "7266C9A1D0B38E92E975FE7E9E16436F7C596C62A99DCEDC01B26D65651917B9",
+ "legacy_metadata_nonce": "9CB20BBE3E11C360C90F4433"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "E48B",
- "expanded_salt": "0E246B7FD3F413C6A10741503DDED5B1"
+ "adv_salt": "F44E",
+ "expanded_salt": "CC8D7F5AAE254573F1775BD42817E483"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "EBF88738D6669B687F14EF0DE0C07459",
- "legacy_metadata_key": "44E7845DBF45C0D401D9B2FFB88A"
+ "expanded_key": "A5CEB053C9960AF550E753C41D78D146",
+ "legacy_metadata_key": "E9E844761B0DA4549C8136A68534"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FA1AD6C17C4F1E37CD6AD6C3E8236DDD",
- "derived_salt_first_section_no_de": "31D77DDD32BF86E31FD26C356D4D7201",
- "derived_salt_first_section_third_de": "A797A45E2D1DB3514DDA0E33151D2A9D",
- "section_salt": "12EE359AC73A15F883DB557DC87415E4"
+ "derived_salt_first_section_first_de": "73E81E7AD1FD560A8492C57B58F0EF4B",
+ "derived_salt_first_section_no_de": "52C7E3EED057E22BEE798D1EF0AA09F8",
+ "derived_salt_first_section_third_de": "075B795823F03E6D0877E58125F3BA2B",
+ "section_salt": "600FE29E6B140E51AFEFA00BB3C72EAF"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "F4CC428EC1CF8C3B0EDF83DF",
- "extended_signed_metadata_key_hmac_key": "56DC64A6B2A521275E51C06B766CE214111494AE207554F5CC911AE6C112EC9E",
- "extended_signed_section_aes_key": "148BB8A488B49D4B5E534815B59F4C62",
- "extended_unsigned_metadata_key_hmac_key": "51C31D7864A902D2E1159760E897CE76928906C04DBB20E970FBBAD2A150CB1A",
- "extended_unsigned_section_aes_key": "D9F1EA328534AFDBE5BDC22C9AEBDBB4",
- "extended_unsigned_section_mic_hmac_key": "4204C705269C8D65CF99194D78AC00D8929D8FB573A83AE305A735C0D8BFB8FD",
- "key_seed": "2FD14E0C277E7A387FC830B3DA8014BDF4A4D37172CEDA927566B6C5CEA88478",
- "legacy_ldt_key": "2EDF05969E27C8DCF706502EE83BBF2D262B452C327693A4595EAF255C2AC0F70FBE6085B221D61722D6D8A47E3C21C861C9F01D54B9F1DA3EADEA9DAC59B458",
- "legacy_metadata_iv": "E682C9C847D182BBDAF3EB6C",
- "legacy_metadata_key_hmac_key": "C706C6BC98A1FE7AF7F06312AB2CF47FEEFAD426A1EFBD4ED924030F5FC71DBB"
+ "extended_metadata_nonce": "34D8405F3BEFA5DA663ABD38",
+ "extended_signed_metadata_key_hmac_key": "A773F7699265B7BAC958E1EBFBA32B1C7B20B10F09DE32FE9F57ADD3190D6037",
+ "extended_signed_section_aes_key": "3648115AE3CE58377A3CBEF0B3BB2911",
+ "extended_unsigned_metadata_key_hmac_key": "64CBB1F7D08A526D5FF00C9C55C3B3F050B64DFEA5D2EEA4B1B5978632552635",
+ "extended_unsigned_section_aes_key": "380C378C2656B11DDBE2DB9BC188C2CB",
+ "extended_unsigned_section_mic_hmac_key": "2606D0A2E28E00E248C1A72D6441575A6737ED0E291F510F3C683E333F6E7860",
+ "key_seed": "FF0CA47221553F08490BF23140D052CEC0055B8B4BF7F1217F20E3325C1A14CD",
+ "legacy_ldt_key": "6CF901B6EF11F104077A3C8FC9DFCD406FFC0A9DEDA5BD1F373D61DF23C020BE603D604C67E2D6C8050AE464EC3F7DC3D6D90732E2E3935C339C5C4BCCD2EB0F",
+ "legacy_metadata_key_hmac_key": "42AB1CF389132FF5895D75FC9695AE07CEB1C228FD9590FDB49A07F612F11F56",
+ "legacy_metadata_nonce": "2F0439B0E875A3BFBC685D90"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "BA2B",
- "expanded_salt": "57F7D2787C534B002149B04F2D54BA55"
+ "adv_salt": "355E",
+ "expanded_salt": "E6423E380E5D5970BE91AE9CCFCF0636"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "566C56CEB041409D7484894024E8FA72",
- "legacy_metadata_key": "11C5119B843BFC87D991015E691B"
+ "expanded_key": "2E0A709E2856F0807AE68B785B51F0D1",
+ "legacy_metadata_key": "26A21171AC7983950B900C2F2979"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3840DB4DA4BB32594F6B835BADB81B3D",
- "derived_salt_first_section_no_de": "1D4F360049446E5F48CF91CDE22B1ECC",
- "derived_salt_first_section_third_de": "7DA5F664ADFDF094DECCBF7F92A617F9",
- "section_salt": "79EB8A31D14BD7108971D370A86CBF48"
+ "derived_salt_first_section_first_de": "40D2F105E8C926AB9D7F7DA89596F555",
+ "derived_salt_first_section_no_de": "33440FBB64C6BAB6453F7F9A050FFEB5",
+ "derived_salt_first_section_third_de": "21899A6B8657F7ACB1048C1F683BAC29",
+ "section_salt": "7B7751AF729D27E3E4C2384D7DB8BEB7"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "F8C07EA4357CBC22095E2963",
- "extended_signed_metadata_key_hmac_key": "357BFCE6447C1D8600CEDBE70D2449DDA0AFF83AF340A13DD134B388AD3ABB18",
- "extended_signed_section_aes_key": "FA1F52F1DEF1EE7D57831E5CCDC3020B",
- "extended_unsigned_metadata_key_hmac_key": "DF3564E54BC2D5F3CC54AB8AD0E4765BE2E1F29D461213EDE570C17714F1DF42",
- "extended_unsigned_section_aes_key": "396280CCFAA1C4489C44A219D8570556",
- "extended_unsigned_section_mic_hmac_key": "20329417E2B5A9B0499400DB578B19A464F5CA00F2941E0CE8F45F1D3097A54A",
- "key_seed": "A4D0592A2681EF05D5D177C2878395485ACF0DBF75DFD2335DEFBCE4B7CC425B",
- "legacy_ldt_key": "F65F44334450D79D7BEFC8557B6E3D76669BDBA221C08FF8D25F668DBBEAFA64F9C7F51E206969B278333AFDA106D09CC6ED6C2921272117CF1500255EC76211",
- "legacy_metadata_iv": "14F683C272A1DDFFBFC79585",
- "legacy_metadata_key_hmac_key": "9D4E2CF9C2201913D4C5B8D327D053FA3032BCB44B84B82F05A59954F0D16F46"
+ "extended_metadata_nonce": "0155A616ECEC864B00282442",
+ "extended_signed_metadata_key_hmac_key": "A824088645C02D59479DC7A74318CC5E07654B61F06478C67CF046E7B85BB252",
+ "extended_signed_section_aes_key": "D8D511E9F1CBC39FEA821CEC36BF13CF",
+ "extended_unsigned_metadata_key_hmac_key": "7AA177254B5A06EA9EBAF174490B4117DB213D894B3CFF4F877E4CD83BFAF8C4",
+ "extended_unsigned_section_aes_key": "E902E759E6DEC479968A81B77B94257A",
+ "extended_unsigned_section_mic_hmac_key": "CB6FEBD1421C381E3110CF4D3AB26B66DD581D0E0D56675314B389BF26D80231",
+ "key_seed": "476578AA15A168B1AA7A31A35118008730FB1557A71CB1FB4B49A71103F8900F",
+ "legacy_ldt_key": "EE0CC526127D2D552A052880C0903B85898507C0247F4635F50B0E4A7F00DF2B96CF572DFF31ADB922932C4A119DE3EC06FCCA823709A090BCD3E4F6E3C89B8D",
+ "legacy_metadata_key_hmac_key": "65FA3562C23D80DAA78FF2CAC8C6D283D75C674079FAA21E9381E66DDB977AB4",
+ "legacy_metadata_nonce": "9CC3630D7C3686BE3ACFB38E"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "C365",
- "expanded_salt": "05DA1369E391A945A442C2CC3676FBB2"
+ "adv_salt": "9909",
+ "expanded_salt": "AB6B101F206D124E8B55520349C8F4DC"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "45C2DDECD0878836FC197AFEC13BA0DB",
- "legacy_metadata_key": "484A9CE8ED985FA194DD77D2354F"
+ "expanded_key": "DF7EC5214955F4A2666598DBCBC1337B",
+ "legacy_metadata_key": "B37A8ED8D672D20361D8F3D51AAB"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DDF9EC141A79F0185FD37E760EF69668",
- "derived_salt_first_section_no_de": "88AF8A64211CFC722662E77DBA461D77",
- "derived_salt_first_section_third_de": "D43759A61592FF6F89D40B9D1507C8BD",
- "section_salt": "9D57DA5A3766B0B13598557147CF67F6"
+ "derived_salt_first_section_first_de": "CAF806EE61C9F98C033B6CE648B0A9AA",
+ "derived_salt_first_section_no_de": "7656E7E7B214432B15B30F17901A592C",
+ "derived_salt_first_section_third_de": "DAAF85C2FF8DCA2EEAB6524A94EB001A",
+ "section_salt": "DB0B46A3A5A38945744BC413851D8452"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "3298AEBB9322A5B795FBC671",
- "extended_signed_metadata_key_hmac_key": "2C155D6EF0F83D053320DEB9F9014DE176BD72EC289243FF8EE553E23F4A7CF5",
- "extended_signed_section_aes_key": "448937EDB663A6B8DF5902060CA4BC89",
- "extended_unsigned_metadata_key_hmac_key": "CACCAE477D54E5BE449EB32AB840F107145A1E5451323AC0D851865B51C25D4F",
- "extended_unsigned_section_aes_key": "8939036829F59BA1CEC74F42BE41781B",
- "extended_unsigned_section_mic_hmac_key": "EB7C41DCDC9F6F367877BCDB306F4000A0F01ACE35204BEB206B7BDD88F8925B",
- "key_seed": "112E5F231CA297CA8F8D93CD3BF4815DE415D203AF3DEC28A1EA8434E6BBE1AF",
- "legacy_ldt_key": "EA036CDDBCE57B6359305ABB0CD0B95528CA7DAC3379DF077A12D6A4B4BEDDA6CCF3C34B705D61F4B23F1DB4343BF19143E4491384A753F222252992C8F1954C",
- "legacy_metadata_iv": "B04D11A8C027C0178BEC1406",
- "legacy_metadata_key_hmac_key": "8F4117950AE3DC2AD7B94B86BFCD32B775BBABF2AF3F23704D00FF07E815127C"
+ "extended_metadata_nonce": "0598BCB940F7E46AEB02391A",
+ "extended_signed_metadata_key_hmac_key": "4B37B033B3911F061486FDD312F423269F345C5EC9D6EE4C9E427B2E2D584159",
+ "extended_signed_section_aes_key": "E28193D56E706173061F6890E557F96A",
+ "extended_unsigned_metadata_key_hmac_key": "4817CC85BC549519BEDA10D2257EDADE178B2AA9A710C462DD1190727B9E2E14",
+ "extended_unsigned_section_aes_key": "197FE5273519A250224BC5E582F599AE",
+ "extended_unsigned_section_mic_hmac_key": "E2B6BD73DD9018FC0D73C63574CDB10E27D5B84386958EB961B30AED26BD5303",
+ "key_seed": "2E84B9175D2AF64DCF5592A6CE6A600430F36D1E326268C8628A0790CB832637",
+ "legacy_ldt_key": "78BF29E2890F20C2359FFD32E20DD90972C660DEE7626DFB2FD89DA4DF2AD34B146973BF7FBC08E477F18199F3861A089BC32F247BDE835A7E34D4242241830C",
+ "legacy_metadata_key_hmac_key": "6F73D2A56EC7A166FF4965BD10FF5BD53225F9E598E9835120D4D3ECE29839B1",
+ "legacy_metadata_nonce": "6643257603952C875B40D527"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "1CFB",
- "expanded_salt": "55C3EEFD3914400533947F78553BB046"
+ "adv_salt": "0518",
+ "expanded_salt": "F5CB5C30716D50337E3597A008774306"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "5CB940FD9AF7E93EA90A67A5A4843963",
- "legacy_metadata_key": "5DDFA82F682B6152068EEA66E80E"
+ "expanded_key": "C7437CB6E1910745E1D5F85217DE6C3B",
+ "legacy_metadata_key": "836B4F0F57011DEE3EF79471A08A"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1957E4CA06426B97F44788B378B0E4E5",
- "derived_salt_first_section_no_de": "47E0496BC33E8B8C8A4AF6A734A643F0",
- "derived_salt_first_section_third_de": "86D648E1E152BBFADEA671F103A362AD",
- "section_salt": "4BBAB645842FA8A2683641BF61183A55"
+ "derived_salt_first_section_first_de": "509E424CBCC5964DC827CD736417FDA6",
+ "derived_salt_first_section_no_de": "8269B8D8C65B9F7519F17EA1B501DCF2",
+ "derived_salt_first_section_third_de": "313C4472E5BF2EC6F08F8E407433E2D5",
+ "section_salt": "0C98C48D64771BD607BEE3CFA873E048"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "FBAD32C0F24A2658F25EC00D",
- "extended_signed_metadata_key_hmac_key": "35A394397F703B4B7C4513A4E18806CEDF73DB7ECE5457A20FABB0917898253F",
- "extended_signed_section_aes_key": "E26F9CD7F01F34392BFF8F39E4C08218",
- "extended_unsigned_metadata_key_hmac_key": "90840237B237C610D56C6ECAE03897682D657484EBBDBE105C311BD700BA5AFF",
- "extended_unsigned_section_aes_key": "055482485814C7883CE3E0CF35EE7B57",
- "extended_unsigned_section_mic_hmac_key": "2596527142EC51F1F2B0421A5C1AE689BB5049C23078AA13370E51B9C56F0979",
- "key_seed": "3CD3BA09DADEF0132725A417DB1AB74ACABB8E9A39648019BF716F4B9B4CC006",
- "legacy_ldt_key": "1C0A0CFE837ACC248284243F225A3BFC6FF96D23F43FBBA1E49AEA37295858ECF71A853723209E947C8ABFDFDD0F2E4B8C424195183E7D0F9C5421D6774E6877",
- "legacy_metadata_iv": "CBA34C353E0B56A761C74FA3",
- "legacy_metadata_key_hmac_key": "5F8B72BCA721EED01EB349A11FBCD307DE8028C320B0B7D71C0CF2CFA31DC9E0"
+ "extended_metadata_nonce": "44F203FA2E7FC2E7DE0985A6",
+ "extended_signed_metadata_key_hmac_key": "077688F727BAADA52A42D5F4C5DE0FB10028190F68A2950BD1B622A8810A4F84",
+ "extended_signed_section_aes_key": "74959A95D5FE867B35646442EE2367F0",
+ "extended_unsigned_metadata_key_hmac_key": "6F5E34C56135FDACC90EDD77AB27D40C583689FDA915AD2B3E053FB287A9B7C9",
+ "extended_unsigned_section_aes_key": "BFBA8DDD3768E1475F6C2C8167DE2ED7",
+ "extended_unsigned_section_mic_hmac_key": "7723F9AA8F4694412A19AAF981149B03F332C2CA84EE7A7EA30F0A6CFFE8DF5F",
+ "key_seed": "C2F7D2B6C8A814B76198CC2838B787E70BE404B7F30C2D3300F00657FF15D4D7",
+ "legacy_ldt_key": "A675CA45BBA982D8027F96AB8E65B2B267F317805A8E92547DE9B59FF68D1D5D0464197908115D84F1699DF1321671D201AD42918AEDB938A32D4C9145505949",
+ "legacy_metadata_key_hmac_key": "C8B1A0EA176953817E25A5C2DD984AAA997A0841FD5795EBD596F8954490995D",
+ "legacy_metadata_nonce": "811CF06428436C54CFFBF02F"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "C105",
- "expanded_salt": "203283EE23CE8EA935CC2A69571B20E2"
+ "adv_salt": "FB05",
+ "expanded_salt": "5E11580A3CE991235E9CC3C7F2ADF285"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "E5875D25AE42A5D7DA3F7492E17B0EAC",
- "legacy_metadata_key": "7D863F43B31BE26BECB98CD539C4"
+ "expanded_key": "3226C766C11C315F46A2173286D56880",
+ "legacy_metadata_key": "A3B88B75A089E3D23A9DEE562FCC"
}
},
{
"extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4EBF39295282648698ED2DA522CE5887",
- "derived_salt_first_section_no_de": "E2AA9E8E50872149D4157988B1E8ACF1",
- "derived_salt_first_section_third_de": "1A0B60A0E6E7FD02247907B6930502EE",
- "section_salt": "9458F63B08ADB265C0CB1C4CAEF99857"
+ "derived_salt_first_section_first_de": "BD4BA99CDFEEFD741D662D819B4D14F8",
+ "derived_salt_first_section_no_de": "64FB9A93030B0365D875001B3E96C350",
+ "derived_salt_first_section_third_de": "6A3C091F49BF86800AE97AE1E7E45328",
+ "section_salt": "E48DDB9A0AB7F195FC4CE1EECE95C905"
},
"key_seed_hkdf": {
- "extended_metadata_iv": "5AE57396B780F2C9FF83FF29",
- "extended_signed_metadata_key_hmac_key": "02DC72D9ED3A23F547E568D9910CCE120BC6AC82B542FAF0508B2F9A2B3A9E9E",
- "extended_signed_section_aes_key": "788E5DDC5993B1772943218AFF93A27A",
- "extended_unsigned_metadata_key_hmac_key": "5875E4710EEBF4A74DD101E8A0A5D819F0B5BD4C81CED6E25FAF38A37B630C97",
- "extended_unsigned_section_aes_key": "C880197CF3E522B58E10F6B5F23C542A",
- "extended_unsigned_section_mic_hmac_key": "D60A10967897DBEA0092ECBF7757350D8042E49BCE05A0701C2201241AF1A05C",
- "key_seed": "0D60041F5756DA4FABB7E366A1A76E42FACDB7A2271D50A775419992FB5C492C",
- "legacy_ldt_key": "9463C971D295766DB3055017AF5BEE36F7AD16DF50C02B0CD2CD7C1FE9B272C113CE78313136DD23BDC2DA26DBE4C7501B3ED6EB5FECCD3C99235F6981966734",
- "legacy_metadata_iv": "A4ADA414477D143E95ECD2A5",
- "legacy_metadata_key_hmac_key": "F44898AAFECEC84444441DD535F055A19B13654A1074A53E5917121D2B14726D"
+ "extended_metadata_nonce": "E3B03E7EC1C59A97088C54F1",
+ "extended_signed_metadata_key_hmac_key": "827D30C971E64E75A26047C6288B4709D814C9BE9CC7F46572BB9B343D49A1FC",
+ "extended_signed_section_aes_key": "31F40B5580260656F90D47F58C6FFE3E",
+ "extended_unsigned_metadata_key_hmac_key": "EEF0C2830B30035F6EC56904F132AEFB4098A88951CC33286939CB9789AD1638",
+ "extended_unsigned_section_aes_key": "A60216A1AC950D161D157EDD08C98073",
+ "extended_unsigned_section_mic_hmac_key": "8AADFDEEA0DF6A71D95D3570846F53A4FEC594274282DD4BD227C4BD64FF98AF",
+ "key_seed": "0BE1EE39610085A3BA277EBBEAD2872369707174526F23FFC67AA8BA962ABB1F",
+ "legacy_ldt_key": "8D4922931521FB95569442172FAC2118E396C92702DAFC1DC3CB9E205C0E3ED7896179B06D1A0B9528B936E2F85B6FFC741F8654016FD47107333BD247E96EA5",
+ "legacy_metadata_key_hmac_key": "FAE1B3B936C6756EFD9AEBCA751389891DACDEE3EAFD3A808D0797F0C128F544",
+ "legacy_metadata_nonce": "094573CD360778668C292C9D"
},
"legacy_adv_salt_hkdf": {
- "adv_salt": "C079",
- "expanded_salt": "B5642302B4A38DCEC4E4914D989C482A"
+ "adv_salt": "3E9E",
+ "expanded_salt": "D7A319F27E248AB5CA95967784D6AF77"
},
"legacy_metadata_key_hkdf": {
- "expanded_key": "0C4B326DD57A691E3631B32BBE7E0DC7",
- "legacy_metadata_key": "0B2FA680D5647B8CAAC173025B06"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8DAA64C3225EDADDCBD7F1B469613143",
- "derived_salt_first_section_no_de": "36EB6A26632DBC669E132B852AAD6574",
- "derived_salt_first_section_third_de": "B92CF95F2A4B8F56D55B96BDD0DF13F6",
- "section_salt": "BC86E595CF16679F55128C2E555E8C83"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A96AFB772F2910ABDC36C2BB",
- "extended_signed_metadata_key_hmac_key": "0EB5B70805074BD670EF7CBA8E9C1BE9C63F3EA2CA9C8136F0B8DEF342CBD833",
- "extended_signed_section_aes_key": "B37CCA03359948990E0F4BB7539B025D",
- "extended_unsigned_metadata_key_hmac_key": "D2437DA55B9CB1BDD1B6278BC509ED9DCF7883DC2731E4F2ADC333AC809705D4",
- "extended_unsigned_section_aes_key": "C4843252134D5B92C66EAE46497A00A1",
- "extended_unsigned_section_mic_hmac_key": "25BC7F850A41E1F1B1D375E36E8C0B70AAD7BE33353EB03016B699EB25880C97",
- "key_seed": "315BA88F59C5B1E4B00BF7D35AACD588B49757047F34B0B944DDD5B57E8AABC3",
- "legacy_ldt_key": "1A1308CC3D031C128C57AC8B9F89F7A20ABFCF193D1EAADD9DA9EAEB41DBF084481EFFE8F47DFC7B103D788CBAEA4AD84B29660BF8B16CE95A80035E949554B9",
- "legacy_metadata_iv": "4AEAB6DE90B9130B95D7418E",
- "legacy_metadata_key_hmac_key": "8255C867F19F76606981BDDB791D646C97658086B2087652DA8318CD28177014"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6B76",
- "expanded_salt": "9F217A6E8B3C772EC06EFA4D56E54533"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7189025C36A8CA7D4571D3E5291F958A",
- "legacy_metadata_key": "0BC35F870AEA8D80AB1F569B2EF7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A6018D02F7571DBBC7016D6C9431EA6B",
- "derived_salt_first_section_no_de": "C3C2A45904C0B3E432E26933381F6FD7",
- "derived_salt_first_section_third_de": "9A1F4F6744D8765E823162401B127C23",
- "section_salt": "5187F12C9837AD8BA77B7F4BE848C1B5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7003218E467DF816FE6C9E68",
- "extended_signed_metadata_key_hmac_key": "08481EA27C154CD9D75B87D6DCCF87A4ABC78D5AF9231D057A3D5D6BD9B8464E",
- "extended_signed_section_aes_key": "5437ACD19017EE4216CA122A27950361",
- "extended_unsigned_metadata_key_hmac_key": "D8B781F33D17E5042C2C54FB747AED3CA9768E4A917D9851A09521A408FA7AF4",
- "extended_unsigned_section_aes_key": "55CEA32CA1ED3A6C92A3ED4C2D8F2BDA",
- "extended_unsigned_section_mic_hmac_key": "E2A711BB6CB4C445378A29E449F6133B243A165B9D15A6B21C5F3DFC178A43FC",
- "key_seed": "4AB28637DA675B8AF263B49F88895102EDFC1866A3842EC1B9D20C2A9CA2F73D",
- "legacy_ldt_key": "9400EAF2A4377C0DD13A7262EB77162FCF093039013DD977504E23FAA37F3D4DC2A616743C2B2DF070FD65F13587F5146F429DC2C6A066E5BF7A9FE2440DAD3A",
- "legacy_metadata_iv": "63E99EE67A5E31C7ECA55A4E",
- "legacy_metadata_key_hmac_key": "3DFB20BF987605354763AA91FDE0ED372621AE865A39DAA85A22EF08EB2DFBB0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D531",
- "expanded_salt": "D3060228BE646B89A1F7EBBF605AEFC9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "06BD15278B14B04AA523AC141CB5E888",
- "legacy_metadata_key": "B6EA6DCEC9402301C2A61CC9C1AB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "35C41F7903B6406B811C463428FC733F",
- "derived_salt_first_section_no_de": "D891C7209212B8D50AE944A0D665D534",
- "derived_salt_first_section_third_de": "3A601412DF7B5F27D694BDEC981B300A",
- "section_salt": "3983CECA78F5AE78E2050706B3EAC4A6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CE0257F6516583BAA39869E8",
- "extended_signed_metadata_key_hmac_key": "B53021FD1193EE72931D67E2CE4686B5F96786AA55431A9073205C6F2EA72273",
- "extended_signed_section_aes_key": "831D881C577A47FC08026304EA990F94",
- "extended_unsigned_metadata_key_hmac_key": "74C232E2CE145ADAB9B7AD1BF05199B7D0EDD920A37C12BFAD7EDE56D4C51E2C",
- "extended_unsigned_section_aes_key": "6D85B1A7818362FCF9C8E74D00D8695A",
- "extended_unsigned_section_mic_hmac_key": "19166C2A44089ED11B4A76324461878EB3F0D53ECD1D60BEDAB773E022E2BDDC",
- "key_seed": "044CCD62589F8A63FAB023E2F3AA23089B0CD21B1423CF62AD9A3F4995255902",
- "legacy_ldt_key": "474C8DCE19F8100AC06001557E6E7B2C8BFE04B3462AB6386BBC171E3951AB23AE850CBEE427716BE59C04B1F82D03DA23FD9EC4845452F74309C172CED5FB6F",
- "legacy_metadata_iv": "30249F84F12F996B2C90825A",
- "legacy_metadata_key_hmac_key": "C22889F592649FCFF7172BCCA76EF67E5C1095F2A5E71482130F9DF665D52080"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7E2F",
- "expanded_salt": "4DE20C25018798A828987AC02A4010D9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6570446B9E98B5C183B5C7C38A28664B",
- "legacy_metadata_key": "A9E2C34DBE698943469EBAB7CD45"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "63706A11EC26081349E1D3769CA52CAC",
- "derived_salt_first_section_no_de": "958C78088635A1584604CD91C6ED77FA",
- "derived_salt_first_section_third_de": "C31874ED99534EA84341ECE87EFF1F81",
- "section_salt": "4346D34FB2F97DA8FB5A1DC15D467FA8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5B5236DE1758F9ED5A4B23F2",
- "extended_signed_metadata_key_hmac_key": "922C28101C7FCB1F274E075AA3DC91E221298176227AEE2617054449CCA6BA9F",
- "extended_signed_section_aes_key": "67E2FDCBB4D0A99EE0C5F406F43DFB7C",
- "extended_unsigned_metadata_key_hmac_key": "26386D3B263C816230F796B73D4A8BFB01BD52B1DD1929DF23F21639A9AC3898",
- "extended_unsigned_section_aes_key": "C6E3D4E12C3027014F6A78E046A0F751",
- "extended_unsigned_section_mic_hmac_key": "D792726D864C7A1BE5E5FE9431C3D6625BF426AFAFABFA1671EF13A57B2A2BB1",
- "key_seed": "64461411DE1E5CEE725D8503C5EA52C2CFBBA0360222401A86DAEAE1B313A591",
- "legacy_ldt_key": "B5E02C2B11F1BF0C06B815997FE48F5EF410BC409381D03EF3174ABCBADAB56CB2773357C10F27CEF0C1A0174DAEA8F038BAFBC9F4A86C0C1554A8D16087E91E",
- "legacy_metadata_iv": "8100D6F4B79BDEB0DDD37922",
- "legacy_metadata_key_hmac_key": "1ADC59CE6D31F8C1A070AE0CA821C473DC75825DAD3D15559DB9D24448BE12F6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F652",
- "expanded_salt": "EE83DC8F63DF6137D6777972CB5AF2FF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B6481238A3D55D6636D6505F9C9A6531",
- "legacy_metadata_key": "69DCB273EE29302F30E490E583A2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E0158FA50C198455F09C87A302D1E6A8",
- "derived_salt_first_section_no_de": "B022B03C0D8045A69B68A1D9E38024CF",
- "derived_salt_first_section_third_de": "ADEA174E74FF751EF772DD6CD2DA9BB0",
- "section_salt": "698551D0066512AD0DC8B3DAFA252966"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "464BE0052474314DAB1E0014",
- "extended_signed_metadata_key_hmac_key": "11B97ADD093FDADC9F39FB79C4FD5F1AED72FE9E5C6337CE89AF13C6FE0D3DB5",
- "extended_signed_section_aes_key": "5D736BF46126D04BC646A461DB22F5E1",
- "extended_unsigned_metadata_key_hmac_key": "FEAC005F1DC99214C73CBE800DAA8965FA22D8E2379A72219D38FA24DE2E8481",
- "extended_unsigned_section_aes_key": "79767D2D717D1A6E851E23377B9B924E",
- "extended_unsigned_section_mic_hmac_key": "F1F21960E34873B9CD00E838E2C1890AB7246A8EF5E65958BBCB34C416A58288",
- "key_seed": "8C0865E9FA63389C5835C6507F0150F4A8854E9C0E0B9B9A634C773479686F7B",
- "legacy_ldt_key": "AF647079A81A035F49F45987DF8209E5BF47E8097BC3BAA17A5A9559A28F2EF41ECCC058371F6F2CDD7625B16FA4710D7828B8B3EC4118C58C6BB06DFCD4C9D1",
- "legacy_metadata_iv": "52E5351D29017A3C1C7E30F2",
- "legacy_metadata_key_hmac_key": "A807543E1DD3219DB84FFE4D5F143EA1F78CD42EDC5068FB6E12B22977F4E1C2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0CD3",
- "expanded_salt": "67330C38366BF06160782D6D09B522B2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2555583FC3F6D6D25E49D5A1C5B472FD",
- "legacy_metadata_key": "C73579BF3BDDC79718ABD592640F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "00A9BB71BF7841A56EC8CB4CA36A7769",
- "derived_salt_first_section_no_de": "47D3FA5624110AB70D9B9A4DE2902DA7",
- "derived_salt_first_section_third_de": "ECA48A4AAF16AE8D4B4350FF1A5D1865",
- "section_salt": "4411E66E9651F468F90DBF630206BC78"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2A57C2E71057AA9196AC1CDE",
- "extended_signed_metadata_key_hmac_key": "D8C0F82A387F24F7FE380C40BFF918CEADBF866B17F375BF948593AD9A581C32",
- "extended_signed_section_aes_key": "EF7649E29FF84B7C350DCA4201A315FC",
- "extended_unsigned_metadata_key_hmac_key": "1BFDA1E2F832A0463010E27C600E40049E971AA1246A4121E2F8F2D94E4C1395",
- "extended_unsigned_section_aes_key": "C3475230AD75A608564E9C04534567EB",
- "extended_unsigned_section_mic_hmac_key": "D092931635F47428126E59EA08D1324CBACEF7EEE49D02E5FF07F0DE766BE376",
- "key_seed": "055D822149EF6B1FA4951A9B0F79D3874A4B4D32C7BF1E5B3813ABA3C6EF0361",
- "legacy_ldt_key": "18EFB891849D028863E54D43DEDF77A3CB1F0774D3EF413490C45A902C7D76EF325DEEB0217127892DE9CBD675F3391BBCD19BFEBE931B279F04EF229084B1A0",
- "legacy_metadata_iv": "1B0B3A4DC7C2DB8CCFA58D35",
- "legacy_metadata_key_hmac_key": "83592FD0FA53B142B06BBE8DE3A14CF1D7F6E120694A38458A29CE2D23A7EC6A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0373",
- "expanded_salt": "B19BFDCAAF14BB45C6FB3D699DCA82F1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E2F1688F6578D25DB3D89FC223F47E82",
- "legacy_metadata_key": "D9054CDE826DD60A9EA02A210709"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7DF54A067C925FAAC17E020A716857BB",
- "derived_salt_first_section_no_de": "44BE1AD88BC3DEED874DCE4F59C524BB",
- "derived_salt_first_section_third_de": "CD61B79C8F2C1D225228DA39128BE5BA",
- "section_salt": "C62093C34D3ADD0B75428CAA7BBC2583"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "22FAFDADF9916262EF60C419",
- "extended_signed_metadata_key_hmac_key": "E6FAE027CC21BB703209D9A10BCB97894DFF96379569F7C571A9C4A4077C161F",
- "extended_signed_section_aes_key": "ABD5AB285CF7BD9A00D3505F601C2D8C",
- "extended_unsigned_metadata_key_hmac_key": "8D2E3D9EFB26C96E50A4B2A080D72C26C885DA0C50D42FC5F58B425C5BE14BAE",
- "extended_unsigned_section_aes_key": "A08FC58067464B6CD672B991D172A64B",
- "extended_unsigned_section_mic_hmac_key": "C6803302FA64E37AB0037B0E518887ADE63E413A8FCED8CE0EC38B25EB84202C",
- "key_seed": "10AF6EBCD6CAFFE88B05AACD2985FFA346C98AF268C6231DF0E8FC374147FBD8",
- "legacy_ldt_key": "9E5B3F27C7F4355DCFE711C97BCDD18DFFC885EEC17DF93984DA4163DBD99DAED6D037AF57A590AAC42B006B35B1147DC473E522ACFEC6B5A625646E48732C2D",
- "legacy_metadata_iv": "BAF8ADEB35874160AE34110E",
- "legacy_metadata_key_hmac_key": "56646983CE936F36B9760D277FEDAA42EEAC43468C26E72AEEA7E49A86B8F72F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F7AD",
- "expanded_salt": "F1B7E81281DB3323803338C06B5F279B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F31D35FE9D1161ED59CA50B76C590032",
- "legacy_metadata_key": "462146E57F173B02525BB7C3FAD9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A54BD560087439DE24EE0A0966633478",
- "derived_salt_first_section_no_de": "C27A2ECBBE83E9909F9FF971782F8592",
- "derived_salt_first_section_third_de": "6C9046918CA6495C53DE1324BEEA642E",
- "section_salt": "852CE5171469A4B2B8EDDE541047E9A8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CC306C6D51AEEE0DE8A94780",
- "extended_signed_metadata_key_hmac_key": "0D701C12CC75EEC5EACF503B254C61A473969ABE1753057F3727FF8C39A4EE03",
- "extended_signed_section_aes_key": "1ABE67E698061449C411C858791D46FF",
- "extended_unsigned_metadata_key_hmac_key": "320A6C18BBD3FD82972D9EB9A4BAD448E2D956850BE9C9E4A16F13B440780326",
- "extended_unsigned_section_aes_key": "DF0D11705542518FA3FFAF8E87BE64FE",
- "extended_unsigned_section_mic_hmac_key": "3E497FAF161D69F6B28F8154B5E3605EF44E3900D9D07B578AC6746652BB5B14",
- "key_seed": "51E556834C76F317C41CD33B0B10F18F4344C6C9CCFED8A7AD376BB125E08245",
- "legacy_ldt_key": "A8344F664AF71C5527FF3B44696CF74BFFE8DB8397297397B32DC1C3C0B50DEACEC5FC90AAA2C88C64AAFACCF211090F69D0346F4E2FE48C325BEC9F2F24F0FE",
- "legacy_metadata_iv": "A3CE5CF488EE7654E0B56B38",
- "legacy_metadata_key_hmac_key": "E73AD3CF3158730EE2A7D9C8BC1C64DFDEACBA2FB949A437E27889519C61537E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1FAF",
- "expanded_salt": "CC091B470D8F2E5CACFC14D06E08E57D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3E564D08F314E9B450C80817FEED6B89",
- "legacy_metadata_key": "AB014CB1546CB36D71971CC14A07"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "75DB32F0860E484B750AD0EB88B2DEA2",
- "derived_salt_first_section_no_de": "988730BFC2604F3D5C831DDA4F397379",
- "derived_salt_first_section_third_de": "AA15235B47B1F2B4639AC829C02FCF09",
- "section_salt": "805CA5084F3D503C078004555777762A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F54331ED9B7CC571910F1347",
- "extended_signed_metadata_key_hmac_key": "14120E2688D94D7B190975789ED83FCB27FD687D9129D914262B096692D6CE47",
- "extended_signed_section_aes_key": "7E28A77A13948F8B4D8245D5B01E2C9B",
- "extended_unsigned_metadata_key_hmac_key": "CA7E7BB8D5112337D9A5CC3AFF59CE01A00E71337C553295E0D59734F242E4D8",
- "extended_unsigned_section_aes_key": "F20EA7B2BA85A66D2B9D1432CA019AE1",
- "extended_unsigned_section_mic_hmac_key": "D3CCD554634758BF985F820A3762584BC528C836CD6ED5B9A19148ABED2B4A09",
- "key_seed": "3432BEB290AC754D2BBEB2EECFBA72AC13F84D2E822AC70B662062107D4D14B3",
- "legacy_ldt_key": "001EFA4A602633A63978EE06A722D993CA8E1753AD4863B16E8AEF98D187133FD5B6EF3D99F7E9F938D0B0A7D5CA0F0C6089B7110B9D359C88584EBED4ED9F0F",
- "legacy_metadata_iv": "11409D8744C904884D2CB43B",
- "legacy_metadata_key_hmac_key": "C8A77070287A942B4B6326D0DFF0E0190EF8718382A06B1534EBD2E7AF5BD1F7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1134",
- "expanded_salt": "7561EB19C8B793EA2F23911BF1184555"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B426233392ACC4A09174115427FDF8AE",
- "legacy_metadata_key": "B4B221AE864912ADE66EFC3FD5C6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0A7AD8FAF5C83756F7883C7F074EEFA4",
- "derived_salt_first_section_no_de": "9A8FC589520DE839D6899EDD9C42CD0A",
- "derived_salt_first_section_third_de": "7A47037D13BA218B2526BBCBA8E32751",
- "section_salt": "FB703E60A8B731C3D57D62C036460F26"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F37185700093F43A7A1B4F24",
- "extended_signed_metadata_key_hmac_key": "59556F08AB7C9AB32A210A9F310DC6260F86AEAA4B1ECE779F1593C838589344",
- "extended_signed_section_aes_key": "8CD515E26B4624A7BB4F3C90D0C3F2BC",
- "extended_unsigned_metadata_key_hmac_key": "7902937669FF5F5122378A7FA58D1368D934EE224F9655FE8262917428BC37BE",
- "extended_unsigned_section_aes_key": "DB766865B3294ECA5B7EC1F084B84424",
- "extended_unsigned_section_mic_hmac_key": "8E8ABFD67ADA6C52192567B7AF6A17BEA4800A329F1F837FA25226E8335999FB",
- "key_seed": "557221D24CD215DF63242EEF6430E4B476661830FE602ED357131B50D2785AFD",
- "legacy_ldt_key": "D9B5F2B6022B2C14F0F1A8290AEE65782704A70A7D8438611D3F434EEBE40A0420288FD51A15C92ABF56DECE22E45287C1140A9D624305FDAC6C5DED145C700B",
- "legacy_metadata_iv": "719D149C26AF0CB2722602B0",
- "legacy_metadata_key_hmac_key": "DA16E1BA508DE28321FCF66E935F9C070A83A2A358142160CAC96C2DD19EF6E0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D212",
- "expanded_salt": "A23E7AB00EBB8EF09EA3992E4B71CE0F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8D06AF5DBD5E0F09AA6CEAA01B69C3CC",
- "legacy_metadata_key": "BF01BB992FA08A05A4BB3990DB9E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "40D899AF8113186BC4E8FC0FBF2AF63A",
- "derived_salt_first_section_no_de": "7AB76D20C5A4484F6E7840B0FC6CB53A",
- "derived_salt_first_section_third_de": "5E105047B875A7BB09E7E1FD08DF2EF0",
- "section_salt": "16C5AA3D79EEA86BAC1244E319367E1F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A38F44257D0ECD3621255853",
- "extended_signed_metadata_key_hmac_key": "BFB9376B6BF4C5DC3B90ACCBF5F0BDAB7B097CA9BCBD9A3BAE1FDD676088CAFD",
- "extended_signed_section_aes_key": "166990517DBE10C9683F3ED8915B10A7",
- "extended_unsigned_metadata_key_hmac_key": "2397F1A851D8E5B2A8636D2934F40AEF0E42A4581E833A6D38B671EA1850B263",
- "extended_unsigned_section_aes_key": "41EA28C5BC5347E828C8EF10D476AD75",
- "extended_unsigned_section_mic_hmac_key": "76E2B47FD7CCC5C95B26AE9D03466AB54B98FB8BF74D41CF9AFC7129D2F3E2A4",
- "key_seed": "39322109CDAD307E2E3FF3DD23FA84C102F99E032E579C5500B746D0778D089D",
- "legacy_ldt_key": "80E7275180F83527BFE1058C66B420F7B76CAC109D70476147F3A932CD2EDA5869313D1CF7170DAB1C3B727334068854A3A261F7351914FC975E1043D6E3068A",
- "legacy_metadata_iv": "377F6D7E599D81B6CDBEECC9",
- "legacy_metadata_key_hmac_key": "FF7DA086693D1F47C8B00CD31BD50DE756521AF0C10D796665846B47A43CCE44"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "76D6",
- "expanded_salt": "90250E1E98B9BEB13B9B02939BAA9096"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "55B81F23FA6B7521D4FC5D275C5A67D6",
- "legacy_metadata_key": "2D6404AE2EF68BA5CAFF27D8EDAC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "233FB570193FDD6A34F4B8DFDA07A743",
- "derived_salt_first_section_no_de": "94AAE937BC781C0EA53EE6874F5645E2",
- "derived_salt_first_section_third_de": "09FA1CA8FC0CAA4F8E5D821667900A17",
- "section_salt": "65DB9A9286C01233D10B1D9C59D9058E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5E2A9D79BC28A4717BCC911B",
- "extended_signed_metadata_key_hmac_key": "D3D4560A66F447A2EA6C506B95B3B20BF8E17405E23836F804D5D334FCF22E97",
- "extended_signed_section_aes_key": "759FB848E8FDCE53825B9CF2EEB1E048",
- "extended_unsigned_metadata_key_hmac_key": "775D21342C2B3C37E2E40E6EDC385E3389870234671377BF4B30FFB06A1EBB8C",
- "extended_unsigned_section_aes_key": "D9DFEB9E25D98F46D75FFD7EBE74CD45",
- "extended_unsigned_section_mic_hmac_key": "3000C9AE61A5D10F7157E24BDC2611C18AF38DD75B6ED5CE34AD4EB64F8C7CE3",
- "key_seed": "F2FD4467604987C7146F12CE618670A1CC56C582F0FEB0662D633000C6172A4A",
- "legacy_ldt_key": "DE9A6F995A24708D307922BC4F8DFD9E261AB8722F99DEDD4E5788C9732B543BF685AEE4F48E609F5BB2AEEB204C4F1374C97DB5ACD18E883E07C4310941332B",
- "legacy_metadata_iv": "DF5290F4D61D1DE1AC47C4C2",
- "legacy_metadata_key_hmac_key": "89ED6D021338F0194C7A79790CD20ECAD74ECEAEB0B3629417432271AB4E74F6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BE3E",
- "expanded_salt": "DDD4C7C684A6A958B100F6CEFC2F1CF1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8A02B82E9F89BCA23F899FAA4244AB4C",
- "legacy_metadata_key": "F9DB5EBECD267DABECA6735446C3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7C9276DD6C9D7C2CFFB92E4321DD6A39",
- "derived_salt_first_section_no_de": "763B0DB72A9531CCDD53BCF8A073FEC8",
- "derived_salt_first_section_third_de": "C0EC68B44F230A7C7C2E5D3348597F32",
- "section_salt": "B4255E6DB0507EFD5297C31BF59C4E74"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "46BB01868D810F25F040FA85",
- "extended_signed_metadata_key_hmac_key": "C8208BE47B187A48499D3E6E309B981CF6A8F027A3C9ABC05651E74A7F08DDA8",
- "extended_signed_section_aes_key": "A61827551D82A5539961EEA9B47B48D0",
- "extended_unsigned_metadata_key_hmac_key": "26EEE44826263591D16C592E7A501561C45B4A4F5CB70EE6C6276B64EA01455F",
- "extended_unsigned_section_aes_key": "AE82A2845965F0639CEE8C9CB079228D",
- "extended_unsigned_section_mic_hmac_key": "69995BDF7DDA94B0245162ACA090E2B5FB712D25EB7CDD9880D7A2339476B57F",
- "key_seed": "13E4E3637A353EC142B10BF0298032BE4BD3AD7D837BEEBF7487E758DBED3C59",
- "legacy_ldt_key": "D5605DEC275305957D3735898A71166270259C35E5191B770FCC0D10D8F54359EC1E9939C8D6D198A8189BA221D995571AFA61E2D6BDF8290C548990133E87F3",
- "legacy_metadata_iv": "E47AD35C1D2538965AF43CBF",
- "legacy_metadata_key_hmac_key": "DD06191CB36E8BDCBE036A8D64DA6E1322113ADC66F5E3AB7871B6B032323BCA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "47B7",
- "expanded_salt": "054E56B31763A25C2F98A070543FD1C5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "91290DBF4CD2A9A3595064BE0A5DE9CA",
- "legacy_metadata_key": "ADB1AFB17F95B0398ECE25B61B25"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D8706FA66FB6B880FD8E1CE95EE1F867",
- "derived_salt_first_section_no_de": "F59A5BDF2BDE833C0FC31327C6A71A66",
- "derived_salt_first_section_third_de": "7B07459A9CDF1913EBAB3D484B29D3D2",
- "section_salt": "D7A66A70B5FEF04848BD3A87F60F3F99"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4CDB8F050DDFCA7052A3BD9C",
- "extended_signed_metadata_key_hmac_key": "D2ED973199E189D9881A59550696D2A1CA3EDAD4E7F9AEB7E37F9AF6E6E57F08",
- "extended_signed_section_aes_key": "67D28E991FF2A97CDDC087AFD80A54F3",
- "extended_unsigned_metadata_key_hmac_key": "01400D68D94540BAF9A16FB609A5E701B51620CAD531E0956E4AAF06DAEFE4C7",
- "extended_unsigned_section_aes_key": "AEA581657609270271F7E0B4B17D8531",
- "extended_unsigned_section_mic_hmac_key": "6585BEF20D59F84DC13C8E9519724934279CCB4AE284C5ED643A9148F61001A1",
- "key_seed": "23E320E3A363AA727C976B86DAE716EB1ABF59C3E03E0FC6013FDAF6063C3ACC",
- "legacy_ldt_key": "525DC931768006AFE305782C60CEACA5DB772EA0C2D6B474AF6C5B10222C00B89CFADC3B3E79CCE3E5A024F1A99DDA6E7AA6D970E7A2C46C9F6F7435D01E3138",
- "legacy_metadata_iv": "F6E42AD3FC4B878EDF503DF6",
- "legacy_metadata_key_hmac_key": "840692107394C0DCEAECC33C92D8862AB2DBC5F9553BB2F9C9A24AFA785350AB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BB4E",
- "expanded_salt": "86C67557201DA1E6110E3EA030D4B2BB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "084629DD7A0C0F914E98BF595E7C190C",
- "legacy_metadata_key": "4A9990729AA261442F6D9A7FCCB7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "295F19F5E47A8B435BF95BA597182291",
- "derived_salt_first_section_no_de": "E83262CD3349DFB84A8C069DF2588633",
- "derived_salt_first_section_third_de": "94FDBBF24549865EAE3A3B6FF69E1C7F",
- "section_salt": "9E0025A3FEB57D618702B6C48625D25E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D39CEE7B64BA77FC81211EFF",
- "extended_signed_metadata_key_hmac_key": "406398DC1C2D10374367062EF07324C3666BFC10CC7EEC6EF3D129078B7D15F7",
- "extended_signed_section_aes_key": "8384CD14E0F6E7F34A8C0435B4ADC502",
- "extended_unsigned_metadata_key_hmac_key": "8DA7CFEDC7D0BF357E1533900D2F6AEA6A81E1476186D26A40FA74A3DDBDF56A",
- "extended_unsigned_section_aes_key": "0D03F61F253DE919E2B166EA8A7460A5",
- "extended_unsigned_section_mic_hmac_key": "438BD4CA4CEF8E75AC75D12D39DB4609A1E70CBE5F7081C9BEE15C62C062A5B9",
- "key_seed": "AF659DFAC5926BDE5D46A3E89F8992C9FBB4C19A983B680E7BB38130FCCBD670",
- "legacy_ldt_key": "630927BFDC947606F0C6F7D84E1D72BA061985DBBB4EB1CFD33D4204F831170A94E6ECFB5C22C5D5D5F69042991A484D59F53447EAA95B5D6016F46C1FE8B08F",
- "legacy_metadata_iv": "32AA5A3CDD96E0B9B37C0139",
- "legacy_metadata_key_hmac_key": "E143BFB21696001699D9C4A9901A1E341824C88781E767680C78AD278564E55E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ECE5",
- "expanded_salt": "545CAA8F8F837F1431D406FF2B965541"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4791A871C3FDE0689D7E3564590B614E",
- "legacy_metadata_key": "28618A45748CD4681475B1B83BDC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0FD4E10CB9D8181C061CADAE6C4824B5",
- "derived_salt_first_section_no_de": "DBCDF1FAAFB25B0B94DB463F10BFA023",
- "derived_salt_first_section_third_de": "68353BB64143D186E7CCE5099F39F091",
- "section_salt": "6D5364033EA97F88C1EC7A19AFB28A1A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "43CF4394B5DA248C40868101",
- "extended_signed_metadata_key_hmac_key": "37A6A0EA6727261AF49A8599FC8977B4BF4AE17188010BAA3C8C72405FD59765",
- "extended_signed_section_aes_key": "D29C2BD5B80E60AD482939A0ECC42715",
- "extended_unsigned_metadata_key_hmac_key": "F8E13FD07CD0DB971029E972C508469F0B9AEE62C39102E235DB109DD4DC534D",
- "extended_unsigned_section_aes_key": "784FC8ED2164B7F2F69FE831A2EDAAE7",
- "extended_unsigned_section_mic_hmac_key": "4933D0BD82C27BEED54F22C00E0525D3E2EB4E8287DE75C0D3285409FCCBFE63",
- "key_seed": "FFFC0E09677D61CC44A79CD8CED366C2EFFF51B4C758D30B187A252CAD7ABA0F",
- "legacy_ldt_key": "02D71D57FB88BDE9E94096B5C9A94317B6DB508CEBB03870E1514280ECCDF9933948735C7A06C2C5222B2DE1814A11578FC5B7F52064B41842F217AB047C5E89",
- "legacy_metadata_iv": "43A81DAA31E3EA3D27779BE1",
- "legacy_metadata_key_hmac_key": "CA5D45E590BA5F5BE567008E833F018052378C67AADB5354D105FB33CF1807E3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4697",
- "expanded_salt": "EB63329807FE09E8A32E8B975BFD5D47"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BFDD07D448F86EF0C3148C599F1E2162",
- "legacy_metadata_key": "92A0D4FE1E5E34E0F8C16A125394"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F105C48FDBBA26848151EA3E1F82F9A0",
- "derived_salt_first_section_no_de": "C7619DFF09E147CA2169911C3B976E6A",
- "derived_salt_first_section_third_de": "901FBEBDF8B0BCA4471CBC199DEB105F",
- "section_salt": "2778A75976C243E2F0AC01C26E8B8647"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2F4831F70D6A63A02536DD9B",
- "extended_signed_metadata_key_hmac_key": "24664F38BCB80743C296685F5513DF95301E54041E2C3F1418509D0D8C8D7350",
- "extended_signed_section_aes_key": "F5BDF005C8589D693102E431BE8712A2",
- "extended_unsigned_metadata_key_hmac_key": "DE59C81EE0F9C73D87E1D11EF713C14F8ED74F0086C4D136410FC7BB08351249",
- "extended_unsigned_section_aes_key": "364742584432EA1651009BDFF03EFB2C",
- "extended_unsigned_section_mic_hmac_key": "6A2358B0E4938E207620E27A4BA06B0006BE579469F6248C7D05B0261033B7AC",
- "key_seed": "FF0731E2A2C9A2794E21E9D6E0F431505269B6D0B96811DCC053F613F635C664",
- "legacy_ldt_key": "4F70F5B795FF752681D51B54D8978C48C9D0F0BC03F4CC41BF71A1DBD1EF2BFE9688DFFAF2040A17B4DCDD2208E16B714C042DD634135C2450DD4E7137A77B09",
- "legacy_metadata_iv": "258B1A28C3F71B30E280DE30",
- "legacy_metadata_key_hmac_key": "891F196F07B15016DA60CB91BFB6E49EE7879B0B491D7B2064D3573E8E2CBC87"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0323",
- "expanded_salt": "E15C6E7E35DC5DEE7D3663A75820C75B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5DC060D6EFDD1898C98B3D79406209B9",
- "legacy_metadata_key": "ACB5A01F7037E499287E8CC66F68"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "86D4F6BE77A1C8DB39E0992273AFEBD9",
- "derived_salt_first_section_no_de": "CC8BE4DF30CF2094DC5457A9A07E2ECF",
- "derived_salt_first_section_third_de": "4AA8A102C078BB9883583A4250988F64",
- "section_salt": "95514D6D479B3BBC7910F5AEF16C7773"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F08C78CF2FB0FB849534A326",
- "extended_signed_metadata_key_hmac_key": "4F961565D92A538CA0300030BEFCD5FCACD0CDA3CCDE7A601D94179A41E4F4EB",
- "extended_signed_section_aes_key": "00D676588BA993F2BAA228EA92616E50",
- "extended_unsigned_metadata_key_hmac_key": "D4687C66588CA382AA965729D730DF146A91267F0BAC118855CE19FA64078232",
- "extended_unsigned_section_aes_key": "101C036A17C88F2003BC9055144CD9B3",
- "extended_unsigned_section_mic_hmac_key": "0E76EA41D9D3F4A3C7B2142B8926805D58C7885278A843D3311713C9FF46DE05",
- "key_seed": "C9A94957D612CA47EC68DA99B959EB317F4DCB8C159D1F8D2346C3AE8883A5EE",
- "legacy_ldt_key": "F0AC0D20AF3DDD97643E0B03F6238F9BF8EFB945D6ECB68E8E58E8FBF452B6F81F27CC20A690BDEFC101F76D0695700B4F1BE5791B8277FC809452AE213C2382",
- "legacy_metadata_iv": "B8E95404E22D894FF8AE590B",
- "legacy_metadata_key_hmac_key": "6440E953AA07016C7A868E5C9EDCFC9C17CA1E8459CF10B220880D4BF325D217"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "593C",
- "expanded_salt": "2E7E5C50F83CFC90F45BC72E6D7B410B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3CDC682117E40A91FDC00D45DF398D07",
- "legacy_metadata_key": "98BD5B39D92CE642C79511A922D7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E79A5C1D11311C8EE40D566106D6887B",
- "derived_salt_first_section_no_de": "156544CBB7D9B4F6BF9A18802E17E106",
- "derived_salt_first_section_third_de": "3DD694D4D5C76073CADB2D078DA27D20",
- "section_salt": "02689AF5DD752D7052AAFEC666CD66FB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4A3ED7855599C4AAA17019C6",
- "extended_signed_metadata_key_hmac_key": "0555E51B9130124DEF048B9B970E1B6E3F091DA41A9C81573F33B154F201D7C7",
- "extended_signed_section_aes_key": "418D7D5A6802DE11C3BBD48AEFAD3E06",
- "extended_unsigned_metadata_key_hmac_key": "FDC48CB2C08A151C0C04CB4489690980C1E91FB934DA02DA11FA510B060A15F0",
- "extended_unsigned_section_aes_key": "4B1462C045E49DFEE881A915C204469F",
- "extended_unsigned_section_mic_hmac_key": "C340B0A1B82D5DC4445535D7ED1D28132BB2A7774ECC2782FE908DA4725AFC0A",
- "key_seed": "5A6E048BF4C6ED3BFAF8836933C73F01180C91C61A1CC4B38173D2F89EAEBEDF",
- "legacy_ldt_key": "F9E1EFF498F587BE8AEDCB7DE992E0E8F03EFE2E057B413F1C6279D8A52835C089222A3531C5D3D15DD8836FE531B8ADDACEE7BF8BF421C93A500FC90FDFFCDA",
- "legacy_metadata_iv": "87DFF09BD29F07E53FC3A945",
- "legacy_metadata_key_hmac_key": "0D9A66746DB1129A33702BD15EA258BF496A37C082B4B172580B5FF89D1411E5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9576",
- "expanded_salt": "7D813F17CDE3884074517B719FECAFDD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "025BB3F406F3824BD111E9C89FD2AA67",
- "legacy_metadata_key": "7DF67BE907D892869E8743D86AA8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "928C982F145E5160B3BA7A2DA00A37CE",
- "derived_salt_first_section_no_de": "7EC3B94C3B9619D7B21DA4A3AC540C74",
- "derived_salt_first_section_third_de": "307419200BC95F6CD1F3A92B69F73C3E",
- "section_salt": "CDB544082F9FDB8FC4F25E195AE60D73"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EDDCF68B84745E8361080887",
- "extended_signed_metadata_key_hmac_key": "B453D3ACAFB01EE6BD0C3CCCD4E818F932A74D043B45BE09F46A7599443EC881",
- "extended_signed_section_aes_key": "49B62D440054BA71C4DCD4D0E20EF2B8",
- "extended_unsigned_metadata_key_hmac_key": "E8F4C165FA46A1BD5AAA50F8618BF576A689DF9312767B6520E0A0C8AF2A8040",
- "extended_unsigned_section_aes_key": "80A88A2E253594C4893885C6684F5871",
- "extended_unsigned_section_mic_hmac_key": "D2C7DB1770B30E92C15B34E115EE7C761BC2528C6F54B9768CA9014EE415E5A4",
- "key_seed": "BD9B329250362910310888407DF4487886C6980155BD85AFFE48562BB272B96A",
- "legacy_ldt_key": "38E7F3F39496A248558B9D6209D8462A0AEE6FD0F941481EFBE16D76AF87FB00732A9626584352787010FDCCCEC2FCA798936AFCAA127F33E58F19A037192F38",
- "legacy_metadata_iv": "CAC7B968F9460F2DDA20ED0F",
- "legacy_metadata_key_hmac_key": "F3B64161BDAF35A6CE2BA5F4D0A2C5567C11C54C279C23F56275FA1C91E1046F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2458",
- "expanded_salt": "30FC0B71343C57D5FCDBBD77798763C9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "447F41761C0E12CF1456239E4A0719A0",
- "legacy_metadata_key": "2D32C811958F0C9F7F288457331B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "121F24F9BB37C101A8DCC557940F9510",
- "derived_salt_first_section_no_de": "04B8D8C0FF5466FCFAD3BC89345D74AF",
- "derived_salt_first_section_third_de": "6C36B3E698094CFE0F0ABC3766DD8BB7",
- "section_salt": "83545AB80758072CA8932260BFA4CE42"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "239F9B41A01FA37A6139A63C",
- "extended_signed_metadata_key_hmac_key": "92E4A03FD4B9359B588BFB945713A45AE6A35933BAAED0C243D3BB909E9C5056",
- "extended_signed_section_aes_key": "D7EBF1E3F1ADBF4F88BB81865680F56E",
- "extended_unsigned_metadata_key_hmac_key": "1ABBAC4B46F6DFA70B591CE0017F5F68CE0939BEE3634970EBC8C2718D1D9C66",
- "extended_unsigned_section_aes_key": "1AB60FA676D170E6413BA35423C107B7",
- "extended_unsigned_section_mic_hmac_key": "B3B08158A7FCF96CF5BE9F1FE04605C90BDE961CDB4B53136DB619229E6553B0",
- "key_seed": "7C74A662B14A0290A57DFD92FBF17DE703811129A34A95CF500F2F6CC7A77FEC",
- "legacy_ldt_key": "9BC6646B506744E137CC88806361E1935E09B15EAC35255872529323E7E23CBFC4B4EA4411F36E827C2A480334E004BF99AC60B36B4464B4A9C28780FB13DD76",
- "legacy_metadata_iv": "391D5E4D052078D81EEC399E",
- "legacy_metadata_key_hmac_key": "D556AC28BC4607CA7D214FC7ABAAB0BE6B88FB3BC9BB177731C2EE84DC92478E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "15D5",
- "expanded_salt": "1206924D9C18F70E2123C804651AA2C9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7C6C17071E9141CEBBD00D5AB43E9F7C",
- "legacy_metadata_key": "55F7631E40162D9F9DD58BBD8ECE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5D9579B236C3FBF42E621D3D5E1EDECB",
- "derived_salt_first_section_no_de": "1A00195BB5EB75D9B8B36E69DC468D54",
- "derived_salt_first_section_third_de": "C588CE933B06AD0C01C5AACBE8264CFE",
- "section_salt": "9367583B3E67C04260D8A179874224C5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E942772F8EDC95E0B1C9F273",
- "extended_signed_metadata_key_hmac_key": "597618E1164F10819A16FFFDFC67F4C73D6C512E963A9A53EDCEFFE112D6AC0E",
- "extended_signed_section_aes_key": "97E72055358740D5BCDE56778A49F32A",
- "extended_unsigned_metadata_key_hmac_key": "6CFE39FFDA027A14D13DD1620317EB21D00D1329F15A6C53262CC26C94391817",
- "extended_unsigned_section_aes_key": "132DC6197E070C673031823C8D256CB3",
- "extended_unsigned_section_mic_hmac_key": "03DB24B8512F910218A8E424FC63904520AB70162CA695D3E074739484183095",
- "key_seed": "3239D8672716E7BA36AA561E43CD875E1C753D329955AA5ADB7EE8221B41D3B4",
- "legacy_ldt_key": "062FE7C1A220F75D48D5F8E07A72D85D6FA945CCB1DA304F8FDA6D81BD60FB0AE9BA0056118A10060DA6AFC7B21DF9C8CE07CAC49827D845368A5BAC4FA1226A",
- "legacy_metadata_iv": "A364880BC9170CF67E571D11",
- "legacy_metadata_key_hmac_key": "86376C095D437E261E340A4B9AF013AA5A12A533D57908E1970E9B2B5C29FBAF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F942",
- "expanded_salt": "27480B5B746F3722261891F8FD09CE56"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7C5B98C3F5E3C07DA95914ED835EA9DF",
- "legacy_metadata_key": "53575F3CB9FC6DB9D710912E98C9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EB39A781293D3A6925DE3CB104516A9E",
- "derived_salt_first_section_no_de": "01A0888D0866F767766224B5CFBFCA51",
- "derived_salt_first_section_third_de": "1BABF535ADA6252A68A3827A31184D74",
- "section_salt": "0BFC01743E00786756DAF90CEFC270A7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A7384DF9931DD8A80DD32400",
- "extended_signed_metadata_key_hmac_key": "81F19CD63BE102CB1D947C32D8AE0724EE283589DA452081435F7C224FB6BF91",
- "extended_signed_section_aes_key": "1DF36BAEDA49CDFBA891FD876AE44DF7",
- "extended_unsigned_metadata_key_hmac_key": "EDFC9E1A016CE303B6DA1177FBE25570C50F02A9EDFFCF4DF1DE8A243E28EAC3",
- "extended_unsigned_section_aes_key": "C835C50FCE5E87272A2C1ACD4D0F3B91",
- "extended_unsigned_section_mic_hmac_key": "9398FF8BE7DF6A5A4D8BE63555927923316452B70C0734A18ADA1BED0FAD30DB",
- "key_seed": "A5ADB5654737AEA0F63910D5572343E973351C162516F123AB6314BBF5C45730",
- "legacy_ldt_key": "D7E48AFE4E58E590F0D255C44C3B9655B24D4E01B10F68354E2DC45DB2A3DA1036AD9372DC08EA02C9A65D690A17EA8C3302D1A43ED2BBA46B7D6025DA25D884",
- "legacy_metadata_iv": "0DB2382972ED9E1C45C32F7B",
- "legacy_metadata_key_hmac_key": "FEC98287EA9469A004CC19F12B2C098BD5E439659EA4B7DE59F186C19398F5FB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7C45",
- "expanded_salt": "783DB22719E7E370D5685FB553DD72EA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "32341E5F844CB5F27F6B661F1A0D8A7E",
- "legacy_metadata_key": "3787AE6AFA31190246DD3DFB02E0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A87D0D664E294BC5233BC617D723B3E2",
- "derived_salt_first_section_no_de": "958D8EC061CC4AAD214583DC43520B8A",
- "derived_salt_first_section_third_de": "BCDBABF4AF0055C095787BDE371EE27F",
- "section_salt": "FA3D78CF0F0E45D7EC77240C4EE5C5E4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "43E6389B0F450B2661B132B6",
- "extended_signed_metadata_key_hmac_key": "B9BF494E5149538DAA849580AA2A065B91376CCEB69E4F8FC9E1ED0545918532",
- "extended_signed_section_aes_key": "838B6B0DF76EF6062630FE337CE11889",
- "extended_unsigned_metadata_key_hmac_key": "9C15F817850DCCA216FCD3DC4FE86642500B2741F976F2B4D7C3D002E19C97CB",
- "extended_unsigned_section_aes_key": "B649AFB6036B8398C0D90C477954EED2",
- "extended_unsigned_section_mic_hmac_key": "0D8208D1E4D503922FD025D115C038322FCAE9AE6247741967C9645AD7B13DDE",
- "key_seed": "61A3C4A00545A762C6173EFEECEAFD80E64642BE8204390ED5A45EBC69A01ABE",
- "legacy_ldt_key": "7D4DA5E297544B665F884783F9A455C1949E52809541811187A178E70F1D1B1637E67AC96E5ADDEFD9E7DDFA238E6A8A82E6FD30654819AFF429A6DB7F9371A1",
- "legacy_metadata_iv": "3AEBCC35A36E1C29273ABB07",
- "legacy_metadata_key_hmac_key": "46A747B5E0B7D892A6FF75625FC2B6FFEB98CE9EAACFC930CDB00366CE59895C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3EFF",
- "expanded_salt": "AF6662D7B8A6AEEA77172C83E60F1ECC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FC82C6F337EB429EAE1D313C74FCD296",
- "legacy_metadata_key": "A56FF77F856D62760F6B883B1E70"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BE28F81BE4AEE6510A47109E8473A27E",
- "derived_salt_first_section_no_de": "64498B75D0DB3481DB0A65EA809FEFBC",
- "derived_salt_first_section_third_de": "E75969E82137CD62233E2A37853A7FE3",
- "section_salt": "477F58B9E14750BAB6E68ED924E6890D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5B5AFC4C929CE7D1EF36A8D7",
- "extended_signed_metadata_key_hmac_key": "796EB1B46D1FA4B4F74E3F75A9A0FA5E91EE0194CC6F5842A853D41D8CD66839",
- "extended_signed_section_aes_key": "AB1337B8EBFF07A205B1AB85F5DFD335",
- "extended_unsigned_metadata_key_hmac_key": "2E831798443A18BD3E82B7A151D879D9218A4579DBC5C6EF577898C83FF7F72A",
- "extended_unsigned_section_aes_key": "C3FB3EECB8D69397966A8758C9C5240D",
- "extended_unsigned_section_mic_hmac_key": "6D45D0412FD1CD56E61E4F338BC5381F9C42F7A2EA77FF9ABF35C725F65AE95E",
- "key_seed": "43693F6447509389D8DD011F42551D714B8F471C340B36733F35594EF3DF2E0F",
- "legacy_ldt_key": "7B65AF01E57101ADDDC5A0E41BC2DA83A78E037E601F85C6CDCB11B861E9F6A3478DFB5F985B9EC34F8263D416A7F89CFCBEEF1F50C938D6C68D5772DA2761E8",
- "legacy_metadata_iv": "A03890068D2D864BCE7432CD",
- "legacy_metadata_key_hmac_key": "5D602715C8EB4AB5DD66936A34C66FF453AA22D0287A47F3A37A9ECC2437F545"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1592",
- "expanded_salt": "3755FDB90CA048C19F2036086EF0E7F0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F67721437EEA60223C614BDA511F207D",
- "legacy_metadata_key": "6B00FD77E31446E57F311DA43E66"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "38F2A044B53977EB36087AA8EA56E205",
- "derived_salt_first_section_no_de": "8158C70D25B2D1660C05A5B9B42455E9",
- "derived_salt_first_section_third_de": "4EC0CE09B407E32055B13C16336E7CE4",
- "section_salt": "C44159F40730D13582416E00E130B351"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "805FEDD6F71943C55AEB528A",
- "extended_signed_metadata_key_hmac_key": "120C4F397FB388253E3D08B160E7FF28E088DA848E53E3EF25E08A149A781223",
- "extended_signed_section_aes_key": "B4A0935DF285DBF1F59A46AAA02F5D21",
- "extended_unsigned_metadata_key_hmac_key": "0ABD4D9FA5C4DC4493588F7A3103946B8E5E5CA98A1E99A32296ADB70F5204F5",
- "extended_unsigned_section_aes_key": "2A2B454070CB2EE5B23CDCC801F4AB8B",
- "extended_unsigned_section_mic_hmac_key": "F1D70F3CDB65702347D26C2E27F67F4610CD86F10D2BF9392C48E0757837AC8C",
- "key_seed": "B33AEBA9D2712021EAD8825941BC87D0B61A159AE82281F26679E94DA6464FCD",
- "legacy_ldt_key": "577A093A8F6351E2BCF866F9F43F45A9D32FE229F25F8375C023DD0E779E7A870912D565250F4F0DCBB1EE95C354D0E819435ABD17896532E7ED7E4FA277C357",
- "legacy_metadata_iv": "9542559F23EBD017BEB966B2",
- "legacy_metadata_key_hmac_key": "0E59C3FAC149BDC4651253A2B5B66661A0CF1ADC45EE9E055D517FEC196D13B2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B225",
- "expanded_salt": "007272C9273D8EB1D37DDA8FFD2B7B81"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "448FC38E8567AB8BBB52D1F9E0C79008",
- "legacy_metadata_key": "85F7E001911046E3F7E7558A3133"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "78534B65242994F8DDB3F4AC797A9386",
- "derived_salt_first_section_no_de": "E6A7E5118427937665C84212C72392F5",
- "derived_salt_first_section_third_de": "DB88811E72DC45FB3CE815E2514CA061",
- "section_salt": "DA9B35DC94072C0065C8DE07874C60E3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "84BE5F805F3FEE650BD2ED28",
- "extended_signed_metadata_key_hmac_key": "7A34C2680E8B892E70856F2C331683F72958B03E83B3BBFB90E866B9034D9C9D",
- "extended_signed_section_aes_key": "108888A0B98CE5FD62146A7F19BE3B53",
- "extended_unsigned_metadata_key_hmac_key": "03A6F6F07148FEFF8AB8454B355BD83B546CE3488F25C41F6836B3E1006C7F49",
- "extended_unsigned_section_aes_key": "7E2B784B7CD4B29081AC81C547E3514C",
- "extended_unsigned_section_mic_hmac_key": "996EDF3BB13AE5F6D87C5FBF80E09CF269819D3620E61F7F7D640C33BD62DABF",
- "key_seed": "42D963EB11C126B91C82C53E46F724D9D474A9030F0A1873C2F9CF55FB7F0FB1",
- "legacy_ldt_key": "C51EEC33A5717E99A109B54A4C2959C661AA90A41689FAB95A7FA0E2D0C654261C1A8654CCBC0023ED2C1D9219B61BAE8AF76D82A1AFA293057CD9B0ED4BB12B",
- "legacy_metadata_iv": "7CBDD024CC65DB267B155512",
- "legacy_metadata_key_hmac_key": "183C000D55365664618995B3CCF2E9591CFFB34BA711A291B88860991B234504"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D78B",
- "expanded_salt": "59FEB7B99C95EF412805FC86BA7CC450"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EABCC7BF763997CC737B6C481222BBF4",
- "legacy_metadata_key": "102F8E8447BE715FF2572FDDE003"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FF452E1E8745CD1F2D3FD57FD415B580",
- "derived_salt_first_section_no_de": "45BC19490723481FA7457CD7D135EAF7",
- "derived_salt_first_section_third_de": "D449BCA78CE070613762F313D8737468",
- "section_salt": "8303F9941125906FCDBC9781DC9A36BA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E6E505510A0F7CD9E61E4B2E",
- "extended_signed_metadata_key_hmac_key": "31B76C5879CCAA88C7FC875B43A006A86C1084CB2206A447B8BDDFD133612744",
- "extended_signed_section_aes_key": "6526D7CF8E4BF368134F7F9B4FECDE79",
- "extended_unsigned_metadata_key_hmac_key": "105383B6CA4A2DC381DF6F870C869F30CE2A2C7A279307D86E0F73FCFAC6A523",
- "extended_unsigned_section_aes_key": "D93310DE3BE6D5201691427B5041C12E",
- "extended_unsigned_section_mic_hmac_key": "9618AF036E8D128CDD72D9DC6EA1ECE97B0ED6463A660C17CEA0B96914FE1840",
- "key_seed": "E7BFEB4C8FD7976C87BBF7B52425BBEC306F02BD840D35A4F7236B96C04FF7B2",
- "legacy_ldt_key": "AB6AD5EF36043DE22B258B9180405C34FDFC3C4292AF32C6E7976465FCE89D0504854CF7687065AB2E9CD1C5062680A0BBE2B49308E418FD89C90752FBE7E403",
- "legacy_metadata_iv": "447E969B740D43425A546B4B",
- "legacy_metadata_key_hmac_key": "9FA951934E6F6B16972DC5218E2755A212596E8E9E7C9283A88AED1952CC8900"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ADF9",
- "expanded_salt": "BCF20CA3D1A18883EE5A8609FDA34766"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7C94D3C50761BC3E19B71349D73A38C9",
- "legacy_metadata_key": "5D50486FB50BFDB53915B1015B0E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "62009FBF0BD2487630C5215BEB50F3B3",
- "derived_salt_first_section_no_de": "0A66A59EE62D1442C70E7E9676B8D8C9",
- "derived_salt_first_section_third_de": "E317E30AF73D52B0E833D15CFE561BC7",
- "section_salt": "A39AE8B9D272CE5D7E9FB60A0C1803F7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B0C07376340DA398C6B98F64",
- "extended_signed_metadata_key_hmac_key": "B5E44A4B13404983CB2522D7B94542296AD9AE4D1222ACF27EA44E3BECF38FCC",
- "extended_signed_section_aes_key": "6B3E058DC32C8AFFA9F8214779B04667",
- "extended_unsigned_metadata_key_hmac_key": "F558D873A9701781B953EEFB328B57DC7B510A0D2ED9252DC6A673394D5CDDEB",
- "extended_unsigned_section_aes_key": "C8E375693A8FC5CE076CC1E51A264B40",
- "extended_unsigned_section_mic_hmac_key": "2F04F553A7EF1D4BADF2CBBABBEDB83AC1593D87584BB4ED7B2F146A08E8713D",
- "key_seed": "1F37925B5025C0220853D9C17145D6F8D406A8DE2BD27FEC6920DB10D5D7EBBC",
- "legacy_ldt_key": "CF5A12D9F0616A5432F75010CB17F1E76240D3EC8714805A55F3EA9D6C19DE498BA5C9C319A4915D36CA1E8872F2E36C12BFDC0153ED41CE3CC0BE88E11E7916",
- "legacy_metadata_iv": "3A464EB530B73BDBA6991629",
- "legacy_metadata_key_hmac_key": "2A4AC86B78EC6123D9BE2F9BC7D843A78CB7A63750B8B92C67BCBDE551287AD2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BDA0",
- "expanded_salt": "433DF935D4E46AD0628238C7FE9D837E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4E891528D8E9EFB732122B9AC15495A8",
- "legacy_metadata_key": "A3B65111C6B10971C0ECF9902F0E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FB94FB36B436319EF9000C74E188D8CF",
- "derived_salt_first_section_no_de": "C26102EACC50AF901A39DF7C3F006B8B",
- "derived_salt_first_section_third_de": "0FCF6958CAB9D169890CA1CE8A83C188",
- "section_salt": "0FD76789B9BD8EA08B5B5BAEF17DDBD1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AF51F9B4A6770826665AD8C4",
- "extended_signed_metadata_key_hmac_key": "820E887027C14C0067C14323AA842500FE5626F6732EB3BD3E431B1862E62344",
- "extended_signed_section_aes_key": "FA511A6AEC4D5CD5334E744FDC85A8FC",
- "extended_unsigned_metadata_key_hmac_key": "9CA05A8B7CDB3F496BAF06D0147F4E6503EB2A2827264C9DDCF95F8643D5DDD1",
- "extended_unsigned_section_aes_key": "91EE72F90CEE34571EB44FD976ECE089",
- "extended_unsigned_section_mic_hmac_key": "35CA76E1EC630D91EE7F4D73396C9B48B7ADFAE05087942C528CFFC9795C5888",
- "key_seed": "973726E97B6F4EF6F2397500184739525753BABB332DE86046FC92759172F801",
- "legacy_ldt_key": "1C99F69DB38312F67617DD5ABE3167A4EEA84CAA77A32D15078E6CE28FA9EDDE7F0EF008876F9D33944A6A31B2ECC59AFF7A0F6B08CEC329D036879F3BA7FF2C",
- "legacy_metadata_iv": "828D042E8E951639CBB875EE",
- "legacy_metadata_key_hmac_key": "DBA07F3995E2797491EE214094790379AF99299C99FE130DBC2B03EB8F2A1E42"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ADC0",
- "expanded_salt": "756D5F3588C6138FAE07EB3740FA6634"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C523B9E2DEF6F8BD359EFFFCFF027546",
- "legacy_metadata_key": "5637BF5B082BCDEE4D2B74B55D5B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "48FE22DFFFF27628ECAF9CF414D52CFA",
- "derived_salt_first_section_no_de": "A66A2CC3EBFC64ED10F8A9C68AEFB153",
- "derived_salt_first_section_third_de": "A2E9C30A77F7C074E89F7FFAA151596D",
- "section_salt": "BA86E55AF09DE4104D97631650828123"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3DE7B49EE71E6FB9F2319EA5",
- "extended_signed_metadata_key_hmac_key": "2E5E67F8E3FA59F3074097266DD024F799399E4155F2B4958B3C6DB719B44823",
- "extended_signed_section_aes_key": "9BEAE518F7778C123F61A04CF8D4AA07",
- "extended_unsigned_metadata_key_hmac_key": "38E483277572F6179EB34BFCF2D7F002F1EECBB1ABDF17F471B4E5D85DD486EC",
- "extended_unsigned_section_aes_key": "4E1E7F2B1B69D55DD0D84B5839A1D837",
- "extended_unsigned_section_mic_hmac_key": "454761E45DDC6A181D076B5CED76166E7FF6BAD4715FBF8A372478AFD9BEB227",
- "key_seed": "706648D46157AA6601130D306464D3DA213B3888B8F0412C7FCC15543AFDF480",
- "legacy_ldt_key": "CECFE87F305CC6CAE390C562D9E033D63BB9CAA3AD4E9FA6ACE1B4B60B8E7C478DC60C01FCBB3B04537A4041A91B46C11AF17A2F6B3C799F5B27734EEDD43A32",
- "legacy_metadata_iv": "C5F4DDB3B06253FDBD70848F",
- "legacy_metadata_key_hmac_key": "20D3A8957BCD7F615A038E388C9297303E736E626369776DC28A77B6C5EBA8CA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "78E8",
- "expanded_salt": "82D72F447FB39727C43B11121DDA2DB5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "80E98519C126ED7FC50C204943A94B9C",
- "legacy_metadata_key": "E3EC5F74D8B12731DBD6A5CFEA44"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5BBDE4E31C9FEBBEDA0095F400F44C9C",
- "derived_salt_first_section_no_de": "62DFA9CEBB7C0E75AFFF6C18F22E48A0",
- "derived_salt_first_section_third_de": "E969C74BE4ED6C929E493144E6E8EBC3",
- "section_salt": "797A87CFE78C059FF0B1F727834890B1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3CFC8390558CDCCC75E83936",
- "extended_signed_metadata_key_hmac_key": "011D11D557C4300462A2C27782B6CA4BD55A7F1972984213BE4711B8724DA072",
- "extended_signed_section_aes_key": "BEEB81E375A9B4B245C4D8CED444F82F",
- "extended_unsigned_metadata_key_hmac_key": "6F60A44B952B83F9F05790FB2D7E1E5A1BDA331416AA0B79D414B0D77F291597",
- "extended_unsigned_section_aes_key": "DF92BFA4B4D1BFC67FE81744A7364C7C",
- "extended_unsigned_section_mic_hmac_key": "F44AC68441680A95B0BF4B1CBC0BED4E2D187336FA53A17941239AFB71D4F1EF",
- "key_seed": "FF32A1448B1D526628F2CC9033E2FE93573F3307B0AFB328FBAB03FAB6E851BD",
- "legacy_ldt_key": "7E752E37578DDA4D7581691E868AB977FE2B0E4161B5D07FEC3C02C9680FB79BDE5EEE5E5C90495CC732FCB550B9767B1D7221DEED0E230A994D35C4F1B51789",
- "legacy_metadata_iv": "4E6389E97C6075E0CEC9FAD7",
- "legacy_metadata_key_hmac_key": "B8CF38D574C1843D3ABF329FE4232D4038DBC9D4787B713266DE9669178C08CF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B4F3",
- "expanded_salt": "B6A24E492A22D3BAF71F3623725A54EC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B028D465145173B0C236CC665728B3F6",
- "legacy_metadata_key": "06BA7A581C985279569FB11D68E6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4D79A11FD6CE146CC758C9C44A3F4158",
- "derived_salt_first_section_no_de": "F5106967505828503CD7A386030902A1",
- "derived_salt_first_section_third_de": "58CA21D83719CEF7216CF93C898DEE3E",
- "section_salt": "5907DEC154021EEE8AC2903D472D4718"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C95227349A6DC1FA71E9DFBB",
- "extended_signed_metadata_key_hmac_key": "0BC294241E485646824F46B63C73B35B253EBCCC9E02D399AB3D4952D851AE53",
- "extended_signed_section_aes_key": "09657E4BE4AC62B36D46391E859A5AF6",
- "extended_unsigned_metadata_key_hmac_key": "3D29660A9D9A5D2BF0B855DA33CF615721607CA31F5B1607F1731EA96E83D2F2",
- "extended_unsigned_section_aes_key": "4E73FE36C45CF21C6FEB1666FDC28C6E",
- "extended_unsigned_section_mic_hmac_key": "54209429DE258F9E994D03C7187D9762AF74979CC46DE103072E82FA9B3B332C",
- "key_seed": "41C78DA0D8AAE1679034B4944C298ADC6325B7C5BC1A9AF773DF7E7C4C3CFCA2",
- "legacy_ldt_key": "C1B879C17D682DF2BCA4850CEB51CAE719B1E07BD944D422567FD2397A6A7C86BAA4EC6834D35152AC0D2F874853C0F4D8D123DC641ED18F90544C53E2ABBAFE",
- "legacy_metadata_iv": "006D7B94FE6591A7136244ED",
- "legacy_metadata_key_hmac_key": "A88682243822A68E163E915B5386AD64316240E326BD4E2C9F5B351BA41F9A18"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1110",
- "expanded_salt": "AF6DA3BA47CD2E5223391E1633B89B36"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "737E561EF9FD566B5A0749682B8BC399",
- "legacy_metadata_key": "AFC14A117DC7AE5CC9B2488CFA79"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1E3E375C3EBEBB136F42022A8AD71794",
- "derived_salt_first_section_no_de": "8E63AE63CCC875001C2CE312232BF45E",
- "derived_salt_first_section_third_de": "6EA660BEC9B9C6174884AD31D43B63CD",
- "section_salt": "59331587281D320892527B581FA2A265"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0D612B77A6F36782108F8A04",
- "extended_signed_metadata_key_hmac_key": "0B43529F258F7AA91EF5BC89012A05D063E94FE3287B73D377B2359EA68B2EE8",
- "extended_signed_section_aes_key": "6CA5F32CBE542C14C788540592C68557",
- "extended_unsigned_metadata_key_hmac_key": "0700E65676BD22A869BF6116BD4501FD4F57A0A537D5EB37D98547E94A619870",
- "extended_unsigned_section_aes_key": "3E01FABF21D73CC48998B795523871FA",
- "extended_unsigned_section_mic_hmac_key": "F88E4502DEC3878ECDCB6D86891B18D15152A497F240AD1BD0E73450FB9BACB6",
- "key_seed": "22EE3AF332DC6E212DE18FEF7F8C955229639DD64B7698C25E5E079D0ED56286",
- "legacy_ldt_key": "2979746D0EEAB56F2BEEB42C1092B3F971A7F4FADF5067A0DAB0EB0D023D4B890A94AD24BECDCE54487A1B64E60EEFA516452627D1A909796E22358F2F96F3AD",
- "legacy_metadata_iv": "82F2D3A2B3D8EF7B7299CF91",
- "legacy_metadata_key_hmac_key": "F6C3B9193E338A3ABAD4FCCA42D9BEFB64170C96F35F906436DCC9C790ECE771"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0134",
- "expanded_salt": "1E6B40B8202BE5BAB4D296FDFD6FEED0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2C2C22B41759B464CF75027D89F54919",
- "legacy_metadata_key": "486ECC6B6BFCF592E8B73BC48E46"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "755C605B0EA5DCC1BB8504D8B5ED148E",
- "derived_salt_first_section_no_de": "D66824F683A0008E571ED3509A2445D0",
- "derived_salt_first_section_third_de": "4E66B158D98A3AA331D7427D1DFC326A",
- "section_salt": "CE8171396252A2DA61FF352C47940C3E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "935046A44B0629E5AD15A58C",
- "extended_signed_metadata_key_hmac_key": "B37BD61002C71A93670DA00F8EE6B963E55DE7082D0A4B2237B97FAC3EBA2146",
- "extended_signed_section_aes_key": "2E368D2456E53E0DBAEB5A5A51DBB499",
- "extended_unsigned_metadata_key_hmac_key": "678D466D7556019C6ECA179BA5E1663E464041706BF27FFB8C513F0D9B2B0D71",
- "extended_unsigned_section_aes_key": "6F98675E15EC262C66D60CF012A14244",
- "extended_unsigned_section_mic_hmac_key": "16CD845AD43570BFC2088719F8407DE313ECCB8C6A43521CA1D0D77E4F3E47AF",
- "key_seed": "EA05B7B69EAEBDB57D8EBFCBD45F066BC806582B7A34413644681EE0338D340F",
- "legacy_ldt_key": "3FAF5123972D23BEDA9D24132438475A55B6D6AD91E6161EF7623BF9EFAEE6537A19EF30EC8B7891FDE4512E8BBDA01F6481C2AD9241A07D8DBBFF1A178E16D1",
- "legacy_metadata_iv": "AB4EA786778BE596FD53213C",
- "legacy_metadata_key_hmac_key": "FB20737CEA49EE9BC2608DDA08A3DE4DA6305A2D854343CC85E07E94CAAA16F3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9D03",
- "expanded_salt": "B4F41DCFF4DDF2BE9A9278008E74A6B7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AA6DD2AF5A51E67C0B82AE0C6A4812B8",
- "legacy_metadata_key": "6A69866FA58FF7808BE23997DCCF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "09651D4A37C51A01821CC09C188BD0D7",
- "derived_salt_first_section_no_de": "8A3F95FD7784D9F97E9AA928D339E32B",
- "derived_salt_first_section_third_de": "D9050EB6DA279561A77DB4329D01BDAA",
- "section_salt": "65557BB060629D4A18DE96BF099692F1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9CF7E6CDF41D4BE8D5EDEED3",
- "extended_signed_metadata_key_hmac_key": "23D7C286C986043BCE6DC6699F947DF9E42982C2ED4DBF724242FE5E8DC6D60E",
- "extended_signed_section_aes_key": "2A0BBD12CEB9FD00CD6FE9083F225A83",
- "extended_unsigned_metadata_key_hmac_key": "352E335A7D97E8E0F57DE7424EAC5895A625C0C4D99BF8112CACBC04538DAA0E",
- "extended_unsigned_section_aes_key": "CAE89E25F0A1C609429F5C33E8E7A51C",
- "extended_unsigned_section_mic_hmac_key": "C9C0A9AC485878DF3CEC8C0305E34C24CE537F7BD503F637C43B77755F162527",
- "key_seed": "81B4B8AAFD2A2DE77E8526A6C79269CF33F68B3AAD1F4CACFDBC6BD519C7684A",
- "legacy_ldt_key": "870840AB2BB1DB877A800DC89F83DD822B90D842F3CA3AAEFBBE31CE80744DDFA22B09779005858A665CE30776E618AD4CF0582087A8FD3953305068BA0D43FB",
- "legacy_metadata_iv": "BD99B161371969859E37C6E3",
- "legacy_metadata_key_hmac_key": "6A8040A8DA13F4207D13B8947FB29D5BAD311DF947628F7EDB1233BD0E83D8D2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2651",
- "expanded_salt": "9D3C8EF7D2AA72303F6934FB542B8A26"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D7971F77E87E4649CD85C364D9524514",
- "legacy_metadata_key": "2B387D9C60A64765F271EFA98CE3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5B321CDEB5A31945C638146CDCD80E58",
- "derived_salt_first_section_no_de": "2BE4FAD9AA07641CED34D760C0DBCBDC",
- "derived_salt_first_section_third_de": "55B47A6A4F2E4D3C3E21175815F7593E",
- "section_salt": "0E92E3F2F0604EA583EA0250B052348F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "41BC67A798CA36044FCBF55A",
- "extended_signed_metadata_key_hmac_key": "4B250471764A21C2ACCFEAF81CECBA769430BAE4B8E6B64CA2ADDB762100D165",
- "extended_signed_section_aes_key": "5646300C4DAFCCFD9B8963E7D7BFD403",
- "extended_unsigned_metadata_key_hmac_key": "61BD0860B3ABE33B173196890ABC1F2975FA4E2D966F5A83F5E2AAA67C55A66C",
- "extended_unsigned_section_aes_key": "59F0FD80CB8D4126B0EF8525CDFEFB0A",
- "extended_unsigned_section_mic_hmac_key": "FE9EFA9D8FDD6A41F0AC14BA799F88A7ABE7FAC95E51E39C9C4131D36727F282",
- "key_seed": "0988C2E2D4040ED8BAE881E84A9FC24808379E7527C0CEEA6245F7E6533B67AA",
- "legacy_ldt_key": "6C0925D8263ECA0382830EBD88DC2EABDE5A0F4E7AAA74BEC447E77A9C9BA8F3702DBECF585ADDE4B7E3ADC7D0EAE4997CE5B506B5AE92378F689BB021E8BB27",
- "legacy_metadata_iv": "BA37217CDF4BB284F7F80EA0",
- "legacy_metadata_key_hmac_key": "14A783BF5EB40C93861A1E81FDF8BE2FE87B3A78300612D583D0CAA0F360DF4E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C591",
- "expanded_salt": "CCC1A930D6B6E5EFF8E489C521736F46"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6EF82E7C3230A1CE9FCC7C87007F66E8",
- "legacy_metadata_key": "7C916871AEDD1CC9FF0CA73AF7C5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2A752EA4A7A283759C15343713C52A7D",
- "derived_salt_first_section_no_de": "1C4C4281963FE3AD76A05C7A4DA525A9",
- "derived_salt_first_section_third_de": "018F0448A3EED3378E20DA67ACB8AD5B",
- "section_salt": "3EFA4092E2D132F0D38EB72031E7C818"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "15E0F377CD2C5D61B4BB9779",
- "extended_signed_metadata_key_hmac_key": "B14F296CDE0B3D5AA8D6AC6842B0A0DF8BB058F21A9765071DD087D1F80E37B2",
- "extended_signed_section_aes_key": "A0D5ED8BC042471BC4BB9F72A66327DA",
- "extended_unsigned_metadata_key_hmac_key": "B42C533564A29B181A71522B1AE08027ED340FF3C5E7846C2F444871494E96C6",
- "extended_unsigned_section_aes_key": "C4535801B6933851830CAA49352515A9",
- "extended_unsigned_section_mic_hmac_key": "4F48053BC7EED0673FE595BE489DE0E4D9717EF2504358519DEF541039BCB36C",
- "key_seed": "0BF901EE1825C0048379E6560B0E6C338FE5B99A67B6563CC409ED5684ED8622",
- "legacy_ldt_key": "1C505C6D567643A781432409C8D54BE6ACB1D0CC47AD4630017B7C66C075F4BA1267E7E4D8513BE34C1DA9FB467BE6B9447F2FCD10F2B3F47E7C1A9B2997BFA9",
- "legacy_metadata_iv": "E2BAFF85C6D54DEA7867F594",
- "legacy_metadata_key_hmac_key": "4CC1D84DDF2AFC21E334A06EA8ED78B661998AEF1740173B647A1AE88F510C70"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "15EC",
- "expanded_salt": "8475CF1FAB7A36235990E496FFE413FC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "154AC950FFBD9D8DED484A90EA5179CD",
- "legacy_metadata_key": "4065130240838BE22278F9FE6296"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4D4202531F340FA1CE79D7ACDAFAFB6D",
- "derived_salt_first_section_no_de": "1CB11281ED9FAF8C36145F0526B98908",
- "derived_salt_first_section_third_de": "FE6CF2C38E12F6D274214CD6DD7071BC",
- "section_salt": "6B2D14DB3A317C202FC7848D14FB17E7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "94D09A7B4F21DD9B05A18A62",
- "extended_signed_metadata_key_hmac_key": "157B1CF1B57A877BDAC579CD302F0D378CFC161FB3CB7E1FCF22902F556A47CC",
- "extended_signed_section_aes_key": "E043EE4427EAD8500BB1FC09616BC664",
- "extended_unsigned_metadata_key_hmac_key": "FAD1D2DA4D51D58067612CF5374BE9CCC249336B8C40AB80E39A61CFCE6AC489",
- "extended_unsigned_section_aes_key": "8B99519AAABB97A6445587107635F80E",
- "extended_unsigned_section_mic_hmac_key": "4DB71D2A54B9FCC8F3E303535E2929D60BDA169799248D027F9F19869BFCEA17",
- "key_seed": "2477D301651241718261B702F3D8DF4A0EEAB12961D42EDBB3463012EB139C7D",
- "legacy_ldt_key": "5625B346561AF81D7267434B72BC07929EF43C035772A5F8CAE8AF948DEDE8FA2FD0F25644F33922FBBBCD3838B31C86E7595A35DA3DE9C25B68A2EB503BC50D",
- "legacy_metadata_iv": "9D51FD529C0DA9D29B87D6F5",
- "legacy_metadata_key_hmac_key": "483BA1112BEF78741A98F530D665A1CCD6710B1118B3DC43C725CFA925779690"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EF20",
- "expanded_salt": "37F328443D2E4C39119F5319CC9BEB59"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2F74B1FF471048C68F72B8412C458C0F",
- "legacy_metadata_key": "46CF5E782B51F66EC3ED5A42EC3F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8283888D1C3DE6DF24599A92DCE2E474",
- "derived_salt_first_section_no_de": "100517FC6AF49B282BACB27D69C2344C",
- "derived_salt_first_section_third_de": "7E0522A9CFFEB54550F84EF1AF97F672",
- "section_salt": "6358F50EA7B169F690EC0BB5C1E20462"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FC14C7EB467300BF0A5A0749",
- "extended_signed_metadata_key_hmac_key": "B7FB1EFFF56CA2475F392A10657AF9F96053356F522858B5F6161D6C4C52A5CA",
- "extended_signed_section_aes_key": "7794472B3BFDEF3DBA5117E37EDFCE54",
- "extended_unsigned_metadata_key_hmac_key": "62D702DB929FA6386D660EC6B3D7299F448C17E45AC90D67F5A7F1BA25378C95",
- "extended_unsigned_section_aes_key": "8D9AE9A3851BC7766B507B9783C565D0",
- "extended_unsigned_section_mic_hmac_key": "370F2DEE4EBCAEC80523511F64CC0FE16AE2947D5F20B08ECEC5E140AE60F75A",
- "key_seed": "0F910848479FF73D34A9F4C95F0ADCD23B3BBEE00357E3F30E327A5FD968AA9D",
- "legacy_ldt_key": "2E962F5DC2B6AAAE28DE686B82864927DC034CFC3321015A4EC015C9DF6126F1849F8D1F501BB398F83FF0F6DD3A958F654C5B6503A450CC89D795DB93D2A77A",
- "legacy_metadata_iv": "A9F7305B4C0FDE7F473E8F6A",
- "legacy_metadata_key_hmac_key": "3B6D9522802669195C14304CA383DE77447B9DB1C3271453EB366D415BB00E30"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9B4C",
- "expanded_salt": "2F7DE58EA832E256CBE1DA5C64461731"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "897A3D146418264063775B634E5917CF",
- "legacy_metadata_key": "E984B5D89BF21BA21EE26D4EF161"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AF3DC4CA74B2104A8B650E1D8FAE89E0",
- "derived_salt_first_section_no_de": "1848ABE388B39C0EB4EE92BE409C78BE",
- "derived_salt_first_section_third_de": "B529033651C88A0066CAAE43E0E39A64",
- "section_salt": "8E331F54E39D5C1764256B77244A609E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4AA2A32AB0A35AF09E02B39F",
- "extended_signed_metadata_key_hmac_key": "14742850249CCCEC897EDFB167B63EFD8BAE5B4C2B7C290FA9F144AFCE09A64E",
- "extended_signed_section_aes_key": "D19B4ED40AA8E5355C9B0961AB594003",
- "extended_unsigned_metadata_key_hmac_key": "FCE66840A461BBB400A35D2D87DAB3845BA799AE13838A821BF753F99760387F",
- "extended_unsigned_section_aes_key": "BDE20AC5AA0823064B1A13AA832D0548",
- "extended_unsigned_section_mic_hmac_key": "0DC3C510BF9713DDDC9E4DD37E37AC5F724A93C77C6DE12DAEAEED7A8D6E7B15",
- "key_seed": "3B353FC74AC94DF0B6BFDAA0CBBB759751D69A1B42EDD42D8FB59BD43E2559F5",
- "legacy_ldt_key": "5C2DD7B2DC55A324C2762B7D41F49C2F7B947F4BC43EF67A21853521F0F03426D1DF886E35A3785CFDB53C3772E03582258016194A3E2DC4BA294F110FD9E70A",
- "legacy_metadata_iv": "DA61FBEF654C2AB5C2B60E5B",
- "legacy_metadata_key_hmac_key": "2425371D1E5226ABCFE4CD4A9908BC303D957EC28127FEC600811A549F21D83D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2B70",
- "expanded_salt": "AC37DB3D52C60ED20CE2215B892C5EC9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "172D7B3AC781D3FDFEDF89F05C4B4B60",
- "legacy_metadata_key": "750547D95E10955EA924486960D9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "281317BCB2F7458313D4302A8478FB64",
- "derived_salt_first_section_no_de": "0151E7C80631EF227637C6B7395930E1",
- "derived_salt_first_section_third_de": "DA91BF1B86CB6C4082337FEAB8FF9DC7",
- "section_salt": "D3D30BBED7F7F187320B2763999F5171"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5662BA66AFE470478762B780",
- "extended_signed_metadata_key_hmac_key": "2E41CE8FBE1C8966A3D23587F41060B947CE0E61D05D893285C0CC3438C78BB0",
- "extended_signed_section_aes_key": "5123CB2F5A9F5044082DBBEC8283232A",
- "extended_unsigned_metadata_key_hmac_key": "2FE3443140D1539CDC072F6BE332AD764A5CE64AF3A6D575C5BB4215DE142FA9",
- "extended_unsigned_section_aes_key": "EAF3FD5505C44659717FE56E74B41435",
- "extended_unsigned_section_mic_hmac_key": "6539EF1EDD967308AA76B15C1E1D758FE89F1540A4368C062CA878E38B3B86FC",
- "key_seed": "3C7B093774B487D199A218A28A093D0B8BD35AB490667352F9EB762EA3A3231C",
- "legacy_ldt_key": "10F67071F4DA2E629464EA4A53B83C651880E046E2411EC25F318ECC1F43E49655723125DE3311144CE900C7FAFF6C5765AB8E6E2D83C77F64B0B59E1CD19417",
- "legacy_metadata_iv": "8EAF97EA6850D6E43C8FA139",
- "legacy_metadata_key_hmac_key": "378E0DE496CBFC6C6B0B94C6DC7DEDB32142EAD27BF42AA18A99EFD8B979DC96"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "935E",
- "expanded_salt": "ABC054BE97F960C12F88FBDBDCF75EE5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "01D31FEFD4B405CB290F192FAFC5C63D",
- "legacy_metadata_key": "63E67ECF4DC302454B41F487DFDA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ED545FDC5B21B51A2B5DF292AEB6C441",
- "derived_salt_first_section_no_de": "39D22FB6A1597FAD019CEF3BBF7A4AB4",
- "derived_salt_first_section_third_de": "C3A6A13123ECB0DD8C3F1DB3D1422469",
- "section_salt": "8A607EBBF1A16C970643FE7E6B13B22F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6426FF8059D9DB1718733B8E",
- "extended_signed_metadata_key_hmac_key": "B3556A2B27D7A316F436823F741605DB0F2E5EA10B192C7D9BBE2DDEC4E9C200",
- "extended_signed_section_aes_key": "736127F5898E5EDD5287502D892A24CE",
- "extended_unsigned_metadata_key_hmac_key": "042A1C35E12B5A297ADAD50E1446D26E3CC30ED1D6031F7E6A09E3E19E5896B9",
- "extended_unsigned_section_aes_key": "54F9EBFA575686D6031EC8A54823DFAE",
- "extended_unsigned_section_mic_hmac_key": "D8445AA74FFD46F2A6D921022ED8573339A0B40DE7378FA53D54709F6E3488B2",
- "key_seed": "532E2E6B9E4B4D2D24C8A3EE65CE92AD31D0CDA6850F896724FD8E52868C5805",
- "legacy_ldt_key": "E6C5F8EC29177E5BAB0051FD75CCAB6275A3EEDD0DBEA4325D17B41502A487EBBF08AC1C748DA03B60B005BFE634E6804C7AF833F2059363A71FC237A9878CC2",
- "legacy_metadata_iv": "8CFE5D29E7D053934EF8FB61",
- "legacy_metadata_key_hmac_key": "1F8B5DAD87B670A15767825E4DA327EA92CA124989D0E01CD440F78C4DB03207"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EF20",
- "expanded_salt": "37F328443D2E4C39119F5319CC9BEB59"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "78D79968D2A420BE77604B819646933F",
- "legacy_metadata_key": "574565CBE6B325B4F0CDD428A002"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C4496F0DDE800A7C229AF086CF1C9B7B",
- "derived_salt_first_section_no_de": "AEC915B87C6C2FC94D11E1F16C6E8154",
- "derived_salt_first_section_third_de": "DC445E87A81BBF657D4E3EC1AF794A0A",
- "section_salt": "3ABC2D36540EDA6ABF0D3EE180B483F7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "061B3778667D792E39E215A9",
- "extended_signed_metadata_key_hmac_key": "A54A745566C0D1265BEFA0203B187B0B3C5777B309D368D9CE7E2C6FA709E156",
- "extended_signed_section_aes_key": "098FDE5BC0600DCA8B3B6CF79393A9EA",
- "extended_unsigned_metadata_key_hmac_key": "1C90476DCF315A6217D24D93F58F1DD952E8293DA4E3DA7591C53CE66A8DC707",
- "extended_unsigned_section_aes_key": "4C07BA57C819CE3EBE628970AD543AA2",
- "extended_unsigned_section_mic_hmac_key": "0225C4CA7160B23382E45AC3114E2585E681EB2EA6E86BBAE15A3580A2EB76BC",
- "key_seed": "CB669F31B633AE46E02C897A52E671CF1CC96C88AAC0960244DEC461180B5EFC",
- "legacy_ldt_key": "5377C6C2ABFF7F806A877FF639EEB4F90CA5C226EDFDB166CCB1445CB4DA6CA2CB47E37C8DAF2194EC3CD2E6B71434D208359FA894F95B9F965649B6D780BCE3",
- "legacy_metadata_iv": "EAE93F5929700F6751770285",
- "legacy_metadata_key_hmac_key": "E5C024F993E7BDE9A4797DBC046E6A635C2291B86C4A256B524CA43C72CEAD98"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6A37",
- "expanded_salt": "9BBD653BED502B1E069E3385D0CC15DB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "78525BFC87D0EA2F743F3C849DB734F9",
- "legacy_metadata_key": "C074D9B3B4931EC98FEA76E5D4B5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A5863543E8304D894CAB8435596FE3AE",
- "derived_salt_first_section_no_de": "B7376C898AE51BDA67CCB73CC7111639",
- "derived_salt_first_section_third_de": "922FCE3CFF31B330A0EB55BE4362ECCB",
- "section_salt": "DDA0D74F2B1E6FCDF6519DC53E8EEFF4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C8B34D248243FF41E519EE57",
- "extended_signed_metadata_key_hmac_key": "93E8D13537C758A6B53D69CA1300E8B0A3AF819E65756292A3BE72D0853DA732",
- "extended_signed_section_aes_key": "393127FE9FCBE228E6D556F8E74B5FF1",
- "extended_unsigned_metadata_key_hmac_key": "B34770D65AD6B948431ED5BC40A4B3E55E44DFBFD95C3264355524A16F27BE68",
- "extended_unsigned_section_aes_key": "3C4270276A3257B27400AF50BE040129",
- "extended_unsigned_section_mic_hmac_key": "8B961CB48F31D7AB9462349AF6DA3341E89BE182996CC008AA1286CC02895B34",
- "key_seed": "DD2FBFBEE9502E40F1831F7470EAEA260C0F221B5B2D3D428E0EB57307C80BBB",
- "legacy_ldt_key": "8DB5C6AC5D124F4DF29E42DC3EC1D63E5D79EE5BECFFDA0320F147FB973DED32B6A22E698606E1078EA432CCD0CFE0D12D59D6733B06CD280AB33EF2D51BA333",
- "legacy_metadata_iv": "63D7696890E91B72C7A3B917",
- "legacy_metadata_key_hmac_key": "4B51CEC112FBA0389DD79D5366DACB42BBA37B647B2DE8603331374EC230A67A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "96A9",
- "expanded_salt": "6EE2532BDA8744913B695CE68735C1A3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C8770AEF3F0ECE7D9071638502CD4863",
- "legacy_metadata_key": "ABACA930C3CEE94CF6B9D70639C5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4B6FCA6BA0F662F29017CA320A24B103",
- "derived_salt_first_section_no_de": "7D0F0AC7A66C153353C512C714FD46D0",
- "derived_salt_first_section_third_de": "537925648D76BCA5CF9E90DE614C1E83",
- "section_salt": "7DCA7B3903351B702F6B6F0458A1C4F0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A05CB4398E07C796578064BE",
- "extended_signed_metadata_key_hmac_key": "EF0D046CF3AF5938CE7395F2976D3416198AE9B180ADC537C4792B865EFCBB7E",
- "extended_signed_section_aes_key": "9AF8B60C24A920D8CDC919A7CFF9D95B",
- "extended_unsigned_metadata_key_hmac_key": "9AF29D367391301DDC4AEC3C48013426058096D43EB337278A193A262F18AD27",
- "extended_unsigned_section_aes_key": "10D7AC31EB9A9855677E1E08FB26275C",
- "extended_unsigned_section_mic_hmac_key": "F9DE8303DB89E899C0198D390C27EACD4D41A987B026CCAC6DC84D23D798BC62",
- "key_seed": "F9190BD06801A68D25F5EDE2400032F6F7F5E07C796658973779C9890B728052",
- "legacy_ldt_key": "026DBB3930E95E718796F36130C1B25BDDED82B6DCA04FE97002151DE6D0630F2D389F0E9E8CBB024E8D40FAAE20F50A3A54F79B28247DFC50CA5BFC02F6B483",
- "legacy_metadata_iv": "63B6A7A8F2C45BC757EC23E4",
- "legacy_metadata_key_hmac_key": "87F64C9966532E551777BF584ED9363451E71B1A3D787549DB4F4F0A90941C08"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3795",
- "expanded_salt": "96C024D341216E32EA2CA8D31044F85C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F33A5ACEA94160C0A9128240091A6FBF",
- "legacy_metadata_key": "7ECE47B93728FEF0FDDA332E4693"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ADC1135C0C5CDD90EDA41D41CFEC9065",
- "derived_salt_first_section_no_de": "D453FB8B6787509240C84270183BE8D4",
- "derived_salt_first_section_third_de": "C7FAA32314D1744BB8745E8B063618BE",
- "section_salt": "343FAC9E2BAB7F468D32BDA1A2686850"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F060FE33A533C208A5E57B1F",
- "extended_signed_metadata_key_hmac_key": "D6E49EB3333593837963C591F0939A49F197768D8EB3A139C03D00AA85563831",
- "extended_signed_section_aes_key": "B755783B0D6FEA1D107FCC7B1B0A20E7",
- "extended_unsigned_metadata_key_hmac_key": "82E69DFD56297EF6537BDB0669E146E2231098B613524A49C2A7DB4025CAE65F",
- "extended_unsigned_section_aes_key": "42E7EA3CDD47DDC1F195FA3C6EBCF296",
- "extended_unsigned_section_mic_hmac_key": "F3CCB25B84AFB112172602D786F780D17EA40AFE84418A157356763F680FDB72",
- "key_seed": "A03BFEF6944031E77C433314F28314579DFFC79F9384F0CD39C30B7137060820",
- "legacy_ldt_key": "37B30AD555AC3D433C21FF4D8B231E536D4EE9BFD57FA16EB786029ECD5DA545C4BCD656C287C23B8D537921F1D39C6CA356934F32DEB7E52A52FED7540F6E04",
- "legacy_metadata_iv": "7A1D7D937F04D04D57F45B39",
- "legacy_metadata_key_hmac_key": "922C812297745E4EF12E6B31D0D37D281B505D795967AD65D70DDB37EA3C3600"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0B35",
- "expanded_salt": "F78375EC6C0E3E8725D3AE09F27E96D7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AAC02B64D52144AD16DFD043E644F9B8",
- "legacy_metadata_key": "7A0CF61C9B43390991D43E1A6592"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "38B18DC689FF620A2124CF2C6FC1E6F4",
- "derived_salt_first_section_no_de": "9A7DD9DB35F82C001E86F9A9FB52C482",
- "derived_salt_first_section_third_de": "E7E1FEBD9022E86E2280D3863640560B",
- "section_salt": "ECB5CAC455931A1C46B44961DC28E86B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "76DFC92EC4C447D159366F36",
- "extended_signed_metadata_key_hmac_key": "776EA3E0E8FD4CE380708E8ACB90896059AEEEEA0B500643511E78FC9D14638D",
- "extended_signed_section_aes_key": "541F85A7D81841F5C7058E3E0A9299E7",
- "extended_unsigned_metadata_key_hmac_key": "943B70B2EE8556BE2E05F5F381A54ACDD30167102C0D19832390C06F228B96D3",
- "extended_unsigned_section_aes_key": "4F8DB6854E9F2645B6B850377087FD97",
- "extended_unsigned_section_mic_hmac_key": "DEBD0F2DD37623D576B4CDAD36C174FC5CECA38F9F00127DCFA32AB1163D66A9",
- "key_seed": "F3F844A3CE88296A506393DDF191941D9E58E1761AB9569F22E5BF4CA24FDE59",
- "legacy_ldt_key": "89DA0D89202E719E8EEA0EA5AA7CBE1E59B099A85D068D5FFCAF2D9F0AFD8ECF369CF9D62D5397953E23C9CEBB45CC3E5502137EC4C5306C5D65E0ADFCFF217C",
- "legacy_metadata_iv": "52299D8E6CDB5878EF26298A",
- "legacy_metadata_key_hmac_key": "3A489532CB4EA558615C82A80357948C658ACF693E25DC96A1AB002E52DB6CED"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "07F2",
- "expanded_salt": "15D8619A3F631DD470FD83379CF0ABD5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "528D14806E4488A92EFE520CF5942DFC",
- "legacy_metadata_key": "CBA081EDE374017ACD5461AC17EE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "07643DA6D27982062DFFCFAE14BD92CE",
- "derived_salt_first_section_no_de": "2833D1B0E9C7C1249AE5FDDD1CBC5CCD",
- "derived_salt_first_section_third_de": "6FA7F66F08727706B1930182119AC4B7",
- "section_salt": "765371FED6347544430F81E0DD978AC9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9371129FF50883F9112CC3A1",
- "extended_signed_metadata_key_hmac_key": "F4D61C984BF4DCF9A45438E1D114A8EFDE34FAFE4290436F72583DED68541128",
- "extended_signed_section_aes_key": "ABB1C6957B82DF14E91B8306F24DAB50",
- "extended_unsigned_metadata_key_hmac_key": "E25353A3DDB52AAE7E83BA0F5B1A98DC4CE8887F2C8214D32E9FE51B9A2C6CD7",
- "extended_unsigned_section_aes_key": "029FD30E5D563C263B74E9B0279A1DD8",
- "extended_unsigned_section_mic_hmac_key": "FA075B03EEBCD0BCB8268D135E9F827A7370209ADFD4121535CF468BDAF4BD0C",
- "key_seed": "A34F89765D0BF969A53073BB9DAAC45B9ACF359F7A8D29519DECC49A05623EC1",
- "legacy_ldt_key": "2E48C68622C9E0EEC5CB62C2B6A4C62B396E5C4ABEFBB43B5FD5817BF8794AF6331AD0CA37DEC5C85DB34E9E61AFD43041F2695B6ED5FB373F7697B9A07C688C",
- "legacy_metadata_iv": "7D4A11490305059E2A7F6996",
- "legacy_metadata_key_hmac_key": "5561E34EE83EC17365A35D705EAC2B3977AB8CB889E4DB9EF4C17AE4315CDAE6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "866B",
- "expanded_salt": "71A6FC0652B9016773EE2A54C571B005"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D11351A2448BF99F0EEF0D1B19670859",
- "legacy_metadata_key": "6CF6CA537DE7973AB96C7F453526"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B94C9F66EC208CE8A2F1E06F1C6156F0",
- "derived_salt_first_section_no_de": "A059981A9BFF58728FB1122A2AECD79D",
- "derived_salt_first_section_third_de": "436B7729210C644024B8BD526D234C5E",
- "section_salt": "01161E7E98D9BEFE3D7FF8C17B6304EE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9F6E38F7611E032D6EE89B7D",
- "extended_signed_metadata_key_hmac_key": "72BF29B77466E80453F22E0BFD889CACE92C5C8D67587F75A865AA3C371781B2",
- "extended_signed_section_aes_key": "4E476ED870C9FE0620EC7393119420C7",
- "extended_unsigned_metadata_key_hmac_key": "EF081ECB45B11770770D66B1008A9FFA1BB0FADC9B7BD70DC1C908EE8D89CA6A",
- "extended_unsigned_section_aes_key": "0ED864B856FB0C30DD53833BEB2F9F45",
- "extended_unsigned_section_mic_hmac_key": "4D4AA36BA29F85A4ABC094E4489D428EED6E879173B51E7252A114198B9D28DF",
- "key_seed": "1A46A386EFDCADEA5D70A0946259D80FEF8CE9F70815191CA8AEE8678EC72A75",
- "legacy_ldt_key": "145A773D82FE9ADDBC81015817DE954F9392D3E2FCC158B0E8D6369A00510CEA84FB59F1B6AC3863446E402ECFE3EAE9C1D13281C42130647931F83EB3C8D652",
- "legacy_metadata_iv": "B371E5F95355BDF5399907FA",
- "legacy_metadata_key_hmac_key": "C3BD8AAB736D17179DE7DBE1F8AE879935C6BFA4A243C39BF5B9BF4006609695"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "22A5",
- "expanded_salt": "E22A2887E37A5B91C9AF08737CF3FC56"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "81F82EA3A1DA16BD81C50B399E60FD02",
- "legacy_metadata_key": "82808459524204B3E8256DF80AF0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B40C1D960E889A4275BA8EB7C8015B4A",
- "derived_salt_first_section_no_de": "0ADCFD5486FFA720CDDAF0659205D42F",
- "derived_salt_first_section_third_de": "0C15A6EACFDEE6FCE7BD7B3EEE098C5F",
- "section_salt": "21ACC4BFA89E3DC74EFE22FC4E9D19B4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "03AC60E422DC7BFD42336D5B",
- "extended_signed_metadata_key_hmac_key": "63D490322F04C29F02B3394F856B9D26C22247CE575FB2312C0C310F09C0AD0F",
- "extended_signed_section_aes_key": "82573269B8B83FE0F2B6DA5380182EB2",
- "extended_unsigned_metadata_key_hmac_key": "4A4DF93C7122D582154D6549C51BA163EC7AC4154363A331B2E5C505C71A95C4",
- "extended_unsigned_section_aes_key": "9CF010F01ED9F0A1F4F10934D7792695",
- "extended_unsigned_section_mic_hmac_key": "CA63015BB565597BEC6B842502378E713AF6CA4B4807BACFF571301205499B38",
- "key_seed": "7AACBFE80A0A565FB70C90E73A947144F9CEC0849DFC32E16FD1198CF78AC5CA",
- "legacy_ldt_key": "11742ABD586DE8C34050F88F7322655FF6DF987A4BB8CDD90E70BD2B0482F30A46691DDD65F6D4B0BA6B9D2B695E78D133D1E6449A31E713BE54F7F4D492D87F",
- "legacy_metadata_iv": "076162B5920A345B06EE52E5",
- "legacy_metadata_key_hmac_key": "D0E86F31FC837C5E397AC084019926023B4197638A021B2BF5CD587E956BF190"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6876",
- "expanded_salt": "068D6E894FC81374795202223E07A352"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B1A3C411A3CA9848C0CE2D88F7AB9453",
- "legacy_metadata_key": "7ED788E5E8308626A9FBD3348E95"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1377B5337F8A3A71266381744F2AFA26",
- "derived_salt_first_section_no_de": "A0CB4DD1CC2208981B91BA645CC766FD",
- "derived_salt_first_section_third_de": "CB3BE17A9D987793766157543315AFA7",
- "section_salt": "DDD18F96BE304921E056E2D89E038286"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "51B49F6818EF0722C7E432BC",
- "extended_signed_metadata_key_hmac_key": "208F6CC8E44BF3A084476411C1803D474B9BF2BEF1BDB8B1A4330E9C944DBC07",
- "extended_signed_section_aes_key": "EC59832A60A75EA826B9F73EFDFA365D",
- "extended_unsigned_metadata_key_hmac_key": "4464DCA692EF781BB8A0821E1297D859889AE7DE2BD7E91513B3AE4B0AA8FBC8",
- "extended_unsigned_section_aes_key": "B290D70D20A93424B04AF1FE5254EE24",
- "extended_unsigned_section_mic_hmac_key": "8C03E77A4B204CE575238BD192BA13983D685A7F1469A6065AC8579F96184554",
- "key_seed": "C6F30BE03B33EC1E887458C5880BF76EDD8CFE03BB5F7B76BECED96937AE6D5E",
- "legacy_ldt_key": "9BAAB9A79BAE3A25D3BC0790FF98D8E24DBB61F69C1896596DE004A316DC87CCA675A62DDE53302B94FC2CB1852E2892BC70ABC9D6D05FCFC292D6AA9FF114DE",
- "legacy_metadata_iv": "9A9DEEB38A391CD55BEA061B",
- "legacy_metadata_key_hmac_key": "C2521D10CFAB3D32A6539A0661640126FB040159DA9FD6502C93BEE6E13E5A17"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7D42",
- "expanded_salt": "72BDD217D6AE1A00048A9651B4F2C761"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "849EFB59EB5D50303C9B510CDF813020",
- "legacy_metadata_key": "6AF883C60BE218FF2AB9EA856D03"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B25E1007AD40A687A2B585F7791D729D",
- "derived_salt_first_section_no_de": "E7C57D2BF152CE2B0629BCE43CA6BD47",
- "derived_salt_first_section_third_de": "753B8BC6F5FCC196862FC095A4343F5E",
- "section_salt": "878E1D03CABBD3F5C2BAB79481E84B2D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7B79093CE23506A6FFF3D6D1",
- "extended_signed_metadata_key_hmac_key": "30E94E3D7CEB13B362767344B3C67A4770D28D03E04F9F8152664FC4ADAA6A42",
- "extended_signed_section_aes_key": "BFDDEC3238E7596DF260A60FF139A563",
- "extended_unsigned_metadata_key_hmac_key": "EC90692BB8A202A5C1D92B2075F99F8C1BC4B37EC0F9421FC7AF8B7AC11FAF2C",
- "extended_unsigned_section_aes_key": "6C62E4AFDF213AA1ADDF6F8E3CB72768",
- "extended_unsigned_section_mic_hmac_key": "E2DE8A82E30250E08F6A000C70EA861A1E407917D6A3F72A4B39B5B93EBFB98C",
- "key_seed": "7D12FD9140D1D3FC036B392EA4D72BF220E84C46ABD940C2B151821BFAA9B596",
- "legacy_ldt_key": "5FF52C3EF73271A3348EB616D2A92735B611F1DDAE56DB0C55D3F3B7341AD4CD4729267490FBA82C4E552CEAA1ED0D5ED9BF3308F7F7C1E739B6B8C259818B29",
- "legacy_metadata_iv": "3606973A692F7FAB1B6BBF5C",
- "legacy_metadata_key_hmac_key": "5332F1CA5176290F8FF4198A889439302E3E2B140F0B125FF553E92AD62C8E2C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "160F",
- "expanded_salt": "285D26DD57A478A9CDEFDDEC7C74C938"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BEF7FF899EBDD25D6255C33BC5E41036",
- "legacy_metadata_key": "C3D63E528E7D5C6B57040B05F77E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FD6479B06B806A6C58FD8FDCC4C0CD9B",
- "derived_salt_first_section_no_de": "C6377F4E654A02623ECEB83C0ECC01F7",
- "derived_salt_first_section_third_de": "1C2323EB37858D722F600D4C4B192DAE",
- "section_salt": "4C9DB8236D7445F6D86777E8CFF77641"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B1576194B74B3CB35981A2E8",
- "extended_signed_metadata_key_hmac_key": "A28114B82B5644E7518ED8F5FD56F1D47B7780DC954BCE9FF5E1C76BDF7997AC",
- "extended_signed_section_aes_key": "62F690C369186793B12CAF3A3DDC1112",
- "extended_unsigned_metadata_key_hmac_key": "7C02DE71AECB21D6E89E64413FBAB871D09B55F3DBD3238876D6C383BE900D37",
- "extended_unsigned_section_aes_key": "59EDB24260BCBC31F51E79624174A800",
- "extended_unsigned_section_mic_hmac_key": "A002CEFDE29D2DC246EDF65F650F858642BBB9C6FDB83835D0A6F21A2BEF26FA",
- "key_seed": "4F7695565313432171BBEE1410B97B3062DB8AD66DA82A4DDDF215C696656503",
- "legacy_ldt_key": "70025CC00949846A9ADB0DE9FAC8E114C086FDA5EA9C7FFA72120837AA23C7302D592F62CD4088BCCC1DC522DA18B5FB6B58C4905A086DEABC5FAD379EB77096",
- "legacy_metadata_iv": "D6EBF7774B3CE6AAAC4AF46B",
- "legacy_metadata_key_hmac_key": "F8A817B2E12F8F91BC309763DACAD8A8D9C74B675CF9D00065138A6B2D9E098B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FE40",
- "expanded_salt": "578DFCED9D12531D4F5AF52B56B63FE9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2A316073909F7409D91AB183052319FE",
- "legacy_metadata_key": "82734B22BF21F39E92446020BE51"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1B2F0E9C4698297CE043439E67BD26B0",
- "derived_salt_first_section_no_de": "AF3228368237B0A31A13D9B88C0B844D",
- "derived_salt_first_section_third_de": "32ADCF878B92A805378A4A96EE892EB0",
- "section_salt": "112EF94CD3BA47AFB7DC3C09FF444C61"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B2FB3128302DAA266F44668C",
- "extended_signed_metadata_key_hmac_key": "712A67545D1BC81D22A2F3F1C83FF8934BFA51B241256CE7815C7F24014B0BE3",
- "extended_signed_section_aes_key": "59F0BF05A6FC0E4EA1109DF44597F0B1",
- "extended_unsigned_metadata_key_hmac_key": "177F36315F96AFC58905C5D37BACBD6A6BBBD21CE081F59F4EFB833BBC4B36E4",
- "extended_unsigned_section_aes_key": "201149B863E53DE9B08B770E5F4E34A1",
- "extended_unsigned_section_mic_hmac_key": "D60913B47F4138947FA13ADB68AF388FA42C490DA514C85DA1B75A101BC86A36",
- "key_seed": "CE65023C758E3FBA37229218172073A2C7B6BA5BE1987198176B891D411CA057",
- "legacy_ldt_key": "C9EC57D32BA7A744F6B52BB91C7FDF653A17873C0B32570223E54C48AF2AD873CB4AD06BF8FB5ADA641041A0F3E31669408A97AB147597812572D0F91FACC43D",
- "legacy_metadata_iv": "46F79AD8016D65E57A7EABB9",
- "legacy_metadata_key_hmac_key": "5588C19BACE29708BB9D720C430E48C85C7B0A4BCC5401D4E1D2F831D49DC7B7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EA2B",
- "expanded_salt": "F950F15995EDD6415FEA1743F916ED58"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9D3105953FFDA8F5F303D644E1295F93",
- "legacy_metadata_key": "F79351BE889FFA8EE577F1352222"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6661DA367A029845566D992D9DDDAA6C",
- "derived_salt_first_section_no_de": "2919677832188FCC5D4EA61D0C4A50F1",
- "derived_salt_first_section_third_de": "918645CC407CEC6A66847207BC4C278D",
- "section_salt": "9C18EF734A2F61A8627BE05D7C09C108"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1D8E95E679F1BEBC4D5C405B",
- "extended_signed_metadata_key_hmac_key": "EFC46E4F4379E7DE96AA20DF6D526349AB2D6B6BAF43CAE1D79C0562A7A60DE1",
- "extended_signed_section_aes_key": "B1C6A653BAD67585D509D3E042E59CC5",
- "extended_unsigned_metadata_key_hmac_key": "8F2BDB8099C52F8A911487E8A5C0999077EC3AF65BE8249B191E8AD1D31B90BE",
- "extended_unsigned_section_aes_key": "5D70BA2E93AA287BB949EC003B164304",
- "extended_unsigned_section_mic_hmac_key": "C220E64872C82544670FA8EB3A50A965C636B9B9D99AE38EACF3ABF458A9B8DC",
- "key_seed": "9FD96B5A658F7A3B1566F97CAB69457977B9AF48594AD8D419B90F5E45A7FD5B",
- "legacy_ldt_key": "A2EC582505AFE727D3F215E1319194941AF0EA65CAC216CF8D2C9582D37D24675F35BA4107EE844815506CCDAA7A462F758E13576EC12B2C7A8A51A030FECA77",
- "legacy_metadata_iv": "659C900D8B9B41E4855BD099",
- "legacy_metadata_key_hmac_key": "38FA6E37C86882812E1BB520544F47F8F2BF7F8837C74D6E3887C225E6EDBA45"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D88F",
- "expanded_salt": "BB8B685A3235D35C7405D25CBAF8DD2A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7EDAC45913D14D09DADAF453DF990424",
- "legacy_metadata_key": "97828A835E2C7D0EC2E6D48C38B0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "949E1CABA0CF597C1708299F8E2E2BA4",
- "derived_salt_first_section_no_de": "AF351A25B8520058362BE77C29212040",
- "derived_salt_first_section_third_de": "A4F41BBD89C7A60D2E598D57948AC998",
- "section_salt": "CE330DE846253B7E53BF23B162A1C1E8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CE38F9EB45E2E97CAA2B5226",
- "extended_signed_metadata_key_hmac_key": "1592F17BD6546BA22F216BD1A8799ED0ACE7716A1E7F6B6BFA18F2353D03CBC4",
- "extended_signed_section_aes_key": "A71D3C6DB0DE128AB218A1FB2551D6F4",
- "extended_unsigned_metadata_key_hmac_key": "D775227A5E53519FFDA0205EE43ABD9745250DDDC4738706FE1F495E100BCEC0",
- "extended_unsigned_section_aes_key": "A3B793ACB3DD5E993B3BE953389D780D",
- "extended_unsigned_section_mic_hmac_key": "4A364294875FE81BC83DC4F4F6C4B1BCFD68BAB1676A19FCC319238728DA5AF7",
- "key_seed": "405415C141B868E51C66CB09A0F4B1020207A588B95D29E483FE9D53B97C2974",
- "legacy_ldt_key": "684E93232DA0D6361197DC2A78A2650640B1978FC3187C8E712607115650FA91BDF52BB6E640D68375E609F7820B6724587D725A9239956571E99E3737AC3F3D",
- "legacy_metadata_iv": "6EC85F2C80B3B497CEDFA4C7",
- "legacy_metadata_key_hmac_key": "6BD848FE4A0D0D2B898BA7020C56B41F47F143521C67740D5471D5C15AA17B66"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "48AF",
- "expanded_salt": "924BD0810E4909A6C513987E0031E0C1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0A14AE936BC91F353C4DA11264F84739",
- "legacy_metadata_key": "25BB9CF650690681DD2E3DDDEAAD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7FD3382C9479FE968DC38518CFA98C44",
- "derived_salt_first_section_no_de": "D8E32DDBDDD2CDFFB602354CB43E82C0",
- "derived_salt_first_section_third_de": "DDF260DA984A50E4BD0DEC95B426911A",
- "section_salt": "D9DE4B98C186A6CFABEDD7F5A26E2FD1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A332507710914ED1B1A76399",
- "extended_signed_metadata_key_hmac_key": "C2CCE9D3F6080F3E0D2F9AE53090FF7580FAE62901F8216F25503581637492EF",
- "extended_signed_section_aes_key": "E9373806845086FE060F4AEC2C9C9B68",
- "extended_unsigned_metadata_key_hmac_key": "0918E2E111ED4D2456A0A6704A17C16D7EFA1E8010A32FC55B57465EDCDEE410",
- "extended_unsigned_section_aes_key": "CBF9A999652BBBE17E048DDD7BA4E38A",
- "extended_unsigned_section_mic_hmac_key": "E69BF93537D3EBAC20229F5AF8A6BEF74172A139E826DFB812F419BFCABA3E8B",
- "key_seed": "DE2BBE7C1992B841307CF175421B3A5B8FEC3D5164F63A90C7F754E9BDA1202B",
- "legacy_ldt_key": "A6C08E0A605AE9913A7BFE6665B884008AA8C88FF9D0BB085EF8124B9388F81509569169C317CAF424E739AC11EFC03EE1AF260401DC9AF9F11ED83FF5273D9E",
- "legacy_metadata_iv": "A4C9E45E45E0B47D0E018320",
- "legacy_metadata_key_hmac_key": "F449DF831D98FE4A95A64A2ED99075B51532A935C21FFB1FCD16235FC2D6F0D7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "09E9",
- "expanded_salt": "87A9677DBEFD81E7AF5061BAF91A335E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7649644FAE22E0A4ECC008326F6DE66F",
- "legacy_metadata_key": "794DED4B536B80411795C4140ADA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DF401A106844F6DB1AE194256C50A101",
- "derived_salt_first_section_no_de": "EF62854E639C92877B5B36D30831BCBA",
- "derived_salt_first_section_third_de": "0C91F59C035B1C0FD9E3DD1BEA67A032",
- "section_salt": "42E064180B28DC63DECA8234C20BC567"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D42D99480C4455411F268498",
- "extended_signed_metadata_key_hmac_key": "D52E226EC2AC9B0A79E14BE502D3A2B242B3F9565DA976A99D5074515018449D",
- "extended_signed_section_aes_key": "CA89F2DD1F3C9D7AE296005380095846",
- "extended_unsigned_metadata_key_hmac_key": "2DF0EE4C4EF323985AE398AA1D525CA78DA56E8BEDBF542C9D22A37D2A771625",
- "extended_unsigned_section_aes_key": "0F7E1983EEF255CCBA502BA982F24A40",
- "extended_unsigned_section_mic_hmac_key": "CB199462BC48CCD8A804F1B151D3F5A65FF0A80868F27CAFAEB0D577AC1324C7",
- "key_seed": "1D718204A409706D21A032EFD4A058B3A527071BC4B99AE35BD6A90630FC5629",
- "legacy_ldt_key": "B6805C7F4C746BC2322F2F79C85829DE55D01B5E96BE1C942CD21635FB0D03516C9E5CEF55C24D55554450575AFE684EAD2D006EAFF08148D03BFDF7DF9F5EE6",
- "legacy_metadata_iv": "ADDE4B34F3C0FB2F4543ACCC",
- "legacy_metadata_key_hmac_key": "DACB8EF9C7DD841D18D71D32FD3D9CF3C549C557066F3C7E3679E7EFF108EC3B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5534",
- "expanded_salt": "1EF5773EFF202B832C60135A3A085D75"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E158F41A3F8A4F16D7A0C2D066BAD360",
- "legacy_metadata_key": "CF2E371159AF2BDEB8E5E05B0524"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "453EA1D2D99EF8EBC1A23E4A47B6B972",
- "derived_salt_first_section_no_de": "077D0BF1B45A6C45897C147BD4626EDF",
- "derived_salt_first_section_third_de": "F19711E783C81A701899BD4FA94C7C07",
- "section_salt": "71DE8322D2E857145A22EFBC6CDD3E70"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "947161E3B93C7629B3F0A065",
- "extended_signed_metadata_key_hmac_key": "A8BD7887A055BBB8F083D9DF0FC134F0DDC2C6DA37C414C584C1CE2C18F00398",
- "extended_signed_section_aes_key": "5E494E10DC5D6299F8F6EC005A5F6068",
- "extended_unsigned_metadata_key_hmac_key": "FB7339ED49DF4CBC7EF51F4155FBD55FC03FA397C1FE696003E2ED611798C0B1",
- "extended_unsigned_section_aes_key": "4C20B5EB629D1629F57DED24DBCB0F96",
- "extended_unsigned_section_mic_hmac_key": "21C537A540606C1DB4D898898F7DF1A7C9B8EFC6DDB5D6C36BE292C58CD2A2B7",
- "key_seed": "E61F5AC23F09441653BCA9CED9CCA68E68DCD246E9C4984F57A6D30256E5C1BF",
- "legacy_ldt_key": "ACB3229F8AE99E05F4AD89F5803157BFBB4B6841EC70003A5D4EEB337B4DC145BFA8065AF7F8708A4D6976B2E63681F09396EC165FEB654BDA6906C9E7BE181C",
- "legacy_metadata_iv": "35F3BF9AE59FB1DBA1C9180E",
- "legacy_metadata_key_hmac_key": "90199C1CCB4A604DC011BACE7A7C40A75E5903EEFB032E43F94D806C67A9E0E9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F42D",
- "expanded_salt": "AFC7F653AF58CF6D9C9B11A28518F3A8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1FB9E93E25F9191D32C091D1BB812C68",
- "legacy_metadata_key": "E6C0918E6A11224C93A5C3A037B8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D9D6E7238E4B3DFF626AF8A62BD7AE3E",
- "derived_salt_first_section_no_de": "B78308923D1724B6A1A41EC53D27A206",
- "derived_salt_first_section_third_de": "B6598C94813993F0CAA05E9A76CE3E84",
- "section_salt": "272B8E874ED892B7A7742C1136B8E276"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "02B23F4335BA3ECA74F0117F",
- "extended_signed_metadata_key_hmac_key": "25DBB2B858547D2E977AB14ECA1ACA6E24638AA6C6BE3034E47F7405513A44FA",
- "extended_signed_section_aes_key": "5162F2EDB7ACFC8F2F1D2D73312D6C6B",
- "extended_unsigned_metadata_key_hmac_key": "9BF173DF9C5C495DFCFEE402FF6F619947BE4FAAC4A4DABF894A144B08A00B9C",
- "extended_unsigned_section_aes_key": "AB4DE43A984B58CDAE2BA02832CD7F1F",
- "extended_unsigned_section_mic_hmac_key": "6A4044A078898A66D029648D2B7AE54762B5768FAAE733D0B65C793F31BC06F1",
- "key_seed": "703A3BC092F71AC671A7B08ED0E388A3ED482150FAFC98D4D19F62BC60CF18C7",
- "legacy_ldt_key": "7CE99E5954697C1A3DD7AB2AB11FB93A58F610003264F759DE87F5904D829C15C95327F2F77757B49357AA37972FDA912023C722875763494150FCC89808409B",
- "legacy_metadata_iv": "ED959ABE67742E3E29158FC6",
- "legacy_metadata_key_hmac_key": "5A96DD5597E38DDA6AA8342F68092C61C6FB23A7BE05528D4B429A3525786F30"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "70F0",
- "expanded_salt": "96F43C5F224CC69CFF36DCA80287394F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6CA2004571B5E031D08A375E06DE7806",
- "legacy_metadata_key": "4B2AD1BCC9AA9C8654D249D71168"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F7450A100F8DFB06066040DEE015464A",
- "derived_salt_first_section_no_de": "D580A85646B2B04B6E820C702CBE1C75",
- "derived_salt_first_section_third_de": "F75E015499A0FDF34BAAAD9A2B5C4CFC",
- "section_salt": "54378A6B61E58BD20B3C1DB752DB7CF6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "586320F1C0EE2C803D0772EE",
- "extended_signed_metadata_key_hmac_key": "54AA4882B39D2E52A9B8223B0710E9C899AEF62216C12459B570403E3E6AE558",
- "extended_signed_section_aes_key": "7DD60729D18054A00CAF686B5266F6CD",
- "extended_unsigned_metadata_key_hmac_key": "0B955F6CE22FE32CCAE3D4BD191C8BBD1F2E21A5BA5BBFB255B258FA4F32C758",
- "extended_unsigned_section_aes_key": "3AC3D7A4F3048BB30132EF1BC0998C78",
- "extended_unsigned_section_mic_hmac_key": "1D21FA34FCC46CF0F55963D89B797AA99F512D47820FBF87443D09F548B58457",
- "key_seed": "FCCE70EA8CE6CBEC288A0E6E2A87CFC38BC23310107E2DE90ECB2228682D1E56",
- "legacy_ldt_key": "B66E6B8D48A3627A981FB9B2BF6EEF277A24272861D313AF2646184E1A86550C38204DA74B7A7C51ABBBE222E3AA7675BD194B0238236155F469BAA634CCD3CA",
- "legacy_metadata_iv": "E8A6AA405D50CDF49D1D8D6F",
- "legacy_metadata_key_hmac_key": "091A7F4538BF1CF5FA2FF07801CD43CE4C807E86F8FB4541FEAF55181A374391"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AB40",
- "expanded_salt": "B626F510B64ED11EC412DBD7518BD570"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E8D5988B1A99DA2B626E0397038B08C1",
- "legacy_metadata_key": "6DEECB9B9E15D8BD1FEF05802E2F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8546C5BE3F66E5C4F8B1BE458578740F",
- "derived_salt_first_section_no_de": "F068CFBEB232A1519ADC7743E050E012",
- "derived_salt_first_section_third_de": "314AD340BD13C59DFA983C41A0D14682",
- "section_salt": "0BFFCF7405889C9CF0DBCA291C09FB72"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CD0374F971238E36B30533FD",
- "extended_signed_metadata_key_hmac_key": "F264EE11748AF1C0C436B8BC2F62E9F0DCD938EB75F58FBFB1727CAD07C8F812",
- "extended_signed_section_aes_key": "5625C696F522EFA8B417CCD18D008468",
- "extended_unsigned_metadata_key_hmac_key": "A23CDFA13FD82E0220280DC4D6BE4B42893AE01BBE4CF642992393694B8427CD",
- "extended_unsigned_section_aes_key": "ADDA6AE974452F0A5CD4CA2D922CA126",
- "extended_unsigned_section_mic_hmac_key": "70A8E09D220081411DFCFE32854F58D1F4B947AD55901E5655644104CB806E9A",
- "key_seed": "EF9566E58D49AD900F2D1A4DB94B97E319BE199B0E25274208246D0D5781095A",
- "legacy_ldt_key": "B3FBEC993D03158BE94DA8F43EF0DEF08DA9BAF0811FE971BE24E44ED09A21AA664FA615C8B6A0066C4F6D47AA119A70F0715AB85A9FD910222B5FA05A416EA1",
- "legacy_metadata_iv": "64EEA39A76D22ECB15A55C22",
- "legacy_metadata_key_hmac_key": "35D32A9A64AFBEEFA16C6B4AC5140F443758A9E659785860DCF7D099DAA04E5F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7C64",
- "expanded_salt": "EF003ABC1D94C04B21815C01B28B5912"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "74882893DC0CC9ECE5D7D34814A6BCD4",
- "legacy_metadata_key": "85E611B31685CBD30534F7CAD65A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "27B9A042B0B3C17DC470C01A44526984",
- "derived_salt_first_section_no_de": "D3116A339F35B6F6294C2F60ACAE497F",
- "derived_salt_first_section_third_de": "F8FCB97CE9885730E02FFD0656DD564F",
- "section_salt": "02172E2BCDC7E67360F9F01E60CA0AC4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "85BFF818A706C25174BB62DD",
- "extended_signed_metadata_key_hmac_key": "C6707B0A7D1827ED41A79192B687268B270A42C3F163E93E6CE3646A0DE95F50",
- "extended_signed_section_aes_key": "6B9078BC2B55847DDBE62689171AC1FD",
- "extended_unsigned_metadata_key_hmac_key": "6F5933652E2AFED712B891F28F06B99CC91C6E812BC12FB04033C1929E4C0B5E",
- "extended_unsigned_section_aes_key": "868628D3EA9B7242158815A972295BFF",
- "extended_unsigned_section_mic_hmac_key": "43F10F784BB5017A656A135BF598F696D984AD7D0A2DFAFA1905F9449E222B11",
- "key_seed": "72477EC09B97F46905B196CCB57D81423610B5F8D836F8D68205B107FB54BC45",
- "legacy_ldt_key": "A28E7546556559C2C7C89F21ECDB07E76D06D073077D30DD55DA9A82EDFA1F1F6ECD5AEFE6A9746D774DA78AC1BBB9F086967CFFB8E32F5765C4DF1DC34C2968",
- "legacy_metadata_iv": "F41E7CAADD9C9660BCC22E7B",
- "legacy_metadata_key_hmac_key": "8079D91C2DAC3B0C3F10D415E1A587A79DFDB03CC18D7A24A4279204D14A14C1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EA54",
- "expanded_salt": "83E789B6C87157FF24490F6D8E96EC99"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7BF149520F3E94E3389FF15A289CB2A1",
- "legacy_metadata_key": "B3896ACB4168B9C9CC544A80E7AC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0D71F750A4C25D7B026ED889B6148861",
- "derived_salt_first_section_no_de": "4832E82D615ACADEF547A532BE31D291",
- "derived_salt_first_section_third_de": "CFF9CC5FAA8BF1AFCDC6343C55934B8E",
- "section_salt": "C17E0E9E72B9907D3D73D392336A8599"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "48B59BD34B3EAFE3F1D63332",
- "extended_signed_metadata_key_hmac_key": "B340F4606C549BD5361A9CE3E60C5D8BCFA9D4894C5E45BE1E855ABF20A59058",
- "extended_signed_section_aes_key": "70DBA61222CBA170CA57F475446A2ABD",
- "extended_unsigned_metadata_key_hmac_key": "A67BC0469528AA3806764183E66121A1373B35E769339F6A8FDAEEC125A9BB54",
- "extended_unsigned_section_aes_key": "B73C372D5CFBCF6B606ADF4A9A8C9090",
- "extended_unsigned_section_mic_hmac_key": "5EADC674F12C1C39159D3C8B85EF6296092F7C0061A6296873F0E2485B4D9FAF",
- "key_seed": "A80563D9478630123BC23D01E6778303174B32C739DDA1456ED9A824A1F81AF3",
- "legacy_ldt_key": "5D03185A90789D70DAD2B9A7F3AFAC08B1BBC9D9840A1A092531068B26F2E0CD2DEE08C73BC8914433671DCB8182E4FADD1E5E70A06935B6D71D97C7D52206BC",
- "legacy_metadata_iv": "23E683525424BDF07CDB649E",
- "legacy_metadata_key_hmac_key": "D279AD9FB22E565EDB7D888B6EE2B63CEC8C4CC18950A7DD5D41020B80B73887"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F284",
- "expanded_salt": "8F611FD1C5A50E987F7839ECFEF4EE7C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BCACE7EF2979FCD86A2EEC46113E3E9C",
- "legacy_metadata_key": "B3B543901A2DC10A20F3766E3584"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D7374F2E151CD7CD3ACA523959B4CE7B",
- "derived_salt_first_section_no_de": "F8205CD935CF530339D84199B58A4C90",
- "derived_salt_first_section_third_de": "77B1DEB88C33F6289F354FCC1309A581",
- "section_salt": "9DB2C9B1C4D7DCA41672A7967AED8BC8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1EE1F990D8E01886C5652F68",
- "extended_signed_metadata_key_hmac_key": "28508B4EB8015B120F57F8E031EB2089E3E7DADD5FF127B987CC3D6CC5A75FE6",
- "extended_signed_section_aes_key": "7A18C94A965A364F2528DEE97F856143",
- "extended_unsigned_metadata_key_hmac_key": "EFAED6E802F8ABA01CA55CB7F4D5CC5480DA37EE3A3EB3E31773D73C36DFB8CE",
- "extended_unsigned_section_aes_key": "E679A5D1382D6BDA1FBE6E5CC1B43BA7",
- "extended_unsigned_section_mic_hmac_key": "373898D76C3D180EB9729BF07AF5A9F035F1750FF8D3890B6105E5115461849E",
- "key_seed": "6132BB39835D3AF44F587FD1A2A08EF296BFA81455DA7E153236B69A3CFF5F22",
- "legacy_ldt_key": "5503F913CB2CFE7CE0FFF9156AE7789CBE01FECA46B2D49398FE307244BCF46A1432E6493293A3BB447C620DBF7C5DF7BC1B521C591DF63DD928CBC62FCF73E0",
- "legacy_metadata_iv": "10795AEA4E05CBF898FA0E6D",
- "legacy_metadata_key_hmac_key": "FD4480BA0D7FCA6110772F43CF50E78FB75E85455A7DD6D7AA42AA3FB60DE31C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "91A8",
- "expanded_salt": "0893BA817FB539CD33E86A2381E8B605"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EF65FA147E5FC50B3E606C246B1EA794",
- "legacy_metadata_key": "666156DBB4A799FD7A92B71FAA12"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3772B9AAFECAA3A8254CB51C419C6EB9",
- "derived_salt_first_section_no_de": "BB93CD6A78A8B867E47115DB23072ED6",
- "derived_salt_first_section_third_de": "5DABC4515548929CD7950E6F60145047",
- "section_salt": "8C74C1F3DD88FE263AF5A09367F04D7D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E80DDBCA3C0F0E7849ECFD52",
- "extended_signed_metadata_key_hmac_key": "C9298284BCD8FC06A2E22AB048E4A41AE747E26CB67E4D81DC010BC9FFE0B729",
- "extended_signed_section_aes_key": "AD701D4312C3E2979CCA6E4F6C23F70C",
- "extended_unsigned_metadata_key_hmac_key": "E8CA411C9824BCE3753224866EAA2BF2DC8222DA5DD01515F879F99712395EE6",
- "extended_unsigned_section_aes_key": "BC42488767C410E7AA5819CFDF1C5CF0",
- "extended_unsigned_section_mic_hmac_key": "3CFF59098FD095D011C3946AECA1FCA8E5979E92FCE34E9C1A024982470776D9",
- "key_seed": "30B9B3605CD38CA2756C35BE6662DF7A23AC2D06C0056F85AE55E118EDCE5329",
- "legacy_ldt_key": "4EF01D5DCF63BA2A105CCDE09E33DE2BDABB4BAA0C826A7BC6DD04B5C926CE4184E493DEAF6D6299413B69EAA82F6E6E65DE0C8BC5352ED6AEAFDC5BED50D112",
- "legacy_metadata_iv": "128A073991F51DF189535DB0",
- "legacy_metadata_key_hmac_key": "2C2A93A2C2870086EB37FD8DABF735C05E0AC366472FBD98C34E1DD4C7FAA5CE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "03D8",
- "expanded_salt": "830FCEEE4BEC88E1E6982E73278DBEB1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "117D28325FEEA09CDFD5EDB99C38771F",
- "legacy_metadata_key": "E12CDE69C34FDEF3F24BD3E20EBA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "53E1B12AD03D0D6A0CFF6371684143F3",
- "derived_salt_first_section_no_de": "9AF1AD4AFFB4B5A965CA4B269E7D52C5",
- "derived_salt_first_section_third_de": "EAE7B750887F0C708989C22BBEFF7FBA",
- "section_salt": "ACC5BCF09F90B15BF6ADEB77CC57A8CC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B1BAD3E61FA9ABA5FD58247E",
- "extended_signed_metadata_key_hmac_key": "3D31E7DCBB98A956035B5CCEC43ACEB168D9A361C6BF8A632999D6B011F20BD8",
- "extended_signed_section_aes_key": "BC88F2C72A6C2E6ECD22245FE17206B6",
- "extended_unsigned_metadata_key_hmac_key": "3848B397E52869EAAB148647E2DC520EFEB5F9C010CE7E10E2201310297C715D",
- "extended_unsigned_section_aes_key": "83FFA9E0A6CD7A3F764E9472D1968FBE",
- "extended_unsigned_section_mic_hmac_key": "8F7B8420F0B7023F559FBCEE7C963FA27BB4A24F06104098B64775F800A37E70",
- "key_seed": "07118EB2042E484B470CE63D11CC39EDF47B45F29C4267005948A02263CEF162",
- "legacy_ldt_key": "619C1EB95B559AD1489C81E04EC72BFD79061A99D9ED3F5FD3298EF847805B35E64E233BD0D87B1E6BBB2628B4741A15F6BEB6BC531C8629ED00A77D100741B5",
- "legacy_metadata_iv": "E317C992F85A8114D6B2FD56",
- "legacy_metadata_key_hmac_key": "CA32038A70D980608EDE8EE1CAA377CF23AF7B29C05311702EBB419D823D41DB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8EB8",
- "expanded_salt": "D0E14292633A25BFD5D7E10234878F20"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "321A6D8A50D10B9750EB69D22A0DFD96",
- "legacy_metadata_key": "513346049FF9C6018FE38701AD33"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D307F9C917EA6CBBF610B4DFC9014C23",
- "derived_salt_first_section_no_de": "B19F3DAAC388C6D6940ADB9AFED43E50",
- "derived_salt_first_section_third_de": "8C74753E7DF7349A70B4AEB3741A1333",
- "section_salt": "09ADCE72E8B6F6FBE439F88D39451005"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5DFE5E02009D8DC47E70C267",
- "extended_signed_metadata_key_hmac_key": "EF3E0879905154586FF166BE5C6ACB0DD55D4AF815A9F647BE5445F564B70CBC",
- "extended_signed_section_aes_key": "6797666919B47BDD7FA306926908EB6B",
- "extended_unsigned_metadata_key_hmac_key": "628901CC1EB5D1855B99AC662FD1878F0299E867E277A13D327E1AFFEBC660DE",
- "extended_unsigned_section_aes_key": "B86D01AE1B3357FB1ACE00A3768176F5",
- "extended_unsigned_section_mic_hmac_key": "F75F2A50421B450FCDC5B582C4493656FCBE6B4B03D8FDE9D7DB09E9E75FBE99",
- "key_seed": "7D662A6048DC4263DF1842B00D3F60CF87B84B9DA633BB700433962FA98790E0",
- "legacy_ldt_key": "54EC5ED98FACBCC841D000C4040645B21F72079C2BD86A87B99C8D08D1E041E2C8B9C6F28D97A3B8023D7E9A103A3ADCA5039F831C69D1184637F766277D0FD1",
- "legacy_metadata_iv": "FB33F1DF7CBBF8FF0F279ADC",
- "legacy_metadata_key_hmac_key": "659BEE432B417D96A95441F0A09F58DC76D9CD5500B2DFA1EE0C6ACF780B21AE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0B63",
- "expanded_salt": "17DA010299203BEAE68D39FE17C2B264"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1702A741267B551E04E795671016ADE4",
- "legacy_metadata_key": "608E1919EEAD830A096A2D2175EF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "553D4E0F0835C2C415AEC49624F84332",
- "derived_salt_first_section_no_de": "0EFA7A82CC5880594791A173D8B68F1D",
- "derived_salt_first_section_third_de": "330AB6FE7BF061C0812916C2A721D888",
- "section_salt": "43C9F9F8025FA74D450018E4AF7F5A0C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "019773C333C42DF8F4A3E46D",
- "extended_signed_metadata_key_hmac_key": "FA53BA92331BE2D2D301E6B8B013DE4ADF692E937079EA5A915B9B3766B998E0",
- "extended_signed_section_aes_key": "6F3AE8D46067144CA24293A6B4B9DBAF",
- "extended_unsigned_metadata_key_hmac_key": "33F05B86B98B1FFDBCA437D86908717B5B46DAF4757615060724B4A448CCE480",
- "extended_unsigned_section_aes_key": "A7554E8A45A18BCB719C7D8219823D19",
- "extended_unsigned_section_mic_hmac_key": "09B06EC76F5D88E29662F1C4D7A0C2E796140B1F6564E65097BC10EA897EC414",
- "key_seed": "EB2BBF3D0F40448AFD1283CE62427417312CB0A9295941D298DF3897D966810E",
- "legacy_ldt_key": "D82BC7BEDAEE3772B772696D2D146FE1A5873EE52D87AE71B24583833224DCF1FBB39EDAC376EBCEB956FE211ACA8F9BA2ACD852CB621CCAF570347C5FF4CA8A",
- "legacy_metadata_iv": "D0CED41950DBDE2E5B2ECBB0",
- "legacy_metadata_key_hmac_key": "5E78802DC9FEE7234E9302406E920ACD27650B9C799C0E60DF3E49303A56FC3F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BFBF",
- "expanded_salt": "825E9B39815B6F018EF9BA63B5D9FD27"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0BE6151F8903F0B844EA280EFB92A9D3",
- "legacy_metadata_key": "A3CF182BA90505332C0CD8D16521"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B6180123864C25555CD4367E09E8C6C8",
- "derived_salt_first_section_no_de": "9BCF0BD7673F7B590EF98D9D48922A1D",
- "derived_salt_first_section_third_de": "DD30A8F50C05B75026B6BA3D2137A1B6",
- "section_salt": "EF9C01E8C834F170BF2AD096961391C2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "133BC8318CC986BD6A79D6BD",
- "extended_signed_metadata_key_hmac_key": "3C063F1B7D36A0881651C4063BFA334631F639EE1E4FC841CAFE2406C740B6CD",
- "extended_signed_section_aes_key": "76D03A32A194ECF9DDE16938990338B8",
- "extended_unsigned_metadata_key_hmac_key": "D2DFA3B2614E4634DC4D9974B0027D55F2A685B0782C8D11B044ABC812ABA6AC",
- "extended_unsigned_section_aes_key": "1299F85B61BAF92B8928C6E0A942AFEB",
- "extended_unsigned_section_mic_hmac_key": "00DDB79F52B76604BF792B92EEA517F5D427164F8CDC9F61BB68F02A24044003",
- "key_seed": "9110CC32C2669A28B7B2D6C63A4B98F275EFF05A0BDF4EDB7D6A15B3C60C8EAC",
- "legacy_ldt_key": "3C7374CE548DBA2D66474AF780DED0B9214E964D775E872AAA949D201F7BDB202CA68FB51825C46A5EE441BFDB458C382A7DF7093C8E22FF7D9C5E677926133F",
- "legacy_metadata_iv": "5E154D9A7A4493CC7A400423",
- "legacy_metadata_key_hmac_key": "9CA409B2F1CB802315960815A78714FD9FD0B03DD5D79BA223DB61FA1B293D38"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "40F9",
- "expanded_salt": "9A71908C23376FF23BD639045E88460C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "83865836869E8E5398C6B34A7056FDF6",
- "legacy_metadata_key": "3D0D349C6103D703BEA9825530E1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "95AB88AD48DCDDC5C72DBBD233E49000",
- "derived_salt_first_section_no_de": "95B940C3C676CB4C7B6B419013225FA7",
- "derived_salt_first_section_third_de": "4EFD29C4454F36C088A71AB1A5E36978",
- "section_salt": "B40EDA6B49AABAA39FD9E89690E30447"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C115ED8507A8C38E2AEA7184",
- "extended_signed_metadata_key_hmac_key": "94E7DCFFBABFD6C4D101A08652381952307988B429A18EA802527EBB48A19B7C",
- "extended_signed_section_aes_key": "858FECDC3830B4BA337777303D8B2B2B",
- "extended_unsigned_metadata_key_hmac_key": "12698001E59B136E0C67C39F424FC8FCA660D1F0772EBF0597B24DF68F26E8AA",
- "extended_unsigned_section_aes_key": "0C96F3B221016D2D9B8610E8398EF7D5",
- "extended_unsigned_section_mic_hmac_key": "D8AF3A7F1074D37D6742E23A98360F817F3548D882ABE7257133B8FE75277BFC",
- "key_seed": "874CC76DA413706CB2DD1463DCBC0B5CE90E5E4A693AF08F8D57D8AB4C3AD44B",
- "legacy_ldt_key": "1BE96BCFC9538BF8D1C6408B0B1B55C82BB9991409FD0B6DC4B9E153D0A3EC1AFCD21BB28CF7E41D6AD3DE4E3C601F8C1E993C6FEC799BD5E4AE659AF3E49341",
- "legacy_metadata_iv": "AC1ACBA1C5FBB9EC5CB09028",
- "legacy_metadata_key_hmac_key": "4C5942B31412C0DE633C3F850AF9565C852DA496AE5B4219321A1AEA52669AA8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A154",
- "expanded_salt": "EC34F365CA45B437BC245A849CDFEAE0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E118436B00601F4834848345AE3A50EC",
- "legacy_metadata_key": "66BC9C28B4E1A9B02E5C10399B1F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E77E970336816FFF30B528F153C204B5",
- "derived_salt_first_section_no_de": "4DC25F5E36A47FB8DDDA50142197F071",
- "derived_salt_first_section_third_de": "718FFDDA02A03445446D3CE0D13641D1",
- "section_salt": "34FCD31CFAAB7BF52FF847590BF7DA3F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8E57F2555BB8F75DF4228FC5",
- "extended_signed_metadata_key_hmac_key": "A247550948F8ABF3191BA5C51B9C86E6339F68146C3EE0B6AA020FDA223E3124",
- "extended_signed_section_aes_key": "DBBCCDDABE9E00093F0AD0CDCC3E146E",
- "extended_unsigned_metadata_key_hmac_key": "AFC1296947F1A428B745B2020861F31BD032C6C26DD73E2BEDFADFCC440169D0",
- "extended_unsigned_section_aes_key": "F45CE1015EF74DCCFF20AEDFB8AE2467",
- "extended_unsigned_section_mic_hmac_key": "2C464D3AE278E290492B994AE3136A025C0C7E3785E3244D2E10CF648749A0EB",
- "key_seed": "1F5884FC05B69CFF4CCBDC07AE0ECFC488ED00EECA54944F4B078BD0411C09B3",
- "legacy_ldt_key": "817192A63DB96769B3284D569A2847ED08749B049C31904B7EA8A605AC5CE769C0869A565D4A54BB24297E4168FE96739D8DC09F7BDB4FFECA4CB8D17696215D",
- "legacy_metadata_iv": "6AF48A9D23DC9E62D47DBE9B",
- "legacy_metadata_key_hmac_key": "67B34BE4BC7D70A4A5B474B9C3DCAE9A7DC7F55F01650FDF267871D83B4741FF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "27E0",
- "expanded_salt": "759D8AAAE76D772902617843F7D4A337"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "00FD3788A78FCD8C64A496F44274079B",
- "legacy_metadata_key": "AB4AD076951DDC049878901A4172"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5777472112D6120C4D3EF00A5214DBB4",
- "derived_salt_first_section_no_de": "7A3B23B57D9F815E09E2FBB7EB96579B",
- "derived_salt_first_section_third_de": "272EFE67BEFEC2E3D1E79D89199EEC52",
- "section_salt": "D6F26AB63303249185F7E1F5C5FD67CB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9232F5A72DD3A119A1DD1E48",
- "extended_signed_metadata_key_hmac_key": "B08ED6B909D47F9E13A12210F3DD2B3AAD0AA89B82E2E5C415332A568EEA047C",
- "extended_signed_section_aes_key": "BFE10349B74B586D7BC147F9392BDAD1",
- "extended_unsigned_metadata_key_hmac_key": "78593E139967E07B0C662C00F3C66720DAA5A6F1F982E261B38B125278AC34BA",
- "extended_unsigned_section_aes_key": "C4568C2C0F12C6FCEBEC53581867561F",
- "extended_unsigned_section_mic_hmac_key": "F011D424A85044D5D51368215CCFDB73FDADACA9A6A17EA6BAD7F44F255B689B",
- "key_seed": "6F0E2124034EE85A9B7B72D0FB8A7B388EFEA0DDADA170D4926E59F0DCF79FB5",
- "legacy_ldt_key": "EC49BC143EEA7180A9A40064E4A4D8E7FD8198ECA090D91A756158423A4BFB6C3B9D9C5026D97E01AB12F4D3EBA2BEC2D75A9FD3B288FD68EEEFF4A92BA606ED",
- "legacy_metadata_iv": "BA962F0256B9C2EABA271D90",
- "legacy_metadata_key_hmac_key": "3F8F5A73581321C94034B1C55EC56928ADD0C79BBCAD2D0D54F9DE7CA90F2D93"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3D4D",
- "expanded_salt": "65FDA9159E036E7CDA6D9E61887FAC08"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DA363A371CF25343F3EE02887AD248B7",
- "legacy_metadata_key": "B312EEEC687146C6BCE3586FAA21"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "09F5AE7BD41694074A59857F1CA95426",
- "derived_salt_first_section_no_de": "131984622A4D0F1DA97022FA61BCFB21",
- "derived_salt_first_section_third_de": "A3BFB7AE6B43910270E78F62B1999874",
- "section_salt": "03630B2CAB96048D7569C4CEAE2ED6E2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "624AE3AFD04493FEAF510E63",
- "extended_signed_metadata_key_hmac_key": "60C45B10A00D9A672696E6AEBB9357EC9ACD833EE977A93BE022566873541490",
- "extended_signed_section_aes_key": "4269115170EB26CBDA87E85B7ADDD5BB",
- "extended_unsigned_metadata_key_hmac_key": "48A2D1C80F021B5582027EF0CA7B7BA770632ED3E5C319EFD57B287AB1EB1592",
- "extended_unsigned_section_aes_key": "D21010D134FC4D65D638A16FC781291A",
- "extended_unsigned_section_mic_hmac_key": "D983876B15B05AC8EB24CF58305F251F1C46354FA85E13B079EB030C44B5D06E",
- "key_seed": "72F26ABC2EF31C820EB77AAD3D51F6AE7C9D1C17A228603FAB3740A5C877C576",
- "legacy_ldt_key": "3730CF074537F475A874A982FCDB9731FDEC825E3056447E2EBA77E07753552C99F0E230F35D6A36DFBC91A42F5FBA281B79FAA7D5D0A205B74A231C1E5C5EF3",
- "legacy_metadata_iv": "5A7A89B860CFC640DCFC6C23",
- "legacy_metadata_key_hmac_key": "87270B9E721445BB8FA604107E4A04C87A936F9839690711E642BD8D3B679208"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "74AB",
- "expanded_salt": "2645A954B7C60938686ECFC384D70A20"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B8A8DBDC1537118D818FA6141802DC17",
- "legacy_metadata_key": "497A4CF1BC9C6EB4AD172C115243"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B95CA75A78F3BAE81CCD9ABD579A8CD9",
- "derived_salt_first_section_no_de": "3EE9DC7D20E9E275FE3D7763FE23F4E8",
- "derived_salt_first_section_third_de": "5FC93F23B4B949843CA433A4D3E5029E",
- "section_salt": "5092F24E0DD2F42A82E28CBE03AF8105"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A5750495473EC47707EAF4FF",
- "extended_signed_metadata_key_hmac_key": "AA9A398F499BFEC7E8ADE4C028E8042A163A017AC244E1615C3549C7BAA22F7A",
- "extended_signed_section_aes_key": "3F0630536D7C60EBAA3BE0F42F98DCF8",
- "extended_unsigned_metadata_key_hmac_key": "EB253F960F09765B48A861BDCE8CF3D5053346982ED6AB8376F5B9BFBDAC8ECF",
- "extended_unsigned_section_aes_key": "8BEA78BE8140386921D557708679B935",
- "extended_unsigned_section_mic_hmac_key": "F31573663C96215727EA0EA1430D5E3DAC9A8A8FF3C556E0A425820B53050085",
- "key_seed": "43270242E416F2CC1A4CB1368DCA32676B0247327A7DBB322FFC7C69B1DD433C",
- "legacy_ldt_key": "9F187C9C5FC9081FCF5B795E8988630793E1DAE8FD4326C4A9268314F00F43AF11877E5B7361244460DA152D1D320BF6AFD03C2B00551B23C6EBD0719C9B294F",
- "legacy_metadata_iv": "6D94EECFA5378A65C22707BB",
- "legacy_metadata_key_hmac_key": "6613C1712F0AF5551993DE813853694B86AE8C7F5839CA42A1E23E8675A4A3FD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9B0D",
- "expanded_salt": "7687BD06FC03B06FBB70146E0789AA80"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A114E5C9EEC87216CBFBCEF9FB3C4E29",
- "legacy_metadata_key": "44BC0629162372F1B783F0009947"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C2D6185261BF480A1377661A69EEBFA7",
- "derived_salt_first_section_no_de": "B3BD6EC0947B1FA305795B02823D0DED",
- "derived_salt_first_section_third_de": "6C234C702001B91D0D1213BE77DA5BFD",
- "section_salt": "6380C8E949207A4E4339CCD66E1E8273"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "52E282F1D5D384AA7310527B",
- "extended_signed_metadata_key_hmac_key": "623C44D4C428341A73B6CAA0D2C13DB9B5207E619DE81D57C1BED50C526D28C5",
- "extended_signed_section_aes_key": "5811BC9B2850C5F05FB17EF42E4C1986",
- "extended_unsigned_metadata_key_hmac_key": "6B24AC72F2714A477DBE1C4B93BF68338D34F56DB7098AF2DCBA50657FFCD9F4",
- "extended_unsigned_section_aes_key": "D94B1728D36E536187F8316C626973A2",
- "extended_unsigned_section_mic_hmac_key": "F38D4F1E1BDFB7652EAB657575DC52A12E6DB259A178C47D0B7ACF727C50D33B",
- "key_seed": "B14D42E94CDE9137B75978FF4A08324C329610EA12984CDD721F247C12476DEF",
- "legacy_ldt_key": "4BA51E538D7911ADD85667AC3ED74C7A2779914FAEA01B967B5F1509AC4F9F2541F5732DA3394C080B55BA27C06E2CF83B3C8B45414EED89209EEB055B84D3CA",
- "legacy_metadata_iv": "25B3D9A69D988E12F68752F7",
- "legacy_metadata_key_hmac_key": "89BB153EB56D9BF81AF5BC5B2EE51FC1318639858049E37854BBE3F13573E29C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "514C",
- "expanded_salt": "EEC4DAD5C98572ADF6DA19CA906F80B0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BC67C1B5A6C5F65CB95043060CDD9596",
- "legacy_metadata_key": "FA388DE777725922739EB6EDA886"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E8ED38F738B2C73F3EAE3209C5740978",
- "derived_salt_first_section_no_de": "1F327B23ADE0D739E9FDF9E2539DCA67",
- "derived_salt_first_section_third_de": "BECF1A23E8DFB8EB33AC3327D4087095",
- "section_salt": "022FC2B3E6DBB7261A0F8AAE907E7ECF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6CB218B2C17EF5041ED494D7",
- "extended_signed_metadata_key_hmac_key": "10544F098C13415ED689340518FCD87840F2C26568DD0B2A0BF7E92353F1D7D1",
- "extended_signed_section_aes_key": "0052FB628122175F93B573BF71D502F1",
- "extended_unsigned_metadata_key_hmac_key": "317CDDBC40504E0260F3F6FB5AD8CBED4C8DBD6DEB68D86C7F9D48D9AB7643BC",
- "extended_unsigned_section_aes_key": "8968C1E490CAD4CB8F678155F1A626BD",
- "extended_unsigned_section_mic_hmac_key": "93954BED4251D0D973CCD8ED9E13193220B4F18A43AC8B283F798326A881199C",
- "key_seed": "612C8E89B00985E9378C566DC44E3B15E74C884A95FEF0082559C1ADE4C12493",
- "legacy_ldt_key": "577C951DC717857C7ADA4315AA98188BA09EDCFC41074B9C0F68E07C9707878954C3F45E5E6D9C85BF1451C0594A479D46AF74513A32B4A954A9CBDB9A34756C",
- "legacy_metadata_iv": "359A4EF1367DEF87724C96D8",
- "legacy_metadata_key_hmac_key": "A002A1084FFCEBB6E62E003E43E68DF867641FA54A4282A527BB39AC07C7C178"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5D17",
- "expanded_salt": "19F8EB47779DB6096F510D6AB3418FB9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "376F8FDA712187912B37A495AFC2E7E5",
- "legacy_metadata_key": "381350344DCD31D46A73EAFBAB9D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7209FE5D3FB7A19593ECE2C28505C539",
- "derived_salt_first_section_no_de": "2A8FF0007B26FF969299228B596B6E8A",
- "derived_salt_first_section_third_de": "5544AF7814CD67C75BEE349165D79C6B",
- "section_salt": "B33C9531DDE1518998DAACB076D76578"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6BB5B7D750A9C14766042BBC",
- "extended_signed_metadata_key_hmac_key": "6D51DCA5FC8839B606FD8861C0FAB3BE17F8807C356FF75D8D247FB5DB10E231",
- "extended_signed_section_aes_key": "C61447C50443E90ED0B89E864BE391BE",
- "extended_unsigned_metadata_key_hmac_key": "273914C0C71BF2B3A59C1688EEB73E8EC9850ACD16B60E941E7FFC61354D8D83",
- "extended_unsigned_section_aes_key": "4D2E2B892E7FA6127C1ACED5ECE44E2B",
- "extended_unsigned_section_mic_hmac_key": "5A269C5180A9D2714CA81A82E2C13AAEA02278561BBB0FD4F6DABAB636202BD8",
- "key_seed": "C5A1A15678BADD9E0B1ED42078D52429CAE1B45CB1BCB44EF88743F7B42442CD",
- "legacy_ldt_key": "52E66A015169005761095947CB0394EF4DBF1DA93A51FC38D27D0F38DC0B173C23BF57F71901F8F4E6EE33E4FB80FA397688762BCE3073193439F5D7DFB89B11",
- "legacy_metadata_iv": "6E0B1EA67348AF54C9ACE6D5",
- "legacy_metadata_key_hmac_key": "FEB763B1C8C192350796941BF0E0255794A417C3AB2FE431B0AEE582A79FEDA3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7DB6",
- "expanded_salt": "BBB684DFEE4400387347F3A1ADEC5FB9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6E321EA75D9C80BE53D9F2098BC50F7C",
- "legacy_metadata_key": "19FD3BA82EDC5AC6D3C9D0EC2679"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6902DBC2C6DE0981A54E2321DE43969B",
- "derived_salt_first_section_no_de": "0D1A3E04B0FE7344F89E0C3C536279EF",
- "derived_salt_first_section_third_de": "770C89E9CE2A780BE5441FC25C561B39",
- "section_salt": "3D614E5002098CC63E296B5068C2B442"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "242001D6E9531F976191EB13",
- "extended_signed_metadata_key_hmac_key": "6ECF30379CB4CFC6D2D5AA33A2BBA40567FE1B78C938FBDBFC872F8852F650BB",
- "extended_signed_section_aes_key": "605E9A64FABD81F290E6C8970B78E825",
- "extended_unsigned_metadata_key_hmac_key": "7DF5E22038724BB6346375CDAA1FF6384733A5CBB87AE64034CF25720221814C",
- "extended_unsigned_section_aes_key": "118D1FE237E4FD35CA2F24A7CDACB344",
- "extended_unsigned_section_mic_hmac_key": "1BDB1547230201419E3A3B69131DCAB5FB4F81B00130588CC64BE0447C9825F4",
- "key_seed": "FB98493C86FDBB8A602F528C4EB539F27C4DDBF2E15D13741B8EB22E59A700A8",
- "legacy_ldt_key": "DD2CF1C0D2917C5721A61BD810512F74B5B351649C8E27F2E71341B6B2D1BA3A13F0B1030081143C30308A93A3DB78C4EB8BFDE190CEF3AB954425B6ACB45E49",
- "legacy_metadata_iv": "8CD2CD7AFE69FDC1BDB06119",
- "legacy_metadata_key_hmac_key": "C17B6C962E26EAED13D4144286CB8E2C287B683BC10C27B433B9368A93AD1033"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "45CF",
- "expanded_salt": "B9DEE5AB9D0AB3F30F4F49EF8570B238"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A973035F81F4831DE2DE39FD10569107",
- "legacy_metadata_key": "6C1C268F8D5FB16F50F369053BFC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "186F2A4A510FC54EF7556170BDFBC7D1",
- "derived_salt_first_section_no_de": "149B2FD5F44B445634BD8D911DED501A",
- "derived_salt_first_section_third_de": "8D59F7A962D90281D9EEDCE16AA07B06",
- "section_salt": "30F175F5EED60E24ED218D13A50E363E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "440E2D335D5CE0E21F1FE4D5",
- "extended_signed_metadata_key_hmac_key": "8CA56EB749248374130EAF056B48314D50F8EB050EB0C3694A70E1B3443FBE98",
- "extended_signed_section_aes_key": "1DC29C7F02CEF9C16E81099DEFA8045D",
- "extended_unsigned_metadata_key_hmac_key": "26CE3FD11DD86D51721E6F23778839DB633AF786DD9BBCC85C102473DCE470B9",
- "extended_unsigned_section_aes_key": "17C72B9F33F7813948744E6F45A75330",
- "extended_unsigned_section_mic_hmac_key": "86FC4DEDD53F4F6FF00AEA6F751535E00005B57EC53E066A0084CBF6922E9339",
- "key_seed": "423D964AE7BFD08C8A43885509661C98A8DA87882690C66EC4DA21530B904315",
- "legacy_ldt_key": "4E52580CF94DF74D74645B524A77155AD5F584A96AC9C89DD08539A080CF1EE29CE597360DFE3CF3C11E624224BAF3699F57B9F5F7FEE52E37764887EA4FFD67",
- "legacy_metadata_iv": "DDD0719F77CA687B3CF54DBE",
- "legacy_metadata_key_hmac_key": "A58780D19A13FC72E1563EA9D5B7A0FB0D4FC83748208CAEF783AE9323DDA9A7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ACE5",
- "expanded_salt": "AD84C5A7D9322C91A67702B81BEFE874"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "40E0B875D2919E91189EF8DABA5094D9",
- "legacy_metadata_key": "9D3F4D04D831D3B1A5B400D44A16"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F7DBE0AE554F85252D802DD2AC8559B7",
- "derived_salt_first_section_no_de": "A03DBC8ECE85A6A66EC47FB614A240EF",
- "derived_salt_first_section_third_de": "A75DFF70C2A924F093DE96E42AEA8A3C",
- "section_salt": "A364C88B16129022DFDF06A10199ED82"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "32412C9B27F50EDBBC62575C",
- "extended_signed_metadata_key_hmac_key": "DC5C7A1476C0F290FED5A206B17F205EAA305765FA69A054DF4019DABB62E0C5",
- "extended_signed_section_aes_key": "660F39E30D6F1C017813948C8398FACB",
- "extended_unsigned_metadata_key_hmac_key": "A0EF870E10636A910526C8F60698E23472C4FEB02E4761A8F844D1AD83B19E94",
- "extended_unsigned_section_aes_key": "5808308BBF5F58AF71CA74582357BC2C",
- "extended_unsigned_section_mic_hmac_key": "ABBE189ADA8AEEF0CB352BE98EF78BAC303F28EB25C562D17D995C1A9CF2A16C",
- "key_seed": "E04FE3CFFDA693DEF23AEDAB4BC3BF4E3C93D0C064A5DCB5372BBBAEE90A3E7B",
- "legacy_ldt_key": "D3F3E93AE8F3F551E764DF2C583ACEC03637A383B62228E616C6579C5A764B905C368DDBE20AC9C9B66C589528109083E4D1627426BA66A51504483B900BB5DD",
- "legacy_metadata_iv": "4CD735E36831236ADD14C0BF",
- "legacy_metadata_key_hmac_key": "964E7A20D70268BB1D500635A1FA60AE83FA4CEF61D6B80CB4B9EAF6241E2ECB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "417D",
- "expanded_salt": "D4EE5CC2AE3180B9D10BB05369A97A0D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "77EDE329D48DE692D09D67604B1F489A",
- "legacy_metadata_key": "EDC205A82DF41412B8461112D265"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "50DB7ABA3F7A2D9A56F0BF6EC2BDE12B",
- "derived_salt_first_section_no_de": "0F723FF2CEC14DCBFF96AE79DE852C04",
- "derived_salt_first_section_third_de": "433CD7D230EE438D165CFA77E79B0294",
- "section_salt": "A7FC36AAF53955418875D1F9E60A2562"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ED3178B8912429E7D93DB30F",
- "extended_signed_metadata_key_hmac_key": "238268531D1C5AA791FB8307551CC9ED0A8D08CC9E6C0E5F75185E5203FD7B3F",
- "extended_signed_section_aes_key": "4C315F2135439406D4E3C277DFD26965",
- "extended_unsigned_metadata_key_hmac_key": "6BC7CFDE1FBC9C86E1CD520BF1F20AA6D0D62D9732A1EA3548EA8C3EFD8B434B",
- "extended_unsigned_section_aes_key": "1C5891F8C0828002A271A9397F4AC21E",
- "extended_unsigned_section_mic_hmac_key": "3E3B4DC0C1EE1B4D547ED9F3386CFEB7D7FB46BBAAF64FFF92DF959ACE0D53EC",
- "key_seed": "09071469BFD357EAD5F47118D48BD2F4D948D897450F7423826CDB29B92B6B59",
- "legacy_ldt_key": "84F97D2722A5CF4556B65A5A0821DF6EF66678D49F37CE9D5333DA692D3FDF5ACDF3D7E28A1498B032D1738401C0003BB83B2315EF63C58653291ED4F295632A",
- "legacy_metadata_iv": "D98BEBA4DD54CEE2106F1339",
- "legacy_metadata_key_hmac_key": "2E337E306EF89AAB64648FF715CF1EFD5784FA7C8E1FCDAD2E91703F9E3E0BAF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EFF7",
- "expanded_salt": "FA1176B211F03FBEE4F18D0824C7262B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3CD139228189E7DB128BCB6C1E375BEB",
- "legacy_metadata_key": "2D4880D25EDF74903EAAD1B6DCFF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "36F66F74A16C801CB86C97E4574E794D",
- "derived_salt_first_section_no_de": "38EA403ED3AE46B29CDDA27156F4E53F",
- "derived_salt_first_section_third_de": "EA6CCB362A8BEAC3EE15325E07AC420B",
- "section_salt": "AF418EBA271F098AC8F3C836AEFE987D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F9943D6748067620FDC0D773",
- "extended_signed_metadata_key_hmac_key": "ED06E8046652A527B8229CCB6F43712A68A27753DC787DD64582C7C1B2ADE2E9",
- "extended_signed_section_aes_key": "1A79657331DC69E72410FDA25A11BEFE",
- "extended_unsigned_metadata_key_hmac_key": "8D42798F49CE74E1A84770DA71F12AF898463327EE488735DFBD235A20E4E35E",
- "extended_unsigned_section_aes_key": "A9A16D9DF735DFC96F4CD9B893DECAE4",
- "extended_unsigned_section_mic_hmac_key": "63E45A5F558E8894F89FD067C84CA5E0E780EC3CABA44FE3ECF73C27F0B7E5B0",
- "key_seed": "1D9AA60977AFDED3ED68272D27C592935A1A4B7657DE83D1146D29E68A86F4B4",
- "legacy_ldt_key": "D1319DCD108E57055B5426D4CF56D48308A28ED7B10EFDCD9D4CE13CA32F497A0A86A62549DB154D71EAEC944AF1F61D6A8C72D6337EBE8053214D927F804181",
- "legacy_metadata_iv": "150F221A0CF245B082276750",
- "legacy_metadata_key_hmac_key": "FAEC577A9FECA5DD9731077A6B7FFBC67839A17CB914584EADA86609233C7D56"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4FCE",
- "expanded_salt": "E0F1D23A64A269E772FE5AB711F2F446"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1DA89635484D3A65CECD1A01722BA9E8",
- "legacy_metadata_key": "7C5C0062A8EED18605F3A80AE148"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "93DBBC24B1070EEDFAE4C9D60B70B90F",
- "derived_salt_first_section_no_de": "61115319210ED8522F616F0ECEEB78C9",
- "derived_salt_first_section_third_de": "4B82998832FDD78D1260EB634CD60027",
- "section_salt": "373E66791C14C26CDBF1795FD03402D1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F508CDA8109EC8CE1348B50D",
- "extended_signed_metadata_key_hmac_key": "87BCC75865004DE3C9AD6AB5E01A58A120F43414D0BEBA185A9CB22B4D513457",
- "extended_signed_section_aes_key": "0AE68FA969EB6C5F6CE0DFB840184537",
- "extended_unsigned_metadata_key_hmac_key": "09837CEE5B8F46346802550EE1E19644D2401BD9CD6E83B896827E2EC1C8E170",
- "extended_unsigned_section_aes_key": "5E02CC1F6DE62F6F3092D25FC967C216",
- "extended_unsigned_section_mic_hmac_key": "448CFD5C426F9E41842E0295FACB3CDD2050E75574989E31B4C6A4A549554597",
- "key_seed": "49598BAADDE85C82D1497908ECA5AA64FB6D27F24AD2F3413DD7DDD1C3A72051",
- "legacy_ldt_key": "7CF4EF02CDA5BD664B215CA07BF255C98E6B17F1F6FFFAEC4AD602007AF73A348B947B43AB9D8D263CCD3CFE486329EA2209D975E559DBFCFE66BCFCD2E99041",
- "legacy_metadata_iv": "0DF0C90AF01852BEA3D99796",
- "legacy_metadata_key_hmac_key": "963E0FD8B1C2CBF27B471410A5119E2B406E294728C695CC3F2A0DA60D7387B8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "28E3",
- "expanded_salt": "8EB113C1B4F34842F54896F5643F8FC7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9A89F5CAE44BB9A8A87753AC6CB1F7FC",
- "legacy_metadata_key": "39755B050B1E612D0EC30B8FB400"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "941AF616B05D9B221CA630A383909273",
- "derived_salt_first_section_no_de": "66D56A23BB00BB6C571592234AE1E352",
- "derived_salt_first_section_third_de": "8E9D997A832B1D46FADC8B342805BCAA",
- "section_salt": "351C9CEF1210F3732749995B10512B8C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "70E3424A2DFAADA357023F90",
- "extended_signed_metadata_key_hmac_key": "890201DF1BC9A184835A2DC934C8A6E0830EF1925CADAE30CF3EC9A4F32F21FA",
- "extended_signed_section_aes_key": "272A0A2B4AA5D1595B9D4A9012DA1AC8",
- "extended_unsigned_metadata_key_hmac_key": "C329E485AAFAE2E665AD2D2FAEAB6518BA80A100FCB031FC1A202E112EE4D26B",
- "extended_unsigned_section_aes_key": "129EA10757D020BB28C4FC2DD50A0943",
- "extended_unsigned_section_mic_hmac_key": "1154F5329029D70259C14E66922CA14BD95DA5FE5BC8A710151CFA1AA47629A3",
- "key_seed": "67CED8F89482635A755FD5617C935AC45169CECAB7B34EC4A79A6EDE77F70E06",
- "legacy_ldt_key": "F9181D10C893D5F457BC0694C16F598EE5510741A7FD48EB1C3A8B7DB0C93A0C7BE5FFE6F21613AB90E01B74E0F7D5CDB02F8A141DED3B3754FB7BC97970CF52",
- "legacy_metadata_iv": "A0FFB8B21F61B9A94F34E0F9",
- "legacy_metadata_key_hmac_key": "DEC4762D998825366C039A4A118AD3EF3142BB4395839EEF31A03E8930769AAB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CD46",
- "expanded_salt": "342CFB921DEBC75E9EE6211835813186"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "34106AA21098CB6695D253A4D9226A26",
- "legacy_metadata_key": "48D7BF7E63FF28A78AEBAF9749A8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "909FB640935145E3FF14EA95BD42AB87",
- "derived_salt_first_section_no_de": "6E409C17473631BE0DA52405A24DEE06",
- "derived_salt_first_section_third_de": "9B03C799AC1736C367FFED8733E6EC31",
- "section_salt": "2679C9E3265F6F728FEC5DB984F282D8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CEF6F40C0D84AB1EF24DC90A",
- "extended_signed_metadata_key_hmac_key": "DE8F36604CE59905AEE44CB371345A3B3EB213D118103E3EC8747608FA13339B",
- "extended_signed_section_aes_key": "DFDAE8A782A1BB44198FE95BB31464B0",
- "extended_unsigned_metadata_key_hmac_key": "07C4D7D422D3F55B42FD4B51328F599178C7A80038D0577C118B433F811B4560",
- "extended_unsigned_section_aes_key": "94BA45F54F3DA18A9D2E12F4AC8A4095",
- "extended_unsigned_section_mic_hmac_key": "484715BE0F28E402785FC325DA08AF5CD2D320B7185CFF71B1AF4E0CAAAA8A69",
- "key_seed": "C1523A79C7ED53204FC44EE5DB65BF53EA7E3D402CD47F26E4AEA8DA07DD1D66",
- "legacy_ldt_key": "6D10C4E509FBFEE224AF44069518BE2E9A817E5CE7730DED573CA2C54C7334A72EB4F4441FAB5A05FCE902980B8D5FAC7B5CB860D5810009CAF48DE73576D3CF",
- "legacy_metadata_iv": "391A6A95D696776397566C1A",
- "legacy_metadata_key_hmac_key": "5CA112AF008D921643F5EA4566506BA0F0DBD2ECFCE1F1B455D18F8726403F07"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "56F2",
- "expanded_salt": "1099635C619BB48F9893207AC493CB8E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D3B38DD3D0AE58EE442BCFBCF12D9C8C",
- "legacy_metadata_key": "73A41432096431AD1D6750914621"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "72B258BBD7DD34BDB1BC53D16C543D76",
- "derived_salt_first_section_no_de": "FFBDFC47541BB11D53B907D3277CCB30",
- "derived_salt_first_section_third_de": "EFF9181DD16646F33B4DAFD68E671703",
- "section_salt": "96325DDBC7BEA0D6D7B3E601A125B768"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A371067FCE24EE3C7C3A9DEA",
- "extended_signed_metadata_key_hmac_key": "5BC04B09C5D8174C3A3B54F2755281FB823DFE9C76CF9700DA66118CED691683",
- "extended_signed_section_aes_key": "E41F61D9449BC7BE665E0FF42E280979",
- "extended_unsigned_metadata_key_hmac_key": "3C164BB41DB58908D499865799B001A1B4EB8BCC9B15F9142A7D416F51CE76E7",
- "extended_unsigned_section_aes_key": "CFF29FE4B489AF36292C23ACF3138E56",
- "extended_unsigned_section_mic_hmac_key": "F17036520B6A06001591E1FDA30F9284E74ED32E1D598ADABB7FC0CA3D86F229",
- "key_seed": "CCF1A0C21842CA2705BE203C4F07CD2007263E22755672573CE918BF6DC3A251",
- "legacy_ldt_key": "E0DD40D79CEB90697C90280A990549BE4C98404D08838C8152189668CEE1480751C748D2C4D526A6E92B55A0A1B9F83E94D746E51818DD7328C046AF3195BC31",
- "legacy_metadata_iv": "9D38DF52DA38557BC330A5D6",
- "legacy_metadata_key_hmac_key": "46C77195CA8B67007C5791468B16813C78E8F7F138CB2274F103FF613A0DEC96"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D4E2",
- "expanded_salt": "8643A6E07FCBFF30E936829A7902C81A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "31A89B3462422CDE7FFA062922F9BF5C",
- "legacy_metadata_key": "87BF8908CEDAB053C921FA35D24D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "22FFC91AB3B24C541081ECE10F81A674",
- "derived_salt_first_section_no_de": "B4AD72BF2344CECF7405B172262CD7D5",
- "derived_salt_first_section_third_de": "827777AA7260B7B3D0B5C7DCA25C892A",
- "section_salt": "FFA50B7CD9D9E4ED602ACAE5C99F32DC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A36327E2F3C2BEEF62307F09",
- "extended_signed_metadata_key_hmac_key": "450630F1920793882A09B1C6D4130AA81A5B4F97AF420393B0A02416D242DF7D",
- "extended_signed_section_aes_key": "64C149FEEBB2538AD89CBA671D6DFD98",
- "extended_unsigned_metadata_key_hmac_key": "C5A2A3E314131B2C17CD0FF521AA2976E8488F991839DA077D30769CB6A4D838",
- "extended_unsigned_section_aes_key": "5A919E5CB65F7824F6F7F6736F860329",
- "extended_unsigned_section_mic_hmac_key": "082A8991EF33F74036B32FAF3C24E5FDC13F2C28B6B9F5EADF822E614293B78A",
- "key_seed": "53354FCA2A89227477376538CC63058A3B203633CF2619FD6E0A4F2D280F3A0B",
- "legacy_ldt_key": "A7CA2227C22069D8E1488F96761497199952A803ACB6E84A9EACE25652C28555AEFCF621690F1142EB549F9456FD5561B43F21AB1A8B72ABA1F77BC3537C8E8D",
- "legacy_metadata_iv": "A2224E4485E382F761526812",
- "legacy_metadata_key_hmac_key": "F0D5ED938374ED9A78F0FCDF78847D62ADD199419D87C980F28C481CDF33326C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "90B9",
- "expanded_salt": "A0EAA73840EE63E804DBA2BA126F1363"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8403945709A50C975A714A6C00AC278D",
- "legacy_metadata_key": "042D111F26C0396651007B50FF41"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "70DF9017AC57D4EA78F00C77E83E7D82",
- "derived_salt_first_section_no_de": "9BD0143DE8848DA57747C7DD921F4931",
- "derived_salt_first_section_third_de": "8D2191992B3E2675C8B42E8331165939",
- "section_salt": "5BEBD179515412096E77968063B94E1E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "69620AC24E52B79651F758EA",
- "extended_signed_metadata_key_hmac_key": "A766C99592001FA1E7657FDD5BA002C0FA02E3E991154055257A9DFA93E0084B",
- "extended_signed_section_aes_key": "2B157E25A81F21D9F666E05547905A5E",
- "extended_unsigned_metadata_key_hmac_key": "B0A3B75F54592255A70EFFD7141538D4366CF4C424EB5DD61489581DB06D7989",
- "extended_unsigned_section_aes_key": "DBBCBF8454D8B843EC98D3A2E19D3E1D",
- "extended_unsigned_section_mic_hmac_key": "1EBACD88E664F183B8E11F25F88FF879086224BAC9877915432F67F72FC7E8B0",
- "key_seed": "E2517F13ED7C020268754E6C9C1F48CE50F0A58245C1C9F59E912F4B83624A20",
- "legacy_ldt_key": "F9F180E739AF1618DEFEC16EBC4F931788344408CB768EFB764A174B25319FC3498FC9F2469B537DFF0DF7A167E8614AEABBA1E94B6F2621E44C9163D447814D",
- "legacy_metadata_iv": "6A9E697145E2AE04B4C2D388",
- "legacy_metadata_key_hmac_key": "C298213DEAC5A29A8B621FE07326420AE014CF1FE70146963F7C77829494624E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8A45",
- "expanded_salt": "E2BE413AA2BAE178CCB56BDB34626BC7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "547F5C8C1EE0E4949A7357A6940BCE0C",
- "legacy_metadata_key": "81588012B697D41ABC4F873C4A73"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "423E0EDC7EEAAE1BA424FBEAA9ED3FB4",
- "derived_salt_first_section_no_de": "9803AE9C5084600AC55B1B099E6F625A",
- "derived_salt_first_section_third_de": "203FCBB91D4284A29A40B70D2836F18D",
- "section_salt": "02C4E27D45BFD0C20CFF94E6F8644AD5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B05BA4771C458515225E8C82",
- "extended_signed_metadata_key_hmac_key": "7FC349FA0B6C3E083D9D6F3437A88F7F2769EF3A56E8E5295E6374158E5297D2",
- "extended_signed_section_aes_key": "8152A35D7990506CF85F9160B2DDEBA6",
- "extended_unsigned_metadata_key_hmac_key": "574079548977682E20384A88DCF25F80AFC7DFE908C89B4B93E255954FF8086C",
- "extended_unsigned_section_aes_key": "12EEF176C24A8D4B7172BDDDFC80064E",
- "extended_unsigned_section_mic_hmac_key": "E227F9CCB3699BD087B18AE07B59F09FD27417A4D6521A69C7F8F99BFC2175E0",
- "key_seed": "BA9C4D132ED69485F7EEE43B671DCA3BA30E0A7A432905FC358E95113F9A690C",
- "legacy_ldt_key": "C02EA43CB41AC26DC0E45E0AF35AD63E78834899EFB711079A18624433B6E5E8CBB98C80751000C8C54FC73A9BBF1346BFBCE22F585E148B77919D4ED524A556",
- "legacy_metadata_iv": "37517C12908367EC1BBDA84A",
- "legacy_metadata_key_hmac_key": "2B363C4EB01BE9D7E4D4B378A4A73BD4BED9DD100CC13AD6335336D7AD4F6361"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C11D",
- "expanded_salt": "7A10E8A312A004B322BB4962EFF8E644"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D391275321E5DFE1354673FEF750B06B",
- "legacy_metadata_key": "4EC8A6F56205AE1C0C91552B6DE6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "952677E545821CC1348B78589DF94178",
- "derived_salt_first_section_no_de": "CDE33E1ED19B2788698B3B0704B5752C",
- "derived_salt_first_section_third_de": "F56CF24267977B57F8D8156163A04A8B",
- "section_salt": "69AE8C23C12DF295B2D7988AA7C10CE8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FE0CE4B6AEA902F29C19F999",
- "extended_signed_metadata_key_hmac_key": "7ABED2FF05F126929ED4C496D1AAAF4B51133007A106F763DFDA38719B42AE84",
- "extended_signed_section_aes_key": "216E7324547B0D9BC3ACBCCB1EB419DC",
- "extended_unsigned_metadata_key_hmac_key": "EEF52615CEACF3461098A46D5261F83F697528DBA43D5904AAF53E955AE27B41",
- "extended_unsigned_section_aes_key": "77BC35A9A35C8CDFF94444689FE67267",
- "extended_unsigned_section_mic_hmac_key": "A1C9682FA197EF302ABAD02E415BCDA929E26DE5C961C22A79A2C8ABC8010F5B",
- "key_seed": "CC66A76047075960682B24A14A715387B71DE2E647E9E15528C987DDEF228CD3",
- "legacy_ldt_key": "E02D112884F8B4B7CBE274B1EDDE411C33AADE1BDC980D829902BE60CA3F44AD840F6EEA57113E192640A2577A4B266CB4B9F70D65F5CCC60EDC0A26004BA0F8",
- "legacy_metadata_iv": "3E8631EA17578BC9FEC0D420",
- "legacy_metadata_key_hmac_key": "8CB0E50D0ACE60260E307BF46AFEC133AC60714BD191D77594BB8E592D8D566F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C965",
- "expanded_salt": "AC6621B375257C313B9849FF88EF4620"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "72A0F3FB0B1B8B2D7AAE02372BA4A496",
- "legacy_metadata_key": "433BC87A570293B37949585D1CAC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6C13F5EE1C3005007D4FA76456FC7ECD",
- "derived_salt_first_section_no_de": "ADDFE55521615B605C95DB2C2C9BACBB",
- "derived_salt_first_section_third_de": "06560AD020157E62DF507F3A24FDD53B",
- "section_salt": "F545A4FF97CF2554B8088C0938FF13F4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D40DAA373BDBA6DCA3B8DF02",
- "extended_signed_metadata_key_hmac_key": "96EF339AEA01139E8C1931B6F7EF03A132E6CF0AECC3A89C6B8C03905D5843A5",
- "extended_signed_section_aes_key": "A2D3CE6263CD564D7B2817FB4B216C63",
- "extended_unsigned_metadata_key_hmac_key": "D350BD5FB5B9C5962185CCEA5126BB69D89043B55A2872E09F594FDDC4E7A266",
- "extended_unsigned_section_aes_key": "506A0E792CF7EBADB5722D7E306EB40A",
- "extended_unsigned_section_mic_hmac_key": "4C5ABAA22C13ACE18237860F656699FDD5BCB1A1F4D5941CD5E80D8A1F67E21B",
- "key_seed": "6BA106D596F6A9A914AF9272ADFB354541B58C9E36FAA2B72D63C05D81590D8E",
- "legacy_ldt_key": "404FF74193E01957CB9CC7CDC2616C0D1A02CF0B5A4533BFD25047E7ACB65B324CB1E22569CE95B19FA322AD45D5726E32DFF0531F71F97E36A9F3D9C978826D",
- "legacy_metadata_iv": "305209321DED61D8C153C16A",
- "legacy_metadata_key_hmac_key": "EC6BF63E4E9FC556D6B0452D987B4C69FAA32B9798131CCA4EB821D56422545A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1DB5",
- "expanded_salt": "0AF427FA9189E24093495115F274345F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8DA5332D0CEFF2E2225C9A176E9E004D",
- "legacy_metadata_key": "606697863A4788239544AE15BFAE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "286C05483A8B5855F9EDA212665083CD",
- "derived_salt_first_section_no_de": "097990844ECCBD4D4513841C6E57EDF5",
- "derived_salt_first_section_third_de": "B75E053A499190C1481EEB31F342140F",
- "section_salt": "F43DF347517AF416768B50895D974CE8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "077AB0A77E3A3C60699CCEC1",
- "extended_signed_metadata_key_hmac_key": "68C3CA1D1ED99EA4279B58D1AA713A50D9AD447B0C6ACD1C118A277E234E1CCF",
- "extended_signed_section_aes_key": "57C25FF32D0FA470D47E8E3A661690F2",
- "extended_unsigned_metadata_key_hmac_key": "93AC78B6D334D01682D932255D08C31C40DBEACFA171E5096E6F532B72A703D3",
- "extended_unsigned_section_aes_key": "B4CEC9C902DFE8CF64BC80C7E7BC9915",
- "extended_unsigned_section_mic_hmac_key": "FA19701A72B67879EDA7A99331BF1CE9A2752ED6DB7B11AFC6523359AFAA182D",
- "key_seed": "F2FD99D19153BD9A84A671C4B2E1A50F71DCEAE13AFCBAE7798118B3174E5FFD",
- "legacy_ldt_key": "4A739371531E7055193692EECA163CDE4CB93E9BEBD2B863AD095E5F4EC9FDB7FDC186FCEA5D9FAE7E106C624D6E3AB02E0E4EC02E32EA6C26CB6B69F61050EE",
- "legacy_metadata_iv": "41A7382B0670FCF663E4647E",
- "legacy_metadata_key_hmac_key": "8B2DFAE525F1E642EE93AEC623AE2C0EB5ECC2C2163DCB967F57292FA03ED1DD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D777",
- "expanded_salt": "674ADAE257640478ECAA2C84C531DEA7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "81D173E899EFCA36FE3173779754760D",
- "legacy_metadata_key": "123882569E11D0FE9BF78E6192AD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B7E4AFC424D7D25ECE70A9F65EFC9BC9",
- "derived_salt_first_section_no_de": "7B12EFF80E23024B99BE4927112291BD",
- "derived_salt_first_section_third_de": "A30BF67BD5F8343185BA1D48DC0A1AEC",
- "section_salt": "956D2E791B39DAFBCEC1E0D0859503ED"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F4F9587521635B578662CA1D",
- "extended_signed_metadata_key_hmac_key": "DE1B196076AD14439A69BDC47554FA99F32207D2B3FCCC8F3252DB66914BD3C4",
- "extended_signed_section_aes_key": "9F50701C0B2368254C15A9F0E6CDDE22",
- "extended_unsigned_metadata_key_hmac_key": "C23525A6A4636446B1EBCFAE20CF748682778E3E352F03FDB80AC2E4A4A8098F",
- "extended_unsigned_section_aes_key": "AFD244C30F51971DBBA5985DC5184A34",
- "extended_unsigned_section_mic_hmac_key": "5D3EF47D440BA375825885A32F1274C9A62879284B03F1B3940FED55E2AF2F16",
- "key_seed": "A918D3EF9897FD6AD863F090472D268C5324103A9870D208EDDA1F901594AFE7",
- "legacy_ldt_key": "586F54A0D0881005D202B52799FBE0B2A6F1038F1FA64BAE11C8D8B71C4F914595A345CA0229BBBD9D36100B4D039ECCA5CEB15A1F1D9A2F4A3C9A031B855074",
- "legacy_metadata_iv": "2CC43BBDE8B09FECEEDF136D",
- "legacy_metadata_key_hmac_key": "2F17D8236C1275A7A1CB0EE047DE8B48B936136495BF7DB858CFE86F271F0DB0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9275",
- "expanded_salt": "B26C1B15633A76CC4597B4E3AE7C2B6F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A22A7A236D6B4E97EA2E34BE279B44CF",
- "legacy_metadata_key": "1217529025098FDACB8105303BDA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3005B85AA63EE40B1B94B013F0608BD8",
- "derived_salt_first_section_no_de": "FD0BDA45B8244EFED047036584A2D27A",
- "derived_salt_first_section_third_de": "452442EC356D0A5A6E5ED11FEB080AB8",
- "section_salt": "2200F3DF849B64D271A4631DD0E2D5AA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7B24EE628914DB63A8D08FB8",
- "extended_signed_metadata_key_hmac_key": "A578D47010970E30F28AAD50A5ABFC6584DE9FE0F053A720CE9777D0F6699C95",
- "extended_signed_section_aes_key": "AB631FC2D60642B1BCC6C3B9EEEE4000",
- "extended_unsigned_metadata_key_hmac_key": "900AE97BDC9B6657B8192260D915606E7F6FFB299B11AA8B5808444C17FA0303",
- "extended_unsigned_section_aes_key": "198957BB84B7C0AFE4ACD1BA51F83D72",
- "extended_unsigned_section_mic_hmac_key": "8BFA1287B9CD06D4B3A585E5379D8EFB85BD0B6457F14890245982A4859C54D6",
- "key_seed": "3531D519F33549EA3FA3B359C62A6EFBE9ED0E418C19247F6601B17DB6218A40",
- "legacy_ldt_key": "BC8B05EF247F82E909C6968B863ACD588F741BFD13F30DB3A14D719584428921384459A49B175721E31D2E69E08115C24FBE321AA1D09C81892F8432A99AF12C",
- "legacy_metadata_iv": "A4CC31BBF70E3934A9766D93",
- "legacy_metadata_key_hmac_key": "4821DE92BCD1489900D0556A21D49D96A74CB61911FE38CD88B991317D5565FF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EB27",
- "expanded_salt": "7334AEB06C1CA96B8DBB4C06E0D3FDF3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "36B35EA8168B8FAB05E924AEFA8A0F3F",
- "legacy_metadata_key": "8E2C4E27AA1D1C2D9FFF911E8710"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F5CF1512AFAF3A35C725A3B8D232286C",
- "derived_salt_first_section_no_de": "AABAAE2FCED67E7F4C432942F9DA6BBB",
- "derived_salt_first_section_third_de": "FD652973D6CD42CBCE5527D6D5B87F2A",
- "section_salt": "B39B0D3AFECF10FDF7214B73495BC002"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6E6023FC9239B63CE363AFC5",
- "extended_signed_metadata_key_hmac_key": "517A4CA3CFFEFE453E502E95500739C3ADA0AC0676C4BBA66DF90C9878B0B3F3",
- "extended_signed_section_aes_key": "3A23EA0F5383A53FE6696CAD279CF83E",
- "extended_unsigned_metadata_key_hmac_key": "B5DC417EB10F9C8BB43ACEEABA856D45CECFD9C20D4D2DCCB613EF86B4C762B7",
- "extended_unsigned_section_aes_key": "B44823B597B5DDD919EA4D776B9B20D1",
- "extended_unsigned_section_mic_hmac_key": "ED9E478F522B88E8E7F07BEFE1E26C7E6B5911882A6DB00AA4734F2C3B9F7E77",
- "key_seed": "F295A599D93F76CCDB35010FE9AD97ACBD595EF4BE8A107785D1CFEF7B00A0DD",
- "legacy_ldt_key": "2FD5122E6D9ED6B219608368978BA9C64D55A40A577A8E56C24492BFDA36348479CFE085746B32C9A80FCD85F92555748DCDC124FAE1E613316D6B2FB0DDA994",
- "legacy_metadata_iv": "0CD36EC83D754EFE6C74F0BD",
- "legacy_metadata_key_hmac_key": "DD5A711510E6FFC7D264BA6FFA73F9D6367F35BEC69629CDEA1E851326A822D4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DF78",
- "expanded_salt": "1E90A59DD9479EBA123000AD3A81DAB7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8F886FFF43FC479FE5273664D545F6BF",
- "legacy_metadata_key": "BCAA16DCB2590A34CE896A7C615A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "24CBAAFBD4044925EC6EDB73503F8597",
- "derived_salt_first_section_no_de": "94FB8561754E7B72959A111FE3F13C54",
- "derived_salt_first_section_third_de": "9EF3E6338CC34F8A95901B381291B9A8",
- "section_salt": "16914B5F15C5A186F600714FFBD9FB55"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9409B1738C1C2FE2213E3FCC",
- "extended_signed_metadata_key_hmac_key": "AE14340E74DF7E385E44F1E3D6C2BA1175D57EDBB69A1B5C07CDD79B609937F8",
- "extended_signed_section_aes_key": "545786021530B609B859DD37F45A0CCD",
- "extended_unsigned_metadata_key_hmac_key": "4E0CADA027E028BE309CB51B3E3655637D819EC88763E53DF7D0135C1AA7A671",
- "extended_unsigned_section_aes_key": "B77278DC58D99E7B1EA4938185F0A591",
- "extended_unsigned_section_mic_hmac_key": "F8107BC5DA75CE229A36EC4B8F2F08BA72DAFCDB5B1958BE596111DAC99B0725",
- "key_seed": "D5A0287BE3EBA2E40F9DAC7902F9AF3CA9E83B5CB8F9D2CD02D816F260FDF7BF",
- "legacy_ldt_key": "CB42BC0524582562EA944CF888AFAC9B7FC6432EC08BEEE5AF71C8F3F714190D7225C2E29C8CE4C10CCF8863EB3E2A5B6FADDE1F4695573E8602FB2F739820E3",
- "legacy_metadata_iv": "FD2850CAEB779E88A432745E",
- "legacy_metadata_key_hmac_key": "7D9AFA20B32C41639B4DD86F58418FC5778091A83A4FE76C8AE71F4A794AEFF0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B09F",
- "expanded_salt": "1A2FD19C95097CF47ED311E851D03C96"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "78B85D4E5346A1AE553AFD49E16F1D38",
- "legacy_metadata_key": "A2CA3DE5CDCB582E219F9AE4CB2B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9D1ED5BF39188ECEEF4D45F26EDD685C",
- "derived_salt_first_section_no_de": "5A21EC1A16C8E51B532B545CC96C2D68",
- "derived_salt_first_section_third_de": "A11A1EFBA71E1B96C95A563C5B1F2630",
- "section_salt": "136C5A7BE86816BC918180E65DA05708"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DA7DA199BE34EAD3ACF588B3",
- "extended_signed_metadata_key_hmac_key": "4B4D2A8F7A35CF4DB4CA6204DEB658487FA5A1439ED991B94A78152085D34548",
- "extended_signed_section_aes_key": "6A609CB749281DD9666862C0EF73E44E",
- "extended_unsigned_metadata_key_hmac_key": "B0F5DAB924297BFE81398B08590FE1AAF44CFFF338416618FBD91A8295CEA073",
- "extended_unsigned_section_aes_key": "A681AC60EB1222F2B1915E4E0D694D49",
- "extended_unsigned_section_mic_hmac_key": "CE770B409064104903CFEF5F93DB07C0FC8557484AB5F32777FFB3EFE91B6DF6",
- "key_seed": "35A782F72130346465A685F080B3B4BA5D7034D3B8B9FDC3BBF9F7A4D44E7C18",
- "legacy_ldt_key": "332E9CE5FC30317C6CB01A30878C6BBC38EE213061F20F280F32F090E1CED8B5C41242977F535DCD27EFC8A911F0E1DC4AE883F8B9AE36E5ED431343EDDD4666",
- "legacy_metadata_iv": "32AD637F0D9AF528B44DC9D1",
- "legacy_metadata_key_hmac_key": "DDC84DD60E869343E3E2C48A2EE07418F0D6136D05ED597B84CD864097543CE1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "74AA",
- "expanded_salt": "F595233CC1C14348AD4B7315EDDD5143"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BA5869C463409628C3D6C3B66B148147",
- "legacy_metadata_key": "F89E59408F1DD1CF65C263285B7B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C92A6E81984C1B7381967B8E5921F3F4",
- "derived_salt_first_section_no_de": "61C7148D4DCFBF53508216863F0BBE03",
- "derived_salt_first_section_third_de": "9B5D3B5AB7E27EE6F03DE8C701CA7A77",
- "section_salt": "DB365233118614D4FCF15DEDED284C2E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AC3AA27AAE23E8EFD3566841",
- "extended_signed_metadata_key_hmac_key": "822539598BD25B6747E9FFE64E9B1A35B98D5AEF9DE0CBF5AB3F03FCE1D0C20B",
- "extended_signed_section_aes_key": "D4AB144A97C2D474D38D18F7F431C9AC",
- "extended_unsigned_metadata_key_hmac_key": "BD2EA5DACB0070F1038A606419B257E452958D9AD54B431275714764DD0AAE2F",
- "extended_unsigned_section_aes_key": "080D7A0BECCBEF03F38E1862DE71D63B",
- "extended_unsigned_section_mic_hmac_key": "DD07826122C843C0686FFB6417CBD3BB979DA52C73F02272707D3DD9AB9DBA5B",
- "key_seed": "C20379234E715194B74BE3AE5BC967BF782359402CAA31A9C06904589FC1C6DF",
- "legacy_ldt_key": "F806528008A405C7BB59F6BC856645F0C993261470274A6A7F168476EA072F42722CB22B22166CAFB41D6BE44E72980EB3843930A3B34AE5D9AB8B3E65428F51",
- "legacy_metadata_iv": "F2BBFADE626120DFF7035386",
- "legacy_metadata_key_hmac_key": "943EF2CB9DA3A7A25BDB15C552995662967E1AFF5A4FFED9E323E390035981AB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "560A",
- "expanded_salt": "D0554C789A593518D0D061EA8FF074BA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BC59EC6404B92AD3D88B8A91481F1E49",
- "legacy_metadata_key": "23B730BD76BC721606F7C712E0A5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D3F0CF013EA5B222089ABA507C8F080D",
- "derived_salt_first_section_no_de": "42EB4C0F5D682A81BA397905607299BE",
- "derived_salt_first_section_third_de": "8E6902AF9B19773122DF9F38DE7B63CA",
- "section_salt": "F191A08D28D0EF5F462D2CDD7774A54D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C6FEF45FD0A18896170C03C2",
- "extended_signed_metadata_key_hmac_key": "B2932C94F29A1656023484166C3FA4AE420BB3BA5793E268CC95E61A20C77BE9",
- "extended_signed_section_aes_key": "E24E8E46EF944B3616CB2B9F11F9363B",
- "extended_unsigned_metadata_key_hmac_key": "FD60CE1CDFCFCD8B0872A01E4EFEB7B4D3279C8E6B1105630C95747EE1751E9F",
- "extended_unsigned_section_aes_key": "CF18887303BE9763FD51031CFFAF2D76",
- "extended_unsigned_section_mic_hmac_key": "C009FE944E7872ECB4DB25F1E87DD53E2370AE74A387AE50173C240BFAD6764D",
- "key_seed": "3FFBA3AFF0159A6E842F1589BF2C7442537ED42CB358629467CFB43BBA9C9712",
- "legacy_ldt_key": "00ABD02420ECE6CBD07C5356F8E782CF89BE8A48C012C809C5B42831EA889A82B135CB949ABD815C12B114AD472C597C87C39FB3087E4F47B765843F49B86DD2",
- "legacy_metadata_iv": "0C548B5F88D1D0F0455FFF7C",
- "legacy_metadata_key_hmac_key": "9C61BDD7D63D3F47C77F14D20E4E6589AA1404877613E977F0976DD12EB61807"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5544",
- "expanded_salt": "BE3043C587A0EF901B8455DF48C0B74B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F1ABBACD0E23F05E038CDB9AC5B41E2C",
- "legacy_metadata_key": "6A99FC65479CED6C485203512352"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "628A3A561F007C00508BE1C838778B33",
- "derived_salt_first_section_no_de": "F5EB5D0EFA695B19B1DD7191240DD433",
- "derived_salt_first_section_third_de": "4C21C7DC07E8FD9FFD402F1B31968F5B",
- "section_salt": "6D968121484D042DC0D7FC1E8044E3E1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4C96B28C650BAB82C7CDFA4B",
- "extended_signed_metadata_key_hmac_key": "9F13F1B1789F2F3C38A8672B482E0FF3BF1F2BD7F85E92F4ED0EE8433B5BC1D5",
- "extended_signed_section_aes_key": "1AC776AA36B5EA6E22541F9A4F30C11D",
- "extended_unsigned_metadata_key_hmac_key": "6384949B17432DF8D7AA7ADF7DB3957EAC2CBFD8C9A37EA2D3393685F26AC696",
- "extended_unsigned_section_aes_key": "F5BB2336AD0D8B248CAA7BD6C56523BC",
- "extended_unsigned_section_mic_hmac_key": "4F3BBC33BFEB5183037CCD54117D16AC622677EFE29D1368B5FE43315C07D46D",
- "key_seed": "7A78C0DA8FEB1A09D1223E838D306E5C506D69F87F681D8BCC929EB5B4F876E6",
- "legacy_ldt_key": "9D4A3DB655E25E88F6F49ACF093A2D48F7F62B929CA179E171E1FBD77A52487B31EBCA5C30B0AEC852384EB3322CE5915E474C40F2F92164D38AE7A1F3D084B5",
- "legacy_metadata_iv": "FCBAB93BAB6ED9074171AAA4",
- "legacy_metadata_key_hmac_key": "94D575BD1398AB8167D4A8F924298ABDC17AD36A06603EA0F20C9F28862425B0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4532",
- "expanded_salt": "5B6DF61D41C35AB27F24A7EDB495D230"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F4B31ED5B3920997BA507AA3BD969351",
- "legacy_metadata_key": "2A6FB69E3F27ECFAB31862563744"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "47779997143CDD2CE546903C270F5C49",
- "derived_salt_first_section_no_de": "90BFE7373EBF2F7343897BE27D2CC8D4",
- "derived_salt_first_section_third_de": "A43781EED0C2D42E6E6759DAAB8650E4",
- "section_salt": "7757423FAE6EADEAE1415A13F37FE6C9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8CEDD81E57BB4959EC19D5D3",
- "extended_signed_metadata_key_hmac_key": "A209E306B97C0710134A1795B288C6B0B137FB0DB5B669F9ACA04B14C531B12C",
- "extended_signed_section_aes_key": "8FDF00E02EFF5EB129C8B0B2855C7089",
- "extended_unsigned_metadata_key_hmac_key": "8A6472AA458D1C07CE7B379B017948568CC542C032E44FC38C1CDAF707A08DF6",
- "extended_unsigned_section_aes_key": "6C29E0FDD891F64DC563128808341BC4",
- "extended_unsigned_section_mic_hmac_key": "FDA2BADEAEA5E0B4D8218FB6318512D4E15136D43BFB8EDAAA9FB44CDD749C59",
- "key_seed": "B1F1E2A0B7FA056A9E65802258B9A399A311270FFB8FCC84775FC33B2F8063D9",
- "legacy_ldt_key": "CF5791C96CDDD65C2C4E19EBEEEF720AE7E6CE3194FE7472903A18145727E201C20B74363995D80C60AB22B73888BC9D870655143A9FD1CB42A0C010C7F5FF22",
- "legacy_metadata_iv": "8C3E4ADE4D94079621F4BDA8",
- "legacy_metadata_key_hmac_key": "4D3B0C630763384813EC6F6CFD3A89E030B6AB333EBE27BB35B58F94289F54E2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CD9F",
- "expanded_salt": "FE3ACC80D6ED56C75AB78031576E3672"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "52979E6768542BBBC184116256471756",
- "legacy_metadata_key": "02FF611731BE3C1F1D10471002F2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3E7B533CA9D4D3404E6D3F6C146BF372",
- "derived_salt_first_section_no_de": "39B0C0DB2EF3D67560A63FE3CB2D16E0",
- "derived_salt_first_section_third_de": "B406AB80E164955C59616B2E08635FEB",
- "section_salt": "3310D8D1BA64F708EA441C6BB4D706AD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B14AE1A004B6239AE080DE9E",
- "extended_signed_metadata_key_hmac_key": "ABA4723769D92C9DF3CB4C7A2B1917022D7C30095D118D4479CDEFD387990EEE",
- "extended_signed_section_aes_key": "BB98CAE29E2E592C5CB2654EF5F72459",
- "extended_unsigned_metadata_key_hmac_key": "C4322B5C40CB9DFF7491551AB17B7A1049346B2870AFDC14471E60BD95C1F2D3",
- "extended_unsigned_section_aes_key": "1E13274EAE33A7823A7263678A513C1A",
- "extended_unsigned_section_mic_hmac_key": "23B7C68CB60ECA4B6F33B3E1CEAC34C21348A2F43108942235546F1D082AAB56",
- "key_seed": "EBAA26C9BF6F5346DD031292B87A0BBA23FCABDFFF3219E0AE6F95EEDCB10A61",
- "legacy_ldt_key": "088AD2A3B41034D1A4702BBCCA542060A111E0FD08DFD5DAB55563A3808C6D4B565F1D944E3603D6B420CAE62351EE14295A38C0CDBCCC9C80DAA884710D80A7",
- "legacy_metadata_iv": "51EA9F9DA745E194C435E05B",
- "legacy_metadata_key_hmac_key": "B61A54C14698A329A1CE9E4E3421A342961405991A1EAE8C6D2CABD865D1337A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D5EE",
- "expanded_salt": "7C6C8717685B9B6B34DEE9E7CE7A4705"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3A5A6987B32BDF2904B5DED1426A6EF3",
- "legacy_metadata_key": "BFC96D0A0F04CFC0BD23D5A09950"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CF3C2EB14DA5243AFD510A8153B0D978",
- "derived_salt_first_section_no_de": "9D902A3BF5F0A6A9ADE9B7E85BA43CC3",
- "derived_salt_first_section_third_de": "586D4B236957609F493E2BC6D7B0DB05",
- "section_salt": "B27616239F0F99149112AFA371E5D43A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "22F04302DB392710E811E9D5",
- "extended_signed_metadata_key_hmac_key": "3A38FC944022DCEA60B0606DD01DB2C6AC57BF73C7496CC6269D3A1C2BBEBC55",
- "extended_signed_section_aes_key": "601E26286F80F82580DBFC7691A88BF5",
- "extended_unsigned_metadata_key_hmac_key": "ED05FDB905CBC8AD483D2195EAB40D7DAD5958339DDE7423C88730DD082D4ADD",
- "extended_unsigned_section_aes_key": "1EF5349D51325F14D546D6B39E1F8064",
- "extended_unsigned_section_mic_hmac_key": "EEF31DD4DE791205D0A299F95A48F5204F28C00758EBD151E2D97E15A1FB8A2E",
- "key_seed": "E4DC61C42F39056C0D03265B4CFFE2EC853ECED356189D3DE04EEA9F85639D1D",
- "legacy_ldt_key": "05ACBA27E76D92E2645691D0BC3898DA3150B81AC00927D0CB43A1DB7D08A46F2467B4F98CFADA4CBDDBF8CC43B247E3D4FB742ABC53595FE61394F48D5976B4",
- "legacy_metadata_iv": "473CE4BC4ECF03F4CE27DBD3",
- "legacy_metadata_key_hmac_key": "00D43B8022110050761D33F53EBF9E1267A1B641F9416C28D32A27918AA32751"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "79CF",
- "expanded_salt": "0E6B27683DB11DBD7D4C1499A95A3547"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EB56722A81D2A68E23DD27F290490CC6",
- "legacy_metadata_key": "FBAD503C8A06164451DFF9E56303"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EE11DA02451A6E178317670140D3A03F",
- "derived_salt_first_section_no_de": "A8C8F4AF08F9230DDCB76FDA4A2F7DCB",
- "derived_salt_first_section_third_de": "C4B620D876D16FBB9DE00FCB351B8606",
- "section_salt": "20AA39619EEB1A0E9E37735C47BF3B32"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C4185C16D87E6196A4CC61FE",
- "extended_signed_metadata_key_hmac_key": "DB015B3136755425AB69EF516826FB9E69162AF4DFF79189D44165C3FF628C74",
- "extended_signed_section_aes_key": "5313A3338FFC8C2786D381386B6B42AA",
- "extended_unsigned_metadata_key_hmac_key": "D724990E56B1CFA39EBEE4600AE424E4229AAC033AA064313942BC5C100EA68B",
- "extended_unsigned_section_aes_key": "36A3A65CF87AC62A6FC9B584351E92B4",
- "extended_unsigned_section_mic_hmac_key": "A1D27C73DE3FC4F3453468F9A1D6F45D1BBFC2D29FA7007B704170D313F0C0FB",
- "key_seed": "4020B98A697FC3307221352D98E61B225DE45DACED1BFF4FBBB482D2AD448CFA",
- "legacy_ldt_key": "79909591B1FDC63AD7B50A046495F9951E3FCE6FF8EF4B6B5EE8E1A8A3D7F78B9D816FA86557D5C5FAC76BCAABA8228D023657FAFF5345A008EBEF572CCDCFF8",
- "legacy_metadata_iv": "2B12F02F440D694A2833CDAC",
- "legacy_metadata_key_hmac_key": "64F80041F24F8FC51838E0B6D59137ED9352FFB81898E3242F558AB7587A8A7F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7E00",
- "expanded_salt": "7BADAE1296F32387D185EBFD4F56BDEE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5BC40F661E11BC3816BF544E4C5E6CB8",
- "legacy_metadata_key": "2A3E6EFFF9BA09ADCE84BF89F241"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "245A634705173FAE492062B6FECA610A",
- "derived_salt_first_section_no_de": "D1D5CEC5827DB4F434187E0EAADF80A1",
- "derived_salt_first_section_third_de": "14DB910287FF7EC29BF642AABC2F2CB5",
- "section_salt": "8DD6243068DB373DE8914B4111C7C624"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5C324BAC37E012596B73775B",
- "extended_signed_metadata_key_hmac_key": "DB31BFC047FE6453D75242D9FD67927C5E42D7793AB50BA8552C203DA07AAF86",
- "extended_signed_section_aes_key": "31E2EA5C248B2ADB3FC1778C5F1534BE",
- "extended_unsigned_metadata_key_hmac_key": "5AB00E4300080BC8DFC33E0917B68E50BD004D2FF80BB69319DAB85731F3EE28",
- "extended_unsigned_section_aes_key": "D240E08F13E969074A63982A8FA1B1DC",
- "extended_unsigned_section_mic_hmac_key": "C561BDC025DCEDFECD6A5EB4BB43BDD5C514B9934FFD9B9A71D1B8CC459DF57D",
- "key_seed": "E8248D9570A43D20D7FF69ABE9250F3BB93EE287A36CCCB6CAA58AB05C4E6BDC",
- "legacy_ldt_key": "5726BDC3FF9A261EEE163857BC0BB4ACD877179A867D48A862CF711A5C2AF24162A5763C254F3E788ACB7CBD65CA608E1389EC59B1AD7470BB2B58C5B83ADB92",
- "legacy_metadata_iv": "60A9730511D10B003C8F3FEC",
- "legacy_metadata_key_hmac_key": "2A77DA1D5823DAE27ACE4AE2E619A4112408E31828D4230B55CD620345EC310F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C57E",
- "expanded_salt": "7AEA364B93454EB6D3472D875BD9D487"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AE71EECB9913AC035A7718DA632FC36E",
- "legacy_metadata_key": "90B02EFDFED21512A6E6ADA85125"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B696D85EE45A4B7B91E366000DABBCCD",
- "derived_salt_first_section_no_de": "59D6309C0BFEEE199B356637E1F841F1",
- "derived_salt_first_section_third_de": "5136CD6F55C58548BC6F2B50BEDD8412",
- "section_salt": "69179473CB70A3DA47D487F6E85029FF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B61879D3E507D486AF596E13",
- "extended_signed_metadata_key_hmac_key": "4C5DF83B384F2F7A2A2628482019FF928EDE5409CB2185430A7469CB6BCBCA27",
- "extended_signed_section_aes_key": "A417D0DF39B617EFFFE3062538C8435F",
- "extended_unsigned_metadata_key_hmac_key": "F23D41CB2F966D0A90690E85F6F0A4837063F93AFDE1CA4F49DC94DE77CE9421",
- "extended_unsigned_section_aes_key": "CDF303A0EBA0090C0888BFCD242E5EC5",
- "extended_unsigned_section_mic_hmac_key": "C9F9C976BE32DAE1FB22FDF82B30911FE202F4363E9D17C7991F873B3A6B0469",
- "key_seed": "7EB368CFF0AF4331D49643D85F100E8186994E19746A2D6184384AD871D68832",
- "legacy_ldt_key": "F320711415384D5764C0805D3BA72990D8BFC612EE13EE37E107B4B2E70280BE543B2F9B315C68B70A092697640D2FD73F38E75868640F2CC57438D26B110008",
- "legacy_metadata_iv": "239708C492E9DA58593DE03E",
- "legacy_metadata_key_hmac_key": "A492D7347CCD4B19F58FE1B692F791ED122B622F296E277E3F0802A427FC635D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DF47",
- "expanded_salt": "B78AC22766FC15E5AC0F93F74544F10B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "209D776C38CC353324B3843A946BFC64",
- "legacy_metadata_key": "31422727576C7673A4F0069D2BDA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "83022D13ADE5009B9E10C2ED3C63FD3A",
- "derived_salt_first_section_no_de": "027BD37509FAE161EC2C11ED3690AE16",
- "derived_salt_first_section_third_de": "731C06B6B311F31B463994307F04BE3F",
- "section_salt": "1310D2ED556CC3E15441D04C81005336"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D9570324E84CD81C02ADE6F5",
- "extended_signed_metadata_key_hmac_key": "27567B4B0EA162326B3D7FB943258458A6A6FDC78711801F312808698D5C97E4",
- "extended_signed_section_aes_key": "F7FA0FBDA410425BEFFF7F48F88C52BB",
- "extended_unsigned_metadata_key_hmac_key": "BD922AC276E7372A1992B52627250EE2019F8AFD1FD6E0A5DD02BBBE69BC4F3F",
- "extended_unsigned_section_aes_key": "6FCC100F2D3612AF5CF74EABEE5BC635",
- "extended_unsigned_section_mic_hmac_key": "498A439159AF292385D7BBCFC40981C68A909AB81E6197EC81DE355D9EFB9570",
- "key_seed": "53C7C260DCE72BBEDC070DDB5AB9FA4B90E76FD09B4F5408CC6C789FEE015381",
- "legacy_ldt_key": "070FF11D0888C9DAB946097596CF2BA6639E690AAF16D4E314A790898DF0D369FBEA301E85EDB74FA0A708DF6D4BFA7E39BD3BF390CC1F1435B97487CC6762A0",
- "legacy_metadata_iv": "DE3AD8153DC27937724B3D34",
- "legacy_metadata_key_hmac_key": "D990352C4EAF530850AF0D29F6C48A5CED23E62189FE6207AABF5D238D220FD5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BD5E",
- "expanded_salt": "F8FF1522CBBAE49F6AF7347AFEC03923"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A468DD454A30F74C0632CE16BEF58FCF",
- "legacy_metadata_key": "24BD809BB1520A72C54678BB5D0A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0D29D4FA94B46D61F4D41A61412C75E4",
- "derived_salt_first_section_no_de": "2CBBC85855D7A0D6173A62273D4ECCF8",
- "derived_salt_first_section_third_de": "107E84B2122428432A4372345E017D5F",
- "section_salt": "A4A75F8EEDA225DA9B0DFB48203CC021"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C36357F17E443220264C1983",
- "extended_signed_metadata_key_hmac_key": "87FB147BA5324872DA2F0B7AE90DD8D12DB10CADFD5C5CCA80F2A7242CDB6F21",
- "extended_signed_section_aes_key": "5D026CBAFDC9EA5B3EADFA6929E96394",
- "extended_unsigned_metadata_key_hmac_key": "9FF14858D9D2F74754F9435CF3604816EF13B6AD0EBCE15C119CE59A9CE00A47",
- "extended_unsigned_section_aes_key": "6076F995229ADA180C536142582F7D88",
- "extended_unsigned_section_mic_hmac_key": "5400E4B193DE39D2DFFED046DBF99B7A6702521CD02DAD5BB05CA673DCD2BD39",
- "key_seed": "A6E1C914750750C6E16552A82D01A385940E16FBDC3A6A9257F7AFAE68F20B7F",
- "legacy_ldt_key": "60821EECDB9B3396A878170ADE250C2D024DCD4870B1DFA295C675B27DC0A7B12C44C5FE1EFD3824F7B79DA4A1F1E0A7B9BC503485223A7C816C5CF9BB3211EE",
- "legacy_metadata_iv": "E7CA9F8C5E4DDC38A42D988A",
- "legacy_metadata_key_hmac_key": "A277C5642AA325C388F3D864D3F3D6428FCEAC4A6A785CB465EEF1713D028A6F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "93D6",
- "expanded_salt": "176AA6D7F6800D7E7566FB8D86A40B19"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "754DDC17C81B6AF739C82E4C20666C05",
- "legacy_metadata_key": "9408D651649BE6688E0FAD81590C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B3B677AC6E22607AB3DF88D7F386EBD0",
- "derived_salt_first_section_no_de": "A1B3D86CEED3644A4D03C2AC420A0693",
- "derived_salt_first_section_third_de": "60E09227556F0EA38E40FB7434627AA5",
- "section_salt": "0238C79908D1E6C446A43382E384354C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5181619FE16C59AE46C8CF83",
- "extended_signed_metadata_key_hmac_key": "407D67624B84185E362F455790209901FA8A213B8EE6E12DE19206A195D90636",
- "extended_signed_section_aes_key": "56114435A0E41086533897DC1A64A153",
- "extended_unsigned_metadata_key_hmac_key": "CAAB7ADBCD06565DBDFE9237BCAB0FD62095209D277DE589C747B1F32641D958",
- "extended_unsigned_section_aes_key": "50FA031971F51097B88F6E3B8B029E2E",
- "extended_unsigned_section_mic_hmac_key": "19EF73932F32D29E8C9553474BBCA97698D5FCD108EFCEA31F47ACD341C721B6",
- "key_seed": "5F947A93D0F7824EA1E41395D9C8A7696F94C87BACFB599751FACB40EFDF2609",
- "legacy_ldt_key": "883E8DFF20879765F0A22070357545F7AE307D97596C1A882A885DFA64E623F2297D2876DAA9EB93C714A355BEA194D2E461EF4ACF059BAEBE95087DCC0CCFC9",
- "legacy_metadata_iv": "9D2DF6626730284493D4E0C5",
- "legacy_metadata_key_hmac_key": "4D8EAB20136C7A6CD5191AEF2BE69315C5C99CA8EAFE863932455EE27656D426"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3D75",
- "expanded_salt": "E72C8420552F3B396ABB1E514920C133"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "48C9CFD592A0FACB9E43652749F9571B",
- "legacy_metadata_key": "26613CEE9445D002DC57E6B59994"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F44D3B82579E0E09659E455EF8BEFBAD",
- "derived_salt_first_section_no_de": "219F0AAD89418CA110B00524D08B133E",
- "derived_salt_first_section_third_de": "21D700F097C50022D003B0A92BEC325C",
- "section_salt": "D4BBA2DD2EB6A0417473EAF78A8B2E52"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CC30A57E4ACD82D5B023012D",
- "extended_signed_metadata_key_hmac_key": "DD732132A7BD50C8D1EA2CFF0D749342480C411C7BFCBA45246D34B42F038D16",
- "extended_signed_section_aes_key": "07D86000CE9B88B31519B475BBD0188E",
- "extended_unsigned_metadata_key_hmac_key": "8F3A4DE4A07084E9EBBC235AC5FBC419AAA3016772934FC947D5A81D49083260",
- "extended_unsigned_section_aes_key": "DD035CAE6761336A22029948A80DF092",
- "extended_unsigned_section_mic_hmac_key": "0CB7E93939F8F3F16B9169E6B67B2D84B585BA16D2BDE29038447765DAABE9B3",
- "key_seed": "283060D3D1FE21B57AA4D69FD7AB26A65B710E3BBE0E45AB0A26F2C2F18F34E7",
- "legacy_ldt_key": "A9522357179BF0692F1EE9F78207A4D40116D635CB760AFEFCB49916E8D0B9F34303E144169C853AD919627CCF3144106339A522B4AB8617B5A321802BCF571F",
- "legacy_metadata_iv": "07E55EE143C86D18DB6708AA",
- "legacy_metadata_key_hmac_key": "D61700AA751F398CA97C10091A2757D8A09E3461D64A6D8064E4DE6DD7060602"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3930",
- "expanded_salt": "1599495245B7E5396DF4689D4D90F91D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FE84BB5D6640CD8CD615D1A00FB6E54E",
- "legacy_metadata_key": "1BDE9D61D3E35708AFC008B099E5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "69EEDB3B69EEC51A4CB0A694A2C4F153",
- "derived_salt_first_section_no_de": "894A627AEAD47FBED9D4626B6DFB13AC",
- "derived_salt_first_section_third_de": "00904E7787BF4912F4F974742533A8AC",
- "section_salt": "CCCF7A41E0436558663BA3A05FC4ACEB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BAAD200D00E0B3612F84C2B3",
- "extended_signed_metadata_key_hmac_key": "A6AA69B061A6EC67A6400F231FEFF5F6030592FE03FDBCF45070148A48D4E8E8",
- "extended_signed_section_aes_key": "5593DEF480BF74E57BE3E62AEBBA6BBC",
- "extended_unsigned_metadata_key_hmac_key": "727AC20EEAA8BEC2B0B69F1FC2A441973E2C13B67C87B23E05982D7533573CBC",
- "extended_unsigned_section_aes_key": "0E1BD0D7E2825943F7C545FAD091BD94",
- "extended_unsigned_section_mic_hmac_key": "0E8C1B6768F98BF6C7D5871D3352246766177A1B3B4F2D2D9ED997E6AC5D8309",
- "key_seed": "3395A865D294875F2F73AB7EBD467E0C81CDEB61B6421851C61725CD551C6899",
- "legacy_ldt_key": "19FAA0ED55370C7BD1BAF5840C83F88CB03C95D2B85EF52164BB979A2AE5C9162A789B3B1F11518A758AB6BE65FB9E517EAEB39FD0859F816938655BEB9B214C",
- "legacy_metadata_iv": "AD93402E3DD9CA8629E9A221",
- "legacy_metadata_key_hmac_key": "31BADAFD8B7A8DFAAB3941780DC57A1686C78E5BE85738379BAA411CAC0DE356"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8CFC",
- "expanded_salt": "DDE5E9D3B78C041F9CBFAA2D29F897BA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "045ED92D7F3F61E5984C1A9F72587001",
- "legacy_metadata_key": "821116D78FAF37BE3E1217EE6CFD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "295B71451ABDBFCBCCB47C2148B70B75",
- "derived_salt_first_section_no_de": "AF97ABEB6BE27ED7FA972D35FD57230F",
- "derived_salt_first_section_third_de": "DC19756ADCAC8232B3B088F2F2C45DC8",
- "section_salt": "6F8CDEA51E2C034E05C830965A99FBA5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7B790381FE986A990C812DE7",
- "extended_signed_metadata_key_hmac_key": "E575566E21034CE976A6E6476356E659D4BB27E38DF226601056ED58D9943C57",
- "extended_signed_section_aes_key": "77659C1401BFE92D15EDFF1A5D6AD373",
- "extended_unsigned_metadata_key_hmac_key": "38F83288F4E17C6FED67B2A50680540D73922CDB1AF98EE7F743A6D9F67A7EB7",
- "extended_unsigned_section_aes_key": "51E3151E40FF81550AC4A7346A5A2BB2",
- "extended_unsigned_section_mic_hmac_key": "3BA3A615F9F416C008E1BB540070E97F70ADAAEBFF75D74F2BC1B3C4CF51CB36",
- "key_seed": "AC438E47E7D089EB9B620CE4061D446F52186548A62C4595C5CE46C32C2CFF7A",
- "legacy_ldt_key": "415D20EA0552A8B675B0019FDD38549A38F113EC61BE5F5A49B41B4E5DBE46F73186D0EE9300F4EB4F59C0E962D208AE7054DAA12AFF22804F7AC6F7CC58254E",
- "legacy_metadata_iv": "8D64A6049E253F56D494E439",
- "legacy_metadata_key_hmac_key": "3BB52888C331720800BD1B555A2796428AD73144857D729D549F115091E1061A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8B78",
- "expanded_salt": "D01721275702A9E0B5A33E4C369B43D0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CBC2F0438320947E5CB3B07ACD29C83F",
- "legacy_metadata_key": "2AFCEC73D8430DAEEFC7CA6FE0C9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "90B12A9BB6118DB7C054BA7D4BADC3BD",
- "derived_salt_first_section_no_de": "EA8849D76563FDD70F229E50B51E3B1D",
- "derived_salt_first_section_third_de": "F31227DD271058E50BE7878C03A5C09E",
- "section_salt": "CDAE05FF547BB01940CD94405A3BD8BE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "36A307F6136F3336509DD7F3",
- "extended_signed_metadata_key_hmac_key": "B6D962B6BC0B933BA65EA3B0ED09612D62A3A75263481CC5AC24E9B6DF6FB049",
- "extended_signed_section_aes_key": "B55F1EFFDC29B6E66840DB364E52CC05",
- "extended_unsigned_metadata_key_hmac_key": "05F14EC8BE234C72A9AC5B39A093BF419E3E78D8DEA203A5164600CBB12621E6",
- "extended_unsigned_section_aes_key": "8458C2E7428EA27915079DE0529123C6",
- "extended_unsigned_section_mic_hmac_key": "C3A429A1E26DEFADCBCA19F6D730C93E808ABBB3E391EA10B66138A0B595C0FB",
- "key_seed": "C40C24BFE808EFFAFFD38DD99110F3EE07A36409CD1A8166C0AD32084B8CE931",
- "legacy_ldt_key": "29A1175B363BAAD0E630FC42658AD59090934FC2A139B1F4FE42CFCAE5974ADC02F6E26D3C829DCDBE6461846C7F2BF494652A460B310FBE714422F3C48DD099",
- "legacy_metadata_iv": "A911AF6D0FD40F5481D36D08",
- "legacy_metadata_key_hmac_key": "A173BC9EDE72136D3762C14C133CEC8D60B3FD102B7BB4D8B20C95FC771B2923"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4E2E",
- "expanded_salt": "6F1A53E4296B5F2D3E8565F8BC1F5B13"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FE5096E949D013404ACFD987092B6E6F",
- "legacy_metadata_key": "D997C8BF6C71BA97469F69F1D97C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6FC056D5B6D0E00A44F0D3165572EC0F",
- "derived_salt_first_section_no_de": "E5CC544AD910F93668EC34264FB622CE",
- "derived_salt_first_section_third_de": "248E9EEF269F62F3EA9E30DDE621B9E0",
- "section_salt": "AB304416433469A8B15D730E90432BF3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "53A9B406F26110515F29A1CF",
- "extended_signed_metadata_key_hmac_key": "A734691AD9C7BA0FDFF4289C86537EE0E4F1562E113CAE216907DBDE56D06B69",
- "extended_signed_section_aes_key": "A60F3AC6410CEC5579A3A42878D359FB",
- "extended_unsigned_metadata_key_hmac_key": "3FEDAD39134A209EDC0FB21047A6B680D00EEB2CF43E802C9126D90861489E5A",
- "extended_unsigned_section_aes_key": "7BB4AD9C4D3BFCD54E33F25C1C4F3EFB",
- "extended_unsigned_section_mic_hmac_key": "FC88C0CA26FD2FE2422A4F8FF908350B57FB5A3B73B73D39B2BA8E7D5851C2D3",
- "key_seed": "1BA0A6346D62C47198D583DD6D4840648514AC5BDD96923B1E512BC02AB52B52",
- "legacy_ldt_key": "DF3B44834540A00CBBCE78401032F610D752AB84B0C2CFF24B12F4EE28FDE911EFEC76E6F92C5A921AE68026FF5387A9359D19920C5999862403F50E89D38FAF",
- "legacy_metadata_iv": "7E9514F592EEB3CD373F3AAE",
- "legacy_metadata_key_hmac_key": "096E7CB8DE02C84A00FCF04222FEDCDACC3E162A53F35A0ADF3104666FC7FC88"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D1E3",
- "expanded_salt": "7BD3D30495C444A4E6CED5A22CF5A955"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "90EB8EF8CBF971614AC415F2BD19A76E",
- "legacy_metadata_key": "4163976AA4E00D2ECD92179215CD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "29A9825280BB0EFC16025D70F5A76F83",
- "derived_salt_first_section_no_de": "F01E9D9249E20312E05F8B60A1DF9F9A",
- "derived_salt_first_section_third_de": "78D9D4D9D8FFBC3BAEC841D910AA1183",
- "section_salt": "B2C9B55BE11E612B2FFF50BAC1F2DE96"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DF5A12A32303F3BBC1A2764F",
- "extended_signed_metadata_key_hmac_key": "FEA9498715EA467BF0F2A82FE2DE138B8E5C603137FAE3EFF530E07442F97890",
- "extended_signed_section_aes_key": "B3D53171BE54D0684CE90E3A783AF7EE",
- "extended_unsigned_metadata_key_hmac_key": "C07B3C2B9F0D9A39323FC716943933F2025EAD90520E571A4D42A29B7BA530C4",
- "extended_unsigned_section_aes_key": "CCD09BE73CDA757E5C793CA26F3FFE18",
- "extended_unsigned_section_mic_hmac_key": "CF342EA17A58E60744203258C6E453980445C4CC7EEFED25D52BE6F105E9DC7B",
- "key_seed": "310EE6CE652EE09C1635607BC3FA9D7D38E809DCEDC4A9E1B491CF4547BCE1F4",
- "legacy_ldt_key": "0C7D6EC53A2A94AA02FE8830007540B5ABCA9F28D4E3B76A59A03DF617FBD29B1B7B1ACFBF9C0B101BB43725D81B85FA934A323C9EE4D1F3072964E809DF318B",
- "legacy_metadata_iv": "B2B2031BEF8F1966B004E7EB",
- "legacy_metadata_key_hmac_key": "44951330C6F4E900B9216C6A6CF8167427A4BF760A1E512DD3CF490314E4A457"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "083C",
- "expanded_salt": "5418479E5D81FAE47544130B453A2F05"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0DFB88ACDD5DDC1E065EA656B6054923",
- "legacy_metadata_key": "A6EDD122B555BE56C26B7D1852FD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D67A26353DF333F7BCF8082AD500CD59",
- "derived_salt_first_section_no_de": "07652E9079B20D8AA7504875AD2782C9",
- "derived_salt_first_section_third_de": "5CA9F90B47539CBF10081D7565D205E4",
- "section_salt": "88406C7FE1B53B6EE3AD575CB82395B7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2418548BE58F2EC84018C1E0",
- "extended_signed_metadata_key_hmac_key": "6F2F2CB19372CCAA8DBFCCE4D7E7A12FDB1A665ACBD511D824DA43E2EF24D246",
- "extended_signed_section_aes_key": "AA8DFBF6EA3B328111065C6D6112E64E",
- "extended_unsigned_metadata_key_hmac_key": "D5A75A32B491DFB8E2D3FD468E876C67458EB820EE7F33B7821DCA1B2712404C",
- "extended_unsigned_section_aes_key": "819E9847B298111912996943B5F74F0E",
- "extended_unsigned_section_mic_hmac_key": "1E79440DFB042595181CC0CAD0AB617D5F1FA52BBCBDC29F7490631519C8F602",
- "key_seed": "0F69FDDCA69132310F736D98A49960256E81C954FB8A3F3AB3811C52B5F00157",
- "legacy_ldt_key": "BC45260760A9E16DD2F38D475C2E5B7748A21D4585C82EC629BA7AF8079FC1A1278C226B82DBC17CAA419C2DB6BBB5BE9347F017266078CF3C36A4A3CA0368FD",
- "legacy_metadata_iv": "3FE6B5D99CAEFC310CF2889D",
- "legacy_metadata_key_hmac_key": "840C101B6D37E80987A27D9E7FC656A1F5FBD5539BB24F906EE67E07330248D7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9E77",
- "expanded_salt": "0C96728A65FBC25245CF87021BB0BCEF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "60CAB55FCC9A37801F87A669A197C9A6",
- "legacy_metadata_key": "1FA9BE5497D920ABF5A1B4164FC2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FF6E7B11498340417629BF364CA54C6E",
- "derived_salt_first_section_no_de": "3AECA12D321B5175B1B2CBD33596A3A1",
- "derived_salt_first_section_third_de": "1978A993D15FBDE213337299DDA99EDC",
- "section_salt": "19320B76F48B77816EAAE9936E27B145"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5882FB67A5A6A5C523412DEF",
- "extended_signed_metadata_key_hmac_key": "EFB9CCEB064FD655FAD33A0C5291F8F62701047D3487BEADF8BD04462D6D8D9C",
- "extended_signed_section_aes_key": "F17991E8D583F80C0FBDEDC721E211CA",
- "extended_unsigned_metadata_key_hmac_key": "A11656B6BDD2B44EA227D608C944AA0C6DD8A2CEE688FFA71100195162F02D8A",
- "extended_unsigned_section_aes_key": "3CD6DF08A65F547F2A6C93A55CBCD922",
- "extended_unsigned_section_mic_hmac_key": "78940095273F8D58283F04CC9592F5957EED4D22583E679BE741BAC0CE83BB73",
- "key_seed": "6AE7C42A50D0C2E279EDBFDBBC6AA324A3A953A957B867D27AAD819B897F87FC",
- "legacy_ldt_key": "43FC9C45CC92D10FE9951807A0E245D1122A08C09E792EEE3710F7642FB339E9A7DAD48D2DCE0AAEB6D279C80BBE321313AE83C5D72488F485A696D1192290A7",
- "legacy_metadata_iv": "80D4DC0FB2D65B086B6D4727",
- "legacy_metadata_key_hmac_key": "45A27A89971BB1BC43693BDFBF1BE7278BD1652338E95ED0C9A9ABDFD1997597"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "89E7",
- "expanded_salt": "48AD07D1A2CD4C088EED078A74D6D709"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "32E0438B6FC37C825619C1FDC6E74AC5",
- "legacy_metadata_key": "8575F9D4BEDDE9113EEC02B87FBA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FC93581EB540E90851F07ABBD1B71575",
- "derived_salt_first_section_no_de": "890D13D13EAF2EC997D3F185A15969D5",
- "derived_salt_first_section_third_de": "6412C03FAE19333494A0D8D172BB253B",
- "section_salt": "01AA2703CD02D68BD0DF16017B6DE6E2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DF7E990E36B1F0AFC1DF498B",
- "extended_signed_metadata_key_hmac_key": "D646C9FF43F0C084AE60F2034531BF36F3DDFA7642D3A58BE639952E343F6A0E",
- "extended_signed_section_aes_key": "385A05B56C45BA8FB2A91B49DB2D60A4",
- "extended_unsigned_metadata_key_hmac_key": "63FB0A8881B2CA3410597505FEB2769DF0AD155A49DC0F77F0B135B64C13851F",
- "extended_unsigned_section_aes_key": "ED50031B0D77549B8AB330C225DD652A",
- "extended_unsigned_section_mic_hmac_key": "A7CA766AEA3A3857CF17CC723647DA7D7C7F8B6417A9302AAF341B176393B249",
- "key_seed": "8B671589DECE38A69E5F11ACCBB2B620945781218357070697A3FE143F233EBA",
- "legacy_ldt_key": "1FE7081F34B9AF56DA4BD9A25D7CABFAC7422CB815747F76A817848920E8101499F8B274BC9689F5C8CC6D378B48CD120DA1F701B034A9E90649BFD3C9F55AC0",
- "legacy_metadata_iv": "39645197FCFE6C6607EA1F41",
- "legacy_metadata_key_hmac_key": "F031BB1A40EFA7AE5FF0DDC120F29E6E929F26291302C5B05FE969573927DAF0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D0A8",
- "expanded_salt": "BE6EB29087F1B38245FCBA0624B6A417"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0850E8968A710A90DFDC16559632ECA4",
- "legacy_metadata_key": "885BCBBC13BEE9F8E6AB772F24D8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F3A9FF4BAA6FAD7CBCD7B34808033A5E",
- "derived_salt_first_section_no_de": "06F1D5F2BA16FB9CF268C5D842DA6374",
- "derived_salt_first_section_third_de": "CC49B6071723D4DB7632861C2B9F27F4",
- "section_salt": "78311874EA545D47CFF324446449A1B9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6E9B22F104EA4F711A9FAB0A",
- "extended_signed_metadata_key_hmac_key": "448EAF3B9FF868D0B95CEBFB990874D38E0282D50F3671A39E36D96CF138DB08",
- "extended_signed_section_aes_key": "B4DCC5BC8C9BCAB817C6DDC1FD25CC7A",
- "extended_unsigned_metadata_key_hmac_key": "D154512126334F7045F32DAB3CB31817834E3D284A171489719E0EB12ED282DC",
- "extended_unsigned_section_aes_key": "FA848B9EA9279D3BB7D9464C6A2660FA",
- "extended_unsigned_section_mic_hmac_key": "FCCE2A507183063546DC1C16DB60C476D37ECF707FB0B03260154FAF0EAD9B60",
- "key_seed": "1B275E25B74973DB754E38201DA4CB5EF722F2862D8E91FF35B660E93A739D0E",
- "legacy_ldt_key": "4CAD1889CFC33F9DCB05C3FF2421EE488710CF6E084D7234DBEBC5F2555EC3A570D599A5C9CB601CFF7D89A2E73FDC094C83A9F450D80A763F20FEFBA3F646AD",
- "legacy_metadata_iv": "65A7AA373A335A6EE6AE2AA4",
- "legacy_metadata_key_hmac_key": "3C44A55DABEF2FECCD6776C5705EF88F381CA2FC3001C16C1A90C8611B1EEBB2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8DAB",
- "expanded_salt": "116F4699F795403DE06A6E6DC1323C22"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3A9DAABA3CACD35BAF2A4DBE5249861A",
- "legacy_metadata_key": "0A49ACBED10471BE7C84FE8755D4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "75D6D97A2A6A2B1DF8FA7ADD6F4FAFF2",
- "derived_salt_first_section_no_de": "E1ECF3B5F88B36CD14DC10A49BA71A98",
- "derived_salt_first_section_third_de": "43DEE76EEC7653B33AB5F10B9152F931",
- "section_salt": "4E793AD80AD55119D152A0EB1F760E94"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CA5586D382613762B928D818",
- "extended_signed_metadata_key_hmac_key": "4BD37828726289D33D5ECE2591E5B4E20BF1230421EAD03528771838CC1D68D4",
- "extended_signed_section_aes_key": "7575FB4A020565111E1F7C73658E05CF",
- "extended_unsigned_metadata_key_hmac_key": "CEB0FA3E4B31FE4C10739CF8B6BBE1404136EDA42974B05C5DD85B9F937256A0",
- "extended_unsigned_section_aes_key": "3668B15C4A1F703299C4C53EBAAFA340",
- "extended_unsigned_section_mic_hmac_key": "69FB0E2475968BEFE683092DE33FBA104753DDDF2E9C8112F5FCCFB1DABFA3D5",
- "key_seed": "F0F09974DC09EFB8DBFB12CA83BE644931649849022124734D838D7B4306CA64",
- "legacy_ldt_key": "7419757ECE769CB9724FFC6C2A2233FC6A729FF9D0F24F38B03DD186F2D1DFC6BA8D55AECB606169B41EEE48FA7455B1D7B8104EC1F84A3D8B97334A6CBA0534",
- "legacy_metadata_iv": "D710EFF1F174FC61219F6A55",
- "legacy_metadata_key_hmac_key": "C3B0AC5F68261EC204178BAA6FC07F328021479202D9892FDEF7F9C6B88D5FCB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CD30",
- "expanded_salt": "8775977FB0778C71F15331150529A7CC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9448EB92D429AB17338E15CBE352546D",
- "legacy_metadata_key": "47922B5FBA7309C67FAA99A91421"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "00A9E31E3FB2EA3A47B78137721A4581",
- "derived_salt_first_section_no_de": "C27D70DFB0A4939462817AD743D1B069",
- "derived_salt_first_section_third_de": "509C80A3FA75AB433FE9A2C086723CE5",
- "section_salt": "1490B6EAEC7565E3F6A39EF56F10B4CD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C9E0C423A758088277E82B58",
- "extended_signed_metadata_key_hmac_key": "C9FBAE9801EF44F1945E67F9AA866327B60A8DC1AF07D8D1C2D208995C421710",
- "extended_signed_section_aes_key": "28CD955ECE90FF47C53B4FC5B7DF64D9",
- "extended_unsigned_metadata_key_hmac_key": "8B24EA93748E8B71A2F7D96A1D12D6CCA69D71C964C07E59C041E2D13E801F46",
- "extended_unsigned_section_aes_key": "E361AA6D0074E6698F8A09A5C86619CA",
- "extended_unsigned_section_mic_hmac_key": "AB4F238AE4F4F12DE606FD9E39ECB4D87D28F3496668919B97761AD194DE2E9C",
- "key_seed": "53D3EB20D3C443872B22DB955EB874D6572FFDD329A3F813DA97AB6CD16B369B",
- "legacy_ldt_key": "DF80A3AFDF3147839DCAB5B0D60DFA7760ACA5A8967C4F30DC26DDD3780312ECA6F64ECF91C8DC4BC3B95D0C5DF94ED68D05592BCB330DC965405E772628EDCB",
- "legacy_metadata_iv": "0DB23661206CC7327BAFC8DC",
- "legacy_metadata_key_hmac_key": "2405B3F86D412EC441DE8AF075D123A6118202885813FB4D68A5B1A26643AE7E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E7C8",
- "expanded_salt": "2BA1A831402F6172648D69C2BBAAA6B2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D4F8BD66547D9CAD799A9058EDD4B9D9",
- "legacy_metadata_key": "0909F858D62631AA9078100D4196"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F35172DE140D4CE0AFD8C66ED81527A8",
- "derived_salt_first_section_no_de": "63C4064F42F2A7C5AE4F973C8C64F7D8",
- "derived_salt_first_section_third_de": "E25FE020595CB71728A90C8BA0BE55C5",
- "section_salt": "BD30359CF35EA9163B61FF78F4099135"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2D3F793E79DBA8A42FD9DADF",
- "extended_signed_metadata_key_hmac_key": "279AD8411288B8B6D73B14203875F74525450EF6D9A870E9C4B3E8C33DD8FA8F",
- "extended_signed_section_aes_key": "1761873EE535A6BF0D47B1F695B49B9F",
- "extended_unsigned_metadata_key_hmac_key": "DD10F9F0EFA053B851D387AA8C4387169E3944653315869B8FDE7ABB503ADCD5",
- "extended_unsigned_section_aes_key": "1C9CE12C8DA385E1F80D1556D900697E",
- "extended_unsigned_section_mic_hmac_key": "E31D908B53D8464AE866C67BDE8CC71D5F3E19203FA919F502893A86B2E58491",
- "key_seed": "7C6306CBA6287A68770CE3EBD33A03C40411AFFB15748895E54807269C6CCF46",
- "legacy_ldt_key": "A8DCD470C9EBDC821FDDC057BBACE5B097C25E946FA2134FD871C3D223A47BCF45AB0EDB712D866C853CC0B3B4CB42B4FB0BA8003DCCB38F0598393747708246",
- "legacy_metadata_iv": "3F486A67278A776B72359C7F",
- "legacy_metadata_key_hmac_key": "D4F05E79962E5C32FCC8382E45CD0D4132475CDD8724B4ECEFFA84553F46257A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E237",
- "expanded_salt": "4FDB790EA182A610CDC4353CDBC6F27F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7485F48A8DB99D495A0CFB3FC45A8A0E",
- "legacy_metadata_key": "4C56A2F6A79A7F7A811DA8C9AA7E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "568F4CD3AB4EF7DC2D1981F6D9DCF01A",
- "derived_salt_first_section_no_de": "A86543E810194552442EF03748D118AF",
- "derived_salt_first_section_third_de": "BB05975827705DDA7F46C473F0194A11",
- "section_salt": "3AE638600FDB0A16DB49395F05FA9405"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ACDD66C35E63CB172ABCDB3B",
- "extended_signed_metadata_key_hmac_key": "C703D2437427B397FB67D41B19D78D0D0B2CD90DE88B0F8395E9ECAC2D3FD700",
- "extended_signed_section_aes_key": "693CF5100F6F0EF433436CD2399A9C56",
- "extended_unsigned_metadata_key_hmac_key": "B2DB8CC14E410951AAEB745D80605A25B32CE6DD9924491A3281171679EE9343",
- "extended_unsigned_section_aes_key": "7B49604D39A878D1BCD655DDEDC1200E",
- "extended_unsigned_section_mic_hmac_key": "238340E01CD42B5E48701B4750994F7F993F6935E5B6E8AA80CCC700B2E42042",
- "key_seed": "F37BF4F90499B8EA25D21AE403C73CEAA6B238231FDCFBA352C07EFD582C1140",
- "legacy_ldt_key": "CD0AA1028A704749B171570C8FB6A66D0594FC452AE5903C82049F5478E286D0DF2CD466E644B9EE51037C07C758FC61C7D4C1BDDF4A512880740F347B1A4351",
- "legacy_metadata_iv": "2C6A9B3DC7CBEBE26955EEB7",
- "legacy_metadata_key_hmac_key": "F5D9488F8E21F35D90F85E73EF9F1E67FDB0FF8782ECF5246CE7D90689F6B112"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9E14",
- "expanded_salt": "85FEC46F10AD629956CF0D3CAB7844E4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8148CE0A5216AB8CA3959A61E342E4FD",
- "legacy_metadata_key": "4B9F1E7AEB8A575670541A9D8842"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6DE26074F4B80CAE39BCBCC0501ADB86",
- "derived_salt_first_section_no_de": "7C20877AFDE63C3FC8BA6484FDE63E45",
- "derived_salt_first_section_third_de": "6DA63FE31F65BB7718EBD3D0D79BCCB5",
- "section_salt": "7B32CF79F4DEADA391666C3B1B629F20"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D567C293C82710C470605336",
- "extended_signed_metadata_key_hmac_key": "5A3EE417899811AA835E2C5DCFCF0128D17FF7DF8DCA2D510C47470F763FFEA0",
- "extended_signed_section_aes_key": "FB181F2A770E6B506E6F7F4FDB9C56E6",
- "extended_unsigned_metadata_key_hmac_key": "3B922E57BADD2864AC91A614C6A81CD0BC01E4810A75C751D9823080CEBF7D11",
- "extended_unsigned_section_aes_key": "45499A37693E3A4FD7B3E71A05A04ACF",
- "extended_unsigned_section_mic_hmac_key": "07A5DA03347B2B1D2E80C5B209B92FC0D9FE356531D147CDD5823B3658805B5D",
- "key_seed": "DDAF8ADB804B37DB34D3A573F430D19439C884BD4136FB4262773D20EE3F1386",
- "legacy_ldt_key": "8817A6E9D3B08A6746213929902DA5F6FB2E971D935395DB613A98F34BDE9BB469FDBD4E487690DB8FAAD1EED51C4410A51A7F126807CEE37C30F782EF044571",
- "legacy_metadata_iv": "1AEAC47F8F2DFD67305446E4",
- "legacy_metadata_key_hmac_key": "606FB92E850D5A1EF4427C588F5D33A5213D0920716AAD520DA7DDB01EC45378"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0EDD",
- "expanded_salt": "BD3B95A0C971129ECF576C016175EF58"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9FBF2DA9B9A2DFD4FF826C4FEA2DD641",
- "legacy_metadata_key": "2B9F95D2F3365922068F3B518A23"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DC5F3053EE80F5F7FAE25FE992BF49FE",
- "derived_salt_first_section_no_de": "57B14724A14C941904CAD9E217D52E35",
- "derived_salt_first_section_third_de": "FE05734E12DDC1692A5C3D7CEF599227",
- "section_salt": "31E60D643752404411BFF7FA6A527E0E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "33D0E95E55AF4B7536755AC8",
- "extended_signed_metadata_key_hmac_key": "4C62E52802F4BAA5F9DB22B6C069BEF705D09C8564341FF4627C00C554F20353",
- "extended_signed_section_aes_key": "BE005965AB1602955DB11FD11EA2CE5F",
- "extended_unsigned_metadata_key_hmac_key": "95102311146FE250CF352B016596A6FAB66747BE9BC257B9D529E2E775571E4C",
- "extended_unsigned_section_aes_key": "781A8DAC90680E700737F627F6940FD5",
- "extended_unsigned_section_mic_hmac_key": "0FE0B09453616963CBF463F518D8EFB5DE03CDC688E8B5D580D4E32AB6DF97C6",
- "key_seed": "CB74B2A3C2FFF2145CFD242836A0CF3322FF6E853F0CE1602BD17B86ED23CCE4",
- "legacy_ldt_key": "3DBA11F2E33C39F38739B630EEE447F12C39EF09A22167AD332C07BD89E7EF2B2ED62016D524ECC46BFACAEF833AC2C66CC523E097AC857B825AFC7C907A0BE9",
- "legacy_metadata_iv": "78A439F5EB61C7BD5B23A233",
- "legacy_metadata_key_hmac_key": "EAB7C9F195666E11A981DCCEF979317F91A16C13DF3EAAA55A620E4F8EE81DE8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1C45",
- "expanded_salt": "4D365FFE545C9F9D919BBFC296B6B794"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BF5ED051ED600B9C471F64E3B52D0967",
- "legacy_metadata_key": "A25DDD893A83A5629874C6D9D2E1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F32E71C52867A3DA6159D78BC693BFB7",
- "derived_salt_first_section_no_de": "15E41519C98015218FF0E0535D3A169B",
- "derived_salt_first_section_third_de": "0ADF2ABFA6CF6AAD4ECA72A730C12BAA",
- "section_salt": "525E2C5402440261DD6B4B7F908ACBB7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4F2E2A8D978165D22A0FFF8F",
- "extended_signed_metadata_key_hmac_key": "517DB30337E6892898AEF4A3A02A6C8400BCA6B006B77541E005ED30BF00B22E",
- "extended_signed_section_aes_key": "A0EA459149BB3C2080E8D5DC6674D301",
- "extended_unsigned_metadata_key_hmac_key": "B02C19EC017A206D05F064E994B3FC0B1528E5B6CB33D6B315BA24271FFA997B",
- "extended_unsigned_section_aes_key": "686D5F0EA04DF45D9E7C4B16E15117AF",
- "extended_unsigned_section_mic_hmac_key": "70FEDD053637AD562238E90F5E06839E6B8E8F034962C146D65188DCB3E20A67",
- "key_seed": "CDBE9F4D12B7525A98A41B67E987458AE42B32B58F1273DB9F451AAA303E90D3",
- "legacy_ldt_key": "9E7CEABCD7A85370A7BDC0B8AE5692E0C50F1C29882731468866AC77FA745B48EFEA3ED6A11933F357D69FBE4771269734850B898394546F85BE12435E5DE8FC",
- "legacy_metadata_iv": "083F8323597ADA6E18DE941A",
- "legacy_metadata_key_hmac_key": "B2F3498A4E15666CF0F6BE7AA933D10DCE01B59DFD2D5198EDA86C73C75DDB80"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F050",
- "expanded_salt": "618DEA6C1D4B2C870ED3DE54ECC6F452"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5AE81750ED3E7A5D3E650AC83DEAE8E4",
- "legacy_metadata_key": "B917AA4248E7DDD47044C3F39CE8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2D0E2A4681B8A2CA55B1A7AFA2424FB5",
- "derived_salt_first_section_no_de": "D58FD083687F70E23017513D75A3D565",
- "derived_salt_first_section_third_de": "466EA0D1717C33F5B73DE0C51246F79A",
- "section_salt": "D58CE1F8E9B11064762508490C9059A9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1826E99F4566D8342089DAA5",
- "extended_signed_metadata_key_hmac_key": "CC9C8BF5871564978D7EA59368EE03D7D5778C3B1155E2791CEC02D01EDE82CD",
- "extended_signed_section_aes_key": "FA99F006D58F84B9B003D67FC7328C91",
- "extended_unsigned_metadata_key_hmac_key": "99D425273035E813938606252CCE5B835E8C496502A90579BE375A1CA7D2F3C1",
- "extended_unsigned_section_aes_key": "E4B749120D6D14218571C8CD8C4BCF32",
- "extended_unsigned_section_mic_hmac_key": "9A7DE649E65DA5BCEB5A098671C9AB9AFD643F89B1EEDF479D916654D4839F7A",
- "key_seed": "1C8A5FE5FDD00C5CBE31FC3D017336A358576552A7553C7AA6FF25E03A660825",
- "legacy_ldt_key": "9C6690DA33A0A565A23563C3AFC667485D567B4099F4A9FC383A8B74688DBB38FBF7C225F4FDE84E0290C063BB39133AA4BD43F57616F6E21C5E1A12D99D20B4",
- "legacy_metadata_iv": "0AC5D345DD1CC5347E981F91",
- "legacy_metadata_key_hmac_key": "1DE46DD89BF0B4804220D3DB3BC06814F5958C0995E494D34874B9A9A5E68A3E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AACC",
- "expanded_salt": "D6BF825813FA8EAA3562F00053D28D69"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "53006A7A3A928B91EE206869DA60B366",
- "legacy_metadata_key": "5E8339FF764F0C6ABD3DD6E792BF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "18A7AC4F4586ACF55E33ABF3A67367E9",
- "derived_salt_first_section_no_de": "78DA079E8ACC7AB9C554A2BD5B2143EF",
- "derived_salt_first_section_third_de": "3AF60D10827327C9C8835C09268E8159",
- "section_salt": "2944F916E8357B4827FC5BA0D27C41D7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AE28DF751E9D8A65886FB7AC",
- "extended_signed_metadata_key_hmac_key": "C8A9C87035EA545B564AADCEEF50B78A83B8555474C72F097045CFBF792F406E",
- "extended_signed_section_aes_key": "BB63930E995119C25BF075BB28DC155E",
- "extended_unsigned_metadata_key_hmac_key": "46631208719E607A71A7E560CA72C01BC06F0E158C6C75D6444155D39EFBBD80",
- "extended_unsigned_section_aes_key": "84C4D926DE5216534A934A4441F5D60D",
- "extended_unsigned_section_mic_hmac_key": "79EA77F2C7519A6E7EEC9F7E0ED2002AC119024BA3388D6B7A0224186D2FB935",
- "key_seed": "3859B4B76BECE4EB16BC178B8ACBF72ABC995F84058CF7B570EF0AFA6582D233",
- "legacy_ldt_key": "4B52F894F69E8EFFBC3949791AE2085463DF67B81241DE2910E8134C42C80973329E0C60AF76F9EDBE4DB1985E826A1BA38BEA7886F49B518B42489525BB9339",
- "legacy_metadata_iv": "7F87E92E25D88DF1A6A17104",
- "legacy_metadata_key_hmac_key": "1EE1F8708B76E0150284F1BB6DDCA0E8EC8248EB6D8D34881403199202AAA721"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "370E",
- "expanded_salt": "13BFC3BB01FDE225AC6C072E2734ACE2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DCD7718598EC80C7D2BB94F331C6E249",
- "legacy_metadata_key": "0817C33EE4238BDFC318C51F9A32"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "05D80FF5B6ED802841FC57141DB39A4C",
- "derived_salt_first_section_no_de": "6EBCC1B24CA108DABB7F738E10143AB0",
- "derived_salt_first_section_third_de": "8342F7738E2E698122C28912DB235F9E",
- "section_salt": "8327E03436EB693B5F3974A2DCFA7335"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6F4EEDC1B82D95B3FCC7FBD1",
- "extended_signed_metadata_key_hmac_key": "9686260980F81CBB9327BA9CE0DFBCBA452D41F1169A68D4FF6E34A478A22163",
- "extended_signed_section_aes_key": "2A0757981AF177650FB384887084CD25",
- "extended_unsigned_metadata_key_hmac_key": "D9E8C59AE057E258CE5B265E4BF5B6DB09D33F96DA6508C1F61E0FB605FFE297",
- "extended_unsigned_section_aes_key": "1296681B7A6472F7EC23D70E455CE8CB",
- "extended_unsigned_section_mic_hmac_key": "0A942DD887AD6B92813031BEBF9928C1A518CC7A9592EA3D139707BA5AB79350",
- "key_seed": "CD2F38AA34610E8D97F8CEAD21F4042B6A2C222C53CBF9D9A5C4B650A21D816D",
- "legacy_ldt_key": "3BC3B57EA54A725859EE818DC6AC4B7656B8DBED6248D97E10F01FFC98D4AEDB2EA73381CB52541B7ED766F7C9B83724912FD12452BA4D4DD65CAFCF8F773708",
- "legacy_metadata_iv": "3B9895E1230B86CE0AD44D20",
- "legacy_metadata_key_hmac_key": "33CC3B257D39A77206E27A0A2835A8FA60B9C4851749E8144FFF9A86DB107EA4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F352",
- "expanded_salt": "744E53ECA41158F698BB6DA7D5734B54"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2A33712F417FC595323A2553AEAF3A0E",
- "legacy_metadata_key": "8C3834ECD4B80B62C73DD5FAE5D7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0046F9D681D2C4E0C72498A8FBAAD1C2",
- "derived_salt_first_section_no_de": "EF72B0168BA6D97CA213B893275C99C5",
- "derived_salt_first_section_third_de": "585F8678116A46D580709F983F09AE16",
- "section_salt": "DC9C407629A69E06D2A34535529AE1EC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DCB6C1C28098FBCC96E9044D",
- "extended_signed_metadata_key_hmac_key": "595C48BA7B3E4B0B7CC830C94E6DD50DA80A561D78DB2C4045A721809FDE8C9E",
- "extended_signed_section_aes_key": "A0088607B518393A0FC1D3A8DD91070A",
- "extended_unsigned_metadata_key_hmac_key": "60BD2EE4867878A4A1B56EC02A01BB527B79D6F577310A198ABFDB75C159F062",
- "extended_unsigned_section_aes_key": "D1C7FD9C2063E83E91CCC1710F42D3E9",
- "extended_unsigned_section_mic_hmac_key": "F6186E034FCD17F33A6CC50268D53668E13CA5FCD76D1E0A1E4B3A5F3553D260",
- "key_seed": "2DB67C55EECB799A8D4C9CCE270CF1366F646F267125081F5A22A2BB49B1528D",
- "legacy_ldt_key": "4306793AD805A080EFFB24D42E6338E95CA154A21495E522C35082109744B7A3360D5C09AE7846BAC5E5C9857540BD9EEFE5471915FCC1E2199E404C28B81453",
- "legacy_metadata_iv": "AEA38746E8469931C42F2540",
- "legacy_metadata_key_hmac_key": "D5261DE47E9B7536FE71BD9A27069091EBF8B82490FAB3269E5BAACB063E756D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AB49",
- "expanded_salt": "4010E566FC6A0DE0229C8D66001E678D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "72496F8F4CC5B6E0DD84946493E1B0EA",
- "legacy_metadata_key": "C7A75FE4B4DEF8B5C963DD709AF4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "51E97E16762A0C4F91FF81B8DB68C5DE",
- "derived_salt_first_section_no_de": "A09B352525700735A65E555FF2687F4B",
- "derived_salt_first_section_third_de": "88FF1A0A6543BE0835218317A838AAE0",
- "section_salt": "91B553B9C55955989E8F6DBAF182CA64"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EF4ADC2A4274A6DE03AE9975",
- "extended_signed_metadata_key_hmac_key": "8B5F2DC9679C0DA4C89DBE981FD2EC35AD8832B5C094B80116340EFEFD0A9EF8",
- "extended_signed_section_aes_key": "524CA07A2B853AEED97B13EC842EB088",
- "extended_unsigned_metadata_key_hmac_key": "B40E51D8EB8708533EB7802F76D494954F381AF1DBF9EB84ADF489C399F278B7",
- "extended_unsigned_section_aes_key": "2204297F24B010FF0F34249106001CF7",
- "extended_unsigned_section_mic_hmac_key": "9D396BDF9A1D779B89651CFA2DEAAB49A7EA7E742DA322B5FCA3B5868DB31E9B",
- "key_seed": "3CC8917757CD9E4ACA3E3E1B140BA50EC4790639212D36E5EF86BC59720BAA81",
- "legacy_ldt_key": "CAB529B892C5725AB8781C5F59228E3CEA37D993E4178DA32E76B85029988C194117A70EEB5AB504F446E58CD38ACA42D965489D8F9F10B6B3B6BC67B2310732",
- "legacy_metadata_iv": "0532AD5E8BC3E702CFC6B86D",
- "legacy_metadata_key_hmac_key": "85D2C17110000069E4A34918D595106A72B619DDB773A7822F8B4513A5DF0860"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A7E1",
- "expanded_salt": "4065011A43E474AD8494573A17B8729E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0DF92C4E680C04C74F0B5A9A64F5121E",
- "legacy_metadata_key": "53CA89E18A313DFEBFF65C9D378B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "401298BF5A9586B911571990A01DB8EB",
- "derived_salt_first_section_no_de": "5350DAAE6EE773A1B2E0C8AE4F335E41",
- "derived_salt_first_section_third_de": "8F2943961A7BF14F0993C18B64CFD287",
- "section_salt": "87B843618C64E909C241656C613601BA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5CA987D03B11CBAEEB2D6A1D",
- "extended_signed_metadata_key_hmac_key": "7738495F903A61304BD0583EADAB72D7C9F7D5E27DC89B668292D64DD3A4F8E2",
- "extended_signed_section_aes_key": "3B7F91CB8EDDA5203CBE10CB2C3D9B11",
- "extended_unsigned_metadata_key_hmac_key": "2213EF93E32FB058DCDAB013CE349DF075713B4F0721C42D19349E67C1578006",
- "extended_unsigned_section_aes_key": "4AA93D43A5D1740B818037B803F6AEE7",
- "extended_unsigned_section_mic_hmac_key": "A55AFC484E68C9EEBFCE8A847F8B0D7458E32B57F54AA4795091973A54B7F8CC",
- "key_seed": "6A26F58D16C5774C4B741B012703740013771C771AD8DCA41D3F42AF91101DC7",
- "legacy_ldt_key": "3740A5B87A7030A97A0F1779C2A57ED68C10ED1090BA7EE59604FFB0460ED7B6B559C764871A106E601AC85D32CEC9DB0AB3D44E0548F7510F37773256B72A53",
- "legacy_metadata_iv": "DA91B4B5847E5CA2120CCB50",
- "legacy_metadata_key_hmac_key": "7869582F246617EA303C4DAA1DC6C279B7A90088966360649E680EDC1BED252E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AABB",
- "expanded_salt": "9EB7E96A2859D411653ADC8128393F9F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BD0892641487DDF163A3BBC8E7A8EE60",
- "legacy_metadata_key": "D8F79271E523E197A774305578DA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0BC37469173F091D9943482E07B070A7",
- "derived_salt_first_section_no_de": "7D225FC248C8EDCCE2B5D15424974B91",
- "derived_salt_first_section_third_de": "2C20726E38CE145A087D6EF0A3B035DD",
- "section_salt": "E516928277473181A2C7CFBAB681FBFE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CC225F63417D976ED59E4318",
- "extended_signed_metadata_key_hmac_key": "B6CC8C2051D047E6FBBB991A5B1FE4EC7FD5D8F932D230CDEA5F4F2908BE68AD",
- "extended_signed_section_aes_key": "32D712B3C957C0F05F6CB85E63D4D0AE",
- "extended_unsigned_metadata_key_hmac_key": "B488A3EEC6592F0819C8C05CB2B286978B3185952872458F0C2CD2A00BEF505F",
- "extended_unsigned_section_aes_key": "C1DC1AA8EEDB2D21A292741BD081A193",
- "extended_unsigned_section_mic_hmac_key": "10219909E77E06274A69CFEBBBB8EC7CE09158804F58D8F944193F1FED33299F",
- "key_seed": "C6BDB18DEF1858308733E252A08D396EC6B46531DB0B65210DF5A8602B981CC8",
- "legacy_ldt_key": "4FAF893100D06B8335D3F1FD7576C730ADBD4E02D20342D12DCBCB43922D1F07DFE9283B067D08F0703B33288D1418F98837D573E7220F166D9ED1264878784E",
- "legacy_metadata_iv": "F21A973F88F4BC4DB0E97045",
- "legacy_metadata_key_hmac_key": "2DEAC7C7C17E3B7353DBD9787EDE8C92F2B07EC63DD32CC7A50DC4FA4D2E7469"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D892",
- "expanded_salt": "BF1C2D37B7779763C2D6C6128A117BFE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8C47CF7AC0870610EC86348389468E14",
- "legacy_metadata_key": "08BBAEDF8F7A53266346F9F55430"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9C8C22D004695E841CBC2277C9037A9D",
- "derived_salt_first_section_no_de": "6B242A4C0810D8DC49AC1F18B2B0A49B",
- "derived_salt_first_section_third_de": "E355C5D2C5E79A03A8EF227A03B83B07",
- "section_salt": "BE78B1C3CF22D6B14C2AF95A9F48F1CA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C5FAE0E1A8D2E617FF59AACF",
- "extended_signed_metadata_key_hmac_key": "8C9FAF7C0FD1149C68D476EABAF5844D2AD69A7E95995002D2D7B67D182D31AC",
- "extended_signed_section_aes_key": "599F953ACDBBD9D00B6959B3C9504CF1",
- "extended_unsigned_metadata_key_hmac_key": "3694DE1D7E6BF9382C2461B0AE08D5BE6C06149B2770C3C707751C7F91F33E04",
- "extended_unsigned_section_aes_key": "5E5268844B665E18C4A784A91074E324",
- "extended_unsigned_section_mic_hmac_key": "25F5BA88AAB93EC8E1DB67E97EF3533729AA2F28B509711926BC249D80A58331",
- "key_seed": "AF125676CCF170F9F787DB763F98C78B5DC524B68A5BB5103CBE95EE238F689A",
- "legacy_ldt_key": "10CDE82B1CB265CF632A166A8227817443B82BE9CB32A445DF8464284136847AA2ED04BA4F92C581BED3FA5A2D5146253DD3408E80B453085D5A409BC5EC414F",
- "legacy_metadata_iv": "E53A40E9DF8D3578BD8CD35A",
- "legacy_metadata_key_hmac_key": "9D13C15490B57AB02E8DFFE13FEFB7F72C5B951A3007E3850DED7F4A1FE07EB9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DBA8",
- "expanded_salt": "367EC5053CE4B8FEE0F59CB9DABB0CA0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "175A11E34702B89D4BF116BC7AE3FD13",
- "legacy_metadata_key": "58D40B57CAE5C2DC638B23837DA1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E824D27EF8F96A9B39C46F448D6AAB9C",
- "derived_salt_first_section_no_de": "5B5D858D853213A322A9E2E3C96D2F75",
- "derived_salt_first_section_third_de": "358791695064C74769EECFB418024DE8",
- "section_salt": "AE607DDCAC1B1022D8A54EC726D00A9B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2473CE2CA41C33C605A1624C",
- "extended_signed_metadata_key_hmac_key": "64C05D996329723312DA31E2A33156172493538D7E5BFE920C60074FD0EE8B77",
- "extended_signed_section_aes_key": "F9EE674C1D49C2EE26AD93A6BA2F6E5F",
- "extended_unsigned_metadata_key_hmac_key": "80C14175FC2401151A4921E8C09691741EE1D8B21DFCFB912DA66FA727FC2B40",
- "extended_unsigned_section_aes_key": "58B52E172094D59FFB410E8137ACEDCF",
- "extended_unsigned_section_mic_hmac_key": "2932F0AC224AA04E0062B105BEAEB45BB97D6D4DAA217420F3ACB3121F623F60",
- "key_seed": "0AA2FF0E9C81C4046B03438EB20E74C0C416BAC17CC4E96F7FBA043E3F49BF8E",
- "legacy_ldt_key": "071E00685705077D8B34D2166C917FB7BAF237653E7B506B949508F7D829482ED0EE10B6123C18EEA1575BAABEA7832B1752AFFBD8703AC316D1F64C5B7AD1A9",
- "legacy_metadata_iv": "B381F97D3C75722447D2AD70",
- "legacy_metadata_key_hmac_key": "81D1877EF9B973233B532EB672A77098349948BB049CD21984F9606B93315CDB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AFE5",
- "expanded_salt": "C8CCC1A3A24C5C4E4B5EEFB4B7822689"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F9D4F48AEA25858067BD1B8DC8670012",
- "legacy_metadata_key": "D8923929D64A4B59E6E4E1D45692"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1FF476F8B081059BC756017E09F3B87B",
- "derived_salt_first_section_no_de": "3B4ED303664B34CE0483B2790662901F",
- "derived_salt_first_section_third_de": "90FACA24ED433AACB9717829C159D21D",
- "section_salt": "C2EEAABC88306DDEA7A4902D733ADC62"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "086FD771E22BFFA8CD548287",
- "extended_signed_metadata_key_hmac_key": "65055F1A7E37F381E6D0AAF8259F4017264F8B6938F87F44852D72A178B63BAC",
- "extended_signed_section_aes_key": "91EB6D9B5305E427C4C455BC4B262095",
- "extended_unsigned_metadata_key_hmac_key": "C7143C286165DCAAF1813A80736F9302EA01A2D23B59E8BF5491622B32EAC7EB",
- "extended_unsigned_section_aes_key": "A6643279E05F046C5FA7A7FD6641C2F2",
- "extended_unsigned_section_mic_hmac_key": "111D056F12827865A089C39E2E8C3EED740D64BCA627359053D247437CBC6711",
- "key_seed": "E0F17A53F697828CFA5A64B404839B717EDDD9C7BAC5530F3E6FECE3F125CDD9",
- "legacy_ldt_key": "290DE99CD25DEA88145DB5EDDD4376559FDB6EB4F88586AED2E28DB06EF500A80D539A264ACA25F0ECA3ACD1EB72D93D424BA8C32B3A95B79836A3613C88DB5F",
- "legacy_metadata_iv": "962BE57F45FACB68AFB62D22",
- "legacy_metadata_key_hmac_key": "872AA30EFDE77C6356BFCB73AA19B78828CFA4B166F4C2EF126EF1D49F0E1094"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6ECA",
- "expanded_salt": "A26EBAE9DADEB011E831932C76C056DB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "96CC0BF5652551AB3F7080924052CCB1",
- "legacy_metadata_key": "3B68190AE0170F6C0442EA980E7F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D69DA7D98C512859FEB262808D1C4F87",
- "derived_salt_first_section_no_de": "598C252FF95D2344A28D21208EC2E52C",
- "derived_salt_first_section_third_de": "B6FDAA9FAFE7D304C5AC2E6988B0C12C",
- "section_salt": "714C8729B3A78551AF9FBCF136523B41"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3B4FC8B21A4A8DD4D740C9D6",
- "extended_signed_metadata_key_hmac_key": "D526812E8E9FB78437FC48D029B1DED6907ADEE1B6DF29F94508C5F0DEB7459F",
- "extended_signed_section_aes_key": "589F71A04818DA296E1F981E3978BA54",
- "extended_unsigned_metadata_key_hmac_key": "7819395A1DDDD669964A75790CA7D0635D18EE47F0A6EF0388830D9F4CAC0E33",
- "extended_unsigned_section_aes_key": "A07C34706B005014E935D23A747C9788",
- "extended_unsigned_section_mic_hmac_key": "C3C7152279C33E4A9BD644B17FAD51EB0587BD66DE670F7F41C6BDBEDC97749F",
- "key_seed": "CF7C220CC2AE46E7253FA1AB033E798338774FD0FF41E17CCA77CE87DD0ED03D",
- "legacy_ldt_key": "43C20BD13526BD1C40380C7567B0A207FAC4F4A26A9B999E99FDC2476544C881C2AD774FAC917AC24FAB1B764530937382447235C6CE095DA5A865C6394DF750",
- "legacy_metadata_iv": "4C022C48288A95223D69CD83",
- "legacy_metadata_key_hmac_key": "28A7579D40048131A4B2719155231D26223F45D8DC02732662E7F1A89665B2BE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DFCC",
- "expanded_salt": "64CC14001BC8051B681CF0B066EE75A3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E322D58D841F350F64468A426893AA2C",
- "legacy_metadata_key": "FB5CB50F3B379F129538BE1B1699"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4C29F4DDB0A14CF370932FAD5A6398CD",
- "derived_salt_first_section_no_de": "E94377E1E414AAA56E648F955B4DD0B4",
- "derived_salt_first_section_third_de": "58DDA1936B1808B19F9045DE8E7E5179",
- "section_salt": "AE28D042E571B44485432A3ED1F7633D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A72366CF499836FD60DB0611",
- "extended_signed_metadata_key_hmac_key": "E4B642718E08B36D079EE58C7AC23A36A91F7E97D2BF4A16D6EDAD87FBDC3A68",
- "extended_signed_section_aes_key": "F567F4A43E33ADD4D96BFAA3D89C683F",
- "extended_unsigned_metadata_key_hmac_key": "601C745FED8ABEAB5CDDDB3821CE151CEC455EB58B5CD6752DAC7BC7ACBE93EB",
- "extended_unsigned_section_aes_key": "3762B52F339961DAF85A3B7209EFC5F5",
- "extended_unsigned_section_mic_hmac_key": "9CD21EBE34CE212469EA9C684890419149F571795756A662B0BCB3DE7D870149",
- "key_seed": "B4F0923889C4B50358C288091EF2D1E0E628CB9E868FCC547DF264D24A6A312C",
- "legacy_ldt_key": "790DF59583CA2B2B6EFD15D5636DF4D95FD89DA20AA77052BD76BB343495349CDC6006FA20719B6315DBC4209B68DC4B4D1D3517BC56D43559C656AEE5C3EBD3",
- "legacy_metadata_iv": "DFB401B95FED3DF7C0DC521E",
- "legacy_metadata_key_hmac_key": "E424B43C371B47E39CD46A0F3229820F08075E573CF668BC817E151ACDC1144C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3B7A",
- "expanded_salt": "A7FA38FAAF5E85DB0D94FBA356F3FC68"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9D3CFFCCDA347C29AD52C0225D9F8185",
- "legacy_metadata_key": "A520757210D37C80B0945C2B0C0B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3803DCD16F9B2B06E428E49C3274C356",
- "derived_salt_first_section_no_de": "3AD342EF48910761F4FBC9A52CA1ED54",
- "derived_salt_first_section_third_de": "E83FB97F44C9C1BC7A944BEDE82E636B",
- "section_salt": "D0CC9CCC87BC620662933801B9D390A7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "84C72A849975DDEEA12E2D6C",
- "extended_signed_metadata_key_hmac_key": "AC2F91182911C244577D56F30C5CBE1E2EED0CB8D8CCAACE521D66304FE78EE3",
- "extended_signed_section_aes_key": "A5D1FEADB9EE5FDD7B03FAB0981565BD",
- "extended_unsigned_metadata_key_hmac_key": "980F6B6CD39A0637CB4245F0762FD46DEA1628483112E1630990E44A57C7CFC0",
- "extended_unsigned_section_aes_key": "F31151EF5D64A0BA86CBD079679A863E",
- "extended_unsigned_section_mic_hmac_key": "7BE055E054A6ECA4E5835E56E71867D3DB024D7A6CD10F104070B9A5B4841BAA",
- "key_seed": "7B6F73E3D51892046644048D2B13C2FE18DC49C7EEC994039BEE37045D85C053",
- "legacy_ldt_key": "7A0D7A84ECE6782225C88791EF9AC34BF5C8285D0CC6F9637B9DD6C2B93B1300D02173D5A123DF268B52301A6B34FAD53F8391E4F468FEE0183508A7E8F4D17C",
- "legacy_metadata_iv": "763EB70BB18AFCABF678FDA7",
- "legacy_metadata_key_hmac_key": "FFA5B3A71578A1EFB7A05E8A121953203E31230C1BEEAB3917B651222E57F47E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6D22",
- "expanded_salt": "BD0DC1D4752CD3441463C53DE050D474"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2324ED48DBDB3F9A683E29E63C6867B8",
- "legacy_metadata_key": "5C81D8A3C614E2776B4B398C1971"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "05B3BE54B7D178914960477C98F75D95",
- "derived_salt_first_section_no_de": "5522E7DCD74BC4A819F69F18A3475654",
- "derived_salt_first_section_third_de": "97E053BAAAC0EC29218F017A4BECC391",
- "section_salt": "1BAD90FE90CBDADF8212A5CAF141D804"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B59C14E7839F2BEA2915E408",
- "extended_signed_metadata_key_hmac_key": "EFD06891780FEDC5215DF7D5DA6E1F201A9101AD9981FD992CDB6462A3A4930A",
- "extended_signed_section_aes_key": "657ED5BF88674D510C1A4871EC7FBB89",
- "extended_unsigned_metadata_key_hmac_key": "EBFA4BFB7C6B524BD4CCF39638A2E1EC197628457D60211BA2281BBBC9D2CA1A",
- "extended_unsigned_section_aes_key": "2C801E00F6C8EC439738022BB19C47DB",
- "extended_unsigned_section_mic_hmac_key": "45A1C0A53721FE9C6D080C75828EE5B0D433C052F3EBCA61989507D33487FF70",
- "key_seed": "436581D91509D052A15A6DF5C4BDEEEF0EDFA22BBC09E43400E201FF5F28E1C9",
- "legacy_ldt_key": "B42A5534F223AEE6BA51ACE212637E2370676EEB7AC180E95F08B80A699033F9AB04E77D9C7DBC1E001FB7010BF0AD1A78185679569C5B8F64BD553010B662ED",
- "legacy_metadata_iv": "CF5E3BC6C4CF6514CD5C3404",
- "legacy_metadata_key_hmac_key": "C52A627A6E445B6A856E9753B3B89B0BE8A87CF4E19359CBEF71325DF56BA9E3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C021",
- "expanded_salt": "533C7E4BDC79E9D0BDFFFC3CE4E26381"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DEC9CA377EF58D7C147C82302AE677FD",
- "legacy_metadata_key": "4829D4F6BEE24828C6C5C9610E8E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "204C579C524D43746DD894013A549DB9",
- "derived_salt_first_section_no_de": "308C930D1664408AE74FEB8A067AA166",
- "derived_salt_first_section_third_de": "B64FE6BD337142ED951C8654067B6A53",
- "section_salt": "6A3FF645AEB849A7D35D0786255B501C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "890D4709400404E2F1906473",
- "extended_signed_metadata_key_hmac_key": "BCA6F26575E144F0778DAB024E09C5EECAD18AFD6342730F36571B39F9DD6342",
- "extended_signed_section_aes_key": "02F8A5B0FDB10360AF17CB5BFC415B8C",
- "extended_unsigned_metadata_key_hmac_key": "0ED037B2B3E5C6FF00CD5168F274D37E0D4AC1482DB09CA5D156E8A73F63E2E8",
- "extended_unsigned_section_aes_key": "29A32CA0F420E038379332DEE5CE1763",
- "extended_unsigned_section_mic_hmac_key": "A68EA74FF7EA5895F5400D858E5281E9C61242ADE7E31FCE2B33A38ADCB00505",
- "key_seed": "1E69F82FA8E2D300976613000CC071B043ADB4A445C7B8E3B2FCC815A8F6BD19",
- "legacy_ldt_key": "801EAF51419224A1A1DBC5355F62B503AF2C10CFFD4BA3DA1E03B475C652DE0A8E32B5B8C35DB6DAAB661F94FFC22BA0366F1459A7102D19145821C3BE292872",
- "legacy_metadata_iv": "64AF8B00F926803CE51F6BD8",
- "legacy_metadata_key_hmac_key": "0CCD51AF416288CA36E2D64FCBDA7D28D65381AD671E825DC91F0BAAAAD1A431"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ECA9",
- "expanded_salt": "8A04EB0887F7FE0FBE9115686F5A07C9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4FAA2501FA8C3BC3EE2CF72D526A5369",
- "legacy_metadata_key": "71FDA74DA0F6EE81E5174709914C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F19F2501728E014DCA41C88E94656724",
- "derived_salt_first_section_no_de": "8FCB363167C2BDABEF19D838BCA5FA5C",
- "derived_salt_first_section_third_de": "252E6AF08914429CD35F8B6EECBB8C2B",
- "section_salt": "19F0C2F78A8E1325D7C5DC9AD2D15A79"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3C82CAA109FCDBB6839221C1",
- "extended_signed_metadata_key_hmac_key": "484154FBD8EB4CBE18A13E2EE7CFD03CC4C48E3DAFC1D4B6B4D5034C086B68E9",
- "extended_signed_section_aes_key": "BD0C223880CC931F502A0A9E0E7DAC4B",
- "extended_unsigned_metadata_key_hmac_key": "97D89C22DD12CF0D83E8AE74CFCB9297C8395B32122EC87992EBEBAAE7894A13",
- "extended_unsigned_section_aes_key": "C5AB96E332980B05EFAB3339570498CC",
- "extended_unsigned_section_mic_hmac_key": "C9843DB4032DEFBEB5217C7C4AED00AB53556608CAE097D63D9B7C1FDCAB1F04",
- "key_seed": "603725147E72462A3171B0B5089B49BC2F4671EF1C61FEA310228E8295E5584A",
- "legacy_ldt_key": "2C7C4F41B7B86E9D5591CC68DE1D021ACA45578822AE25CEC95B7000A5FDC998A1FDB4D1046D9542CFF882C8FD0110166ADB0533D355C15D04C09B90753055AA",
- "legacy_metadata_iv": "9EEA774F0B6E230C68736130",
- "legacy_metadata_key_hmac_key": "0650A8268F751426D3E27DCDBDB9A728D845D6DC8CDF3949E5D31D8C84A5F440"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3556",
- "expanded_salt": "4E38BE8DEEFB0D4C2BE26AD501C2FCA5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E1958BE55A85260156967A3A358B4D94",
- "legacy_metadata_key": "73A4262FB214244BEB150909995D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4F9FAD7E79F31C5902D398E2279F3C06",
- "derived_salt_first_section_no_de": "0EDDCD187F8BC14148131B5117AB0045",
- "derived_salt_first_section_third_de": "7DDEBAD74CA444A24B2E9626B4A7DFF7",
- "section_salt": "3CCFF6AE3CC550671F2583A7FB0CC5DE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2578EAAF79738115E1FCEFFE",
- "extended_signed_metadata_key_hmac_key": "0564B8B4F3FC1B6B47A1BF0E79B7CAB023ED5D30794AB28C516DC663D6B94C91",
- "extended_signed_section_aes_key": "175328F0F759918B7027BA6AE2A132DE",
- "extended_unsigned_metadata_key_hmac_key": "20AB3CD10F7D81320363BB7C350FAA90F92A0F39EAF558B7E38E54374394D906",
- "extended_unsigned_section_aes_key": "0DD03DAC75E3E771AD0E660D56DC2027",
- "extended_unsigned_section_mic_hmac_key": "DA159E128E1506FE2AD532FB1FD7731D105E9DBB44C266EFE4204B07933D654D",
- "key_seed": "4A665222475E28FB85592F469A568FF70D99D8ADD39C2257E4751C1934BC7143",
- "legacy_ldt_key": "6FE5B98FB9DCCF7918347CFB9D00CAA331ED5B44DDDC904C936875BEDFB91C3B1A6352F263D7AF5917911921AB553C9551E451905F488EC55911289165FD36D6",
- "legacy_metadata_iv": "60363189428B4280814853D4",
- "legacy_metadata_key_hmac_key": "9E1232573038DAE96DB69C6A5DA5CEC6DE763D68440D630271A05175BD2C2EFC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C843",
- "expanded_salt": "71F89E611A931E2410404AB7CE60DB46"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F21780E535A36AF242B3EBE4BCAC2AF1",
- "legacy_metadata_key": "2707ED14993951D64405D839DFD0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7BF5C0B85C9FF33870CCDC5DFE6A7F47",
- "derived_salt_first_section_no_de": "D83D0A555E42106464509E3219E6EB15",
- "derived_salt_first_section_third_de": "34809CA554A90A333F104136FC2F55F8",
- "section_salt": "601FB0D36A90990BF4E77212FD72FA62"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4E03EFF0685EC3635875EAA8",
- "extended_signed_metadata_key_hmac_key": "EC34BCFD3846F9D0CC13613988265066B3F945BBBCF8A25D97A39E70EB35C900",
- "extended_signed_section_aes_key": "9033C45889030B98FC2B09F3A9C2175B",
- "extended_unsigned_metadata_key_hmac_key": "34342EEF04AF05B1474213CBBB6450BB7850AFFE5D5F61C5CCD309A4544263D4",
- "extended_unsigned_section_aes_key": "C0AB91275E07553B6D8835CA2D47EFE6",
- "extended_unsigned_section_mic_hmac_key": "59D6B373F2A946B530F0A90F9831E687734B8DD1E3E5A4F65B1E633C221E1DF7",
- "key_seed": "A5507B5CD84A68732E1AF9281D2A5940082B8B01AC786856D3116B584431986E",
- "legacy_ldt_key": "443352F9EC7577775C37348A77F0AC04FD863214D9699ADD5040DEA095F6AC2D4EBD709F80F421A6649FA2B1922A73A41527D6DED97841E94E3CD1CDC3F9FB2B",
- "legacy_metadata_iv": "FDA16D9016D2078EF504F796",
- "legacy_metadata_key_hmac_key": "D6282B1828092D03921D24E0E27F65D6CC181241928B8C82AD6B56E0A8905B9B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DD66",
- "expanded_salt": "58AFF8E8B82D2D75673632C8EAB4A1D5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D2239B190CAB2DD1AC660EFD7BC26760",
- "legacy_metadata_key": "FEAC5CF92D6E93FB01D0E7BCB418"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A7101DA98741CF5102844ABC0EFA06C8",
- "derived_salt_first_section_no_de": "E7B55B0BA989B014C362246CB5FDF318",
- "derived_salt_first_section_third_de": "CAEF69DCF18471B2F938AE8CC2803C6C",
- "section_salt": "6E8C5743215F4CB73A58BB73D16EB21B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "01EB8E4564A40F2124C62B5B",
- "extended_signed_metadata_key_hmac_key": "1132A157376A0F945A45BD16CE869F2580F113F6BAA1C693E99F55F932C47C3C",
- "extended_signed_section_aes_key": "69F206A808B858F190795848FE83C1B8",
- "extended_unsigned_metadata_key_hmac_key": "751CF52AFD8F6775A60B2327F3029E5D0FD1CD3E07235389063D6419EC4A314D",
- "extended_unsigned_section_aes_key": "8E168A2FD05A5F982E5DF34E424AD05A",
- "extended_unsigned_section_mic_hmac_key": "9D1E1DE853FDACFC2F28B15625AF8E71DAFA9C53593ED8A7F05FE7A902316CC9",
- "key_seed": "9E7DD8A555DAFB73F0CC9FCEF04E44BCB3A584F78BEA24E36E4FB58C5CA93715",
- "legacy_ldt_key": "AF41FA746D8386D069414FFA964F319757009063AA95C5660669F0BD0876BF3A525E706C3C68D22AA53721A0ED427F674FC353C6CBCD39A03608B6E94C1342F5",
- "legacy_metadata_iv": "EBAD6CC126260CE6F9EDFD8C",
- "legacy_metadata_key_hmac_key": "9CE9FE619F2C3E601FBDD07F8667AC26582D76343C62D769A97BD028EBFA3A28"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "903F",
- "expanded_salt": "8EF3278DAD107969A896480077A9CE78"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "07A2946BB76BA1B642EB9E80397359B8",
- "legacy_metadata_key": "C437D51384FAAADC10A45852EE15"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9363F16F6D262EEC27B3D519EAE1664E",
- "derived_salt_first_section_no_de": "980B95751858A73B1FFF7A6A87621E44",
- "derived_salt_first_section_third_de": "3B7F52D0034D6497D33DCC76D1EA3E20",
- "section_salt": "E5ABA97A52173EB2179C67BFC2D47F0D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "26CDA7597DAB7EC45EF1BBA9",
- "extended_signed_metadata_key_hmac_key": "E43D14E4259FEDD4380E9EF81845CDBD95F0B18304D5AD6B1D5A00BDA9901218",
- "extended_signed_section_aes_key": "2F8BCFB7D46046DF703ECFE7CDFD3E78",
- "extended_unsigned_metadata_key_hmac_key": "E080C8FE7121A385FCB737F703D1A36F39F94ED79D8C305B754805F1C8181189",
- "extended_unsigned_section_aes_key": "8EB703B9626DB3A0889F04326040036F",
- "extended_unsigned_section_mic_hmac_key": "1CB0514E607AD0965B2D5B3888FCBCE5CFE04A784414255C26853898408161E3",
- "key_seed": "316C8B2339745C2B5ECC220442255C99ADF1BBF614F2149420F7B9D4AD41FCC3",
- "legacy_ldt_key": "E82B979EBF823B17299BAB8691A4C415D5B5E36D56E7C22DBBD5A6CD476D80258BEB67B0A021CA4A2AF566013FC1064EE0563A068AD979F7A5C37D445F31A296",
- "legacy_metadata_iv": "8C939FE7ED967BF1BBB4B7AD",
- "legacy_metadata_key_hmac_key": "CDAACE8E864B589CE6CA26E91A132136F2129ECE0381E82F9BDF6786CD90F9DF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B4EE",
- "expanded_salt": "79905900B27687220D7886C174B618F9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "57D8335801763E1A7376D05A21612B70",
- "legacy_metadata_key": "8DC0737E8ADC3D8F5210D2704F90"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2C7EC111BE51BA525EBB7E73C9EDE742",
- "derived_salt_first_section_no_de": "8C9911A99B28A666F58862975B533D60",
- "derived_salt_first_section_third_de": "BE562B916DD2F2DFC960180DC2B0EE26",
- "section_salt": "C1A0AEFC1EDCB12861A34BD36735AD69"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A5BBAF1199AFA5CFB0DD8192",
- "extended_signed_metadata_key_hmac_key": "4C8309C5DE68A5772825B8F667AC051CA7940EB76F671137D0502B48B4D521EF",
- "extended_signed_section_aes_key": "A19AD9F34BDBCA6010DDDD931B4E3394",
- "extended_unsigned_metadata_key_hmac_key": "7248F0A3C23920B5269ED55C4612A26C618E66EC0D7FDDA969285442BF1792D8",
- "extended_unsigned_section_aes_key": "33319EB91FBE406FADB18F46C53C0C33",
- "extended_unsigned_section_mic_hmac_key": "7780632B28105447783C7A797A86F3FB5073B481DBDD474B80058F8DC8315978",
- "key_seed": "AEB57961955F0F9CF699F6D9B9CE8DAD1CD8AFBFACF136A00CA58FDDCF3013CB",
- "legacy_ldt_key": "422192DFBCBDA36105B580CB3078FF908D3BCF0FD5136815F4606DB76E0D92C2C3025B88C0A375CF2449634F4AB8F352C9C969D8ED80F61E5459A9CD1B66E9D0",
- "legacy_metadata_iv": "38A3513EECB9169A2956CAE7",
- "legacy_metadata_key_hmac_key": "96DB14BDB2D2A1FA05B1C30A5883B0020D0C0284F1AFEFDFEF41C87043F9350E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B9D4",
- "expanded_salt": "3E2E83E28B5E502F9FFB39BEDCB6B2EB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3FDE1E98B2BDECB6D1EF6EE58628D066",
- "legacy_metadata_key": "798EEF8843EB28426B59ACD890FF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D3E76984748A134AC6AF5089F1BBB1CA",
- "derived_salt_first_section_no_de": "A4D93B3FBDB681AF31058E506D3595C0",
- "derived_salt_first_section_third_de": "882AEA590B25F15E715767E0683A3C4A",
- "section_salt": "6074EB15501A362969EF09DCAAB7DEA2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "18B87628977EB2BA2BAF77F2",
- "extended_signed_metadata_key_hmac_key": "32FEF10EFAB6E92E0956CAA685689178A6B90FCC479F498A881FD94E6577809C",
- "extended_signed_section_aes_key": "0DC96E67170B64808D145E161552EF13",
- "extended_unsigned_metadata_key_hmac_key": "0FDA5BE22B242EDCD099AE9B5038D01D1A402F49094DCD45EF67C6D1F7134CA3",
- "extended_unsigned_section_aes_key": "2C052FB70E353B8A36F73C2ADBC550A5",
- "extended_unsigned_section_mic_hmac_key": "1ACEFDD9D53F76A42D12220A3F05C67E9D88E91780A440BBCB43BC56AC9B098C",
- "key_seed": "90724B8AED3C3937B2C630C2DE66E4ECB4D00C034ACF7A42298541B7F05A8B5C",
- "legacy_ldt_key": "093BB164669DE86A1A4D6492188224DE2FF16D5A7E90A04D45B892A85C7391A6AF14E377FFFF6D033E78D7560948833938D4DEAA6D0B5B19D79A200BEA9A81AA",
- "legacy_metadata_iv": "25D91774217AAE138EAD7C10",
- "legacy_metadata_key_hmac_key": "7A2EA518FF80B0675F7E15010751869FD642F80F0D08FFE87917426C9851BBBC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "12F2",
- "expanded_salt": "7B76BE0F03DA9B341D97B18587AE6CD3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F6F797B5944F1263368ACDEEF2BE4F7C",
- "legacy_metadata_key": "620EB9654B797E2B639C231BE6E3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4D5FB77981BC3FCCFE992C4FA97C0534",
- "derived_salt_first_section_no_de": "42F21E191E52D90A9538515D5E52CB09",
- "derived_salt_first_section_third_de": "6446B7929CBDC13D9EF2FE4110B9695A",
- "section_salt": "56AAC5AB36FB42D712FFE1749F6B2DEE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FE47AF4A4364BC74550B43E1",
- "extended_signed_metadata_key_hmac_key": "383EA91C1FFB55FD1C159AAC99FF6F2841C9BDFCAD3289F5C9D7D253C6C53121",
- "extended_signed_section_aes_key": "FFCDB45BE8ADBB0761C71D4C5CCBC5E9",
- "extended_unsigned_metadata_key_hmac_key": "729D30BA4B3286CD0180070E4F57A6982EB4803B6FE3F156D4A795463376D936",
- "extended_unsigned_section_aes_key": "9AADC424C8A24DF35167CB4AC73CFAD3",
- "extended_unsigned_section_mic_hmac_key": "C279F771661ECB69780124DF2F0F8DDC29C054714AD16E590E1CE38EFF9B728B",
- "key_seed": "2190F3F4461DECB74FFF4FCD788AB10BCB9B0008672AEBCAB702B6867F00C5DF",
- "legacy_ldt_key": "48F701F9EF307DF8233BF8EA224943FC3DA915E718F5DED64D5755DB107119DCBA576CECB37FED918879A6382D5AAC0AE18172C8DAD75A2E9F4C94F57F8614B9",
- "legacy_metadata_iv": "F358CF5323CCB22C2D840F4B",
- "legacy_metadata_key_hmac_key": "D8F4936B8E50DC8B01E2D0CFEEE3BB3B377E24A9CACAB4BE982989A5AACFC200"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BFD0",
- "expanded_salt": "C674792A365818F44C58D055BDFD093F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D656BE01917A87B25D934CD98420112B",
- "legacy_metadata_key": "976889EC3F55D7B48E0A7EB11D7D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AE71544AB6CDC48D05AA4163231B1DAC",
- "derived_salt_first_section_no_de": "152CF257A3E41D7E2DE515F07F7E75B1",
- "derived_salt_first_section_third_de": "7B0DBA8946ED6757F5DDACDE2CC802A1",
- "section_salt": "AC1A69C39970E9603E7ABA5CEBF22A3B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "373DFC1519C69FB5631C8D20",
- "extended_signed_metadata_key_hmac_key": "FCDFFF6861118264175E802DB3F61DC0582A04597749A0377F5E175AD5BC1920",
- "extended_signed_section_aes_key": "FEF8A2C273A5A5C49315478E3D00A240",
- "extended_unsigned_metadata_key_hmac_key": "66DB7CAAC5254A177C869B14B8D3D5FAF9AAE2997AB1CABDF9E9429DAE706D10",
- "extended_unsigned_section_aes_key": "CFE6B1A10F18C3130A1062E5DFBA9025",
- "extended_unsigned_section_mic_hmac_key": "03BD63DDC1FAFD082EC18670F09C9106DDA882ED3F341228DBB41EC61F04D0B7",
- "key_seed": "B6212598C92A26D83F1216C891854FFB39305858A0EAF6A64E6F579C6B6B85D5",
- "legacy_ldt_key": "05C6FA6DE0F80CE4B314EAEC9FC9A156A927B30E24B8968A738D839CB4C7E166B1C765E847E8F03B765A2306785213C62DDC62F7EE5756C60EC3E00B112F2143",
- "legacy_metadata_iv": "EDEE8A1475FB9EF70C634454",
- "legacy_metadata_key_hmac_key": "487D96126AB93D03D5C36CD050BF17EB1E238E05041296A7401E24B37D1C599A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "65D1",
- "expanded_salt": "55352B667D13CE214411E833A1C38546"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8D870384E6774F8F19AE1364270C2F80",
- "legacy_metadata_key": "35383F451DBDCEB5656F5C6CC0B4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0709896E5A71A5CF670E9148ACDEB68D",
- "derived_salt_first_section_no_de": "0DCFCB4005069A2299A25BE299DDB422",
- "derived_salt_first_section_third_de": "FB5DA91BC2519CC467695037460012AE",
- "section_salt": "71DC0848B8EE6D62F2B17F4567011C77"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "60DC1C9AC6D2CA61862A8E14",
- "extended_signed_metadata_key_hmac_key": "B34431676480382D97C3159E11CDD393361AAB9CECAB3ADBA20815A478C557EC",
- "extended_signed_section_aes_key": "B89346CF3DD940E2D0F59244E0A25606",
- "extended_unsigned_metadata_key_hmac_key": "A23D7CA3C1705145EB5F3D2690180018DD5F514E21FF50EF2791B4BE147D05FE",
- "extended_unsigned_section_aes_key": "F80E44EE66A2FFF82742657551AFF535",
- "extended_unsigned_section_mic_hmac_key": "22387544A20A29D4DDFF58E398A8DC9203BA23B52945CABD75781189B5D78534",
- "key_seed": "CE711BB0C457FAB2F0C2F43CFCAB55302AB0CC5C430A622FE9BB5EFD2C98697A",
- "legacy_ldt_key": "199BF5382BBA566FC33BDAC7DCCE93931CC895E48CE47CBE45A4E32A42F7A85FDC8E1E8B3E803FB5AE4D57239DEE3CFE06F66EF2240A5F3C4E0ED18DB0333C18",
- "legacy_metadata_iv": "7EEA057D370194FC8816064F",
- "legacy_metadata_key_hmac_key": "23E8796F5BCC3E0E444668242D572A70E4A50A5F0D67FC0D6ACE321F5B672F3A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1F7B",
- "expanded_salt": "5895EDF398B9B39B1709060E1D05164A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "87A4DB6109CF1A38761A7CB2CB726E0B",
- "legacy_metadata_key": "AE90E2ACC970ED75B1E202025C58"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4C8084F5B4EB3FAB39AD1E41B560F93A",
- "derived_salt_first_section_no_de": "EA22819CF37E48D08D9D6C03B673D325",
- "derived_salt_first_section_third_de": "AF4688FB9849190BD9C563B89D5FD7AF",
- "section_salt": "214A96168B5C244E40809F4FCA1861AB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5444174BFF3869CCB708F1A4",
- "extended_signed_metadata_key_hmac_key": "D7D7CD55DA9225A5C929D741D9C932B412E82DE2C000B0E3CDF57D48B6A69A38",
- "extended_signed_section_aes_key": "DD0F786ED6923E641CAFAE66B83D473F",
- "extended_unsigned_metadata_key_hmac_key": "7D2D26A294AC2C9416B536E858E26A15823B4498853CF28B19272AC2839F3098",
- "extended_unsigned_section_aes_key": "5B03551A621CF2A7A18018D0EFCF063A",
- "extended_unsigned_section_mic_hmac_key": "A685116AB3FC756D7EABE2B9B1F8F100C9409EBF1D668E83328416E473B4696C",
- "key_seed": "36AE19D281B5DC06A4FACB8D11468CC9AFB655D17F8AB0709F1B7E0D71240F49",
- "legacy_ldt_key": "71DA0B7B8B3A97B2955ECD1AD00B054B1A019EA6CF0B8E2EA69CF33A6C9C21B801078C10E85CB7484B11D3FC7DB51CD88C9B9253CD2C477E8E5E81E3F90BA1A4",
- "legacy_metadata_iv": "769B8EE0642EA654AF88897D",
- "legacy_metadata_key_hmac_key": "5344B21EFC1B31FD09B4B3A7D9C4CF89868023DE1BB6AA466331456D3A14E683"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9C30",
- "expanded_salt": "3ACA5B5846860166C7A6640649B3C563"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C1154969C345D61CA4FD0E0C04348000",
- "legacy_metadata_key": "5B67D89FED886F946CEF8A570F2E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A220FCF5A8C2A17ECFD9ED2A2158C7D0",
- "derived_salt_first_section_no_de": "7586BB67F4DA4F5C4FD9F9F1B0778CEE",
- "derived_salt_first_section_third_de": "AC7A4F54B6D0891B9542BEAEC525D484",
- "section_salt": "A36825800AA1CC36EBDABFC4CD620D08"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "709EAF11CA3F1D7A3ACAD8A8",
- "extended_signed_metadata_key_hmac_key": "5B7B06848FD2A1948E9204A58A94CA6256672CD05FA653CCDB29FD159B6D4077",
- "extended_signed_section_aes_key": "09A4BB40D2707C71BD5CB7D2BD5AFFFE",
- "extended_unsigned_metadata_key_hmac_key": "637184B57D64C0C0645ACFBAFB8390446B20F86E1F554695609E2F38E5218F3C",
- "extended_unsigned_section_aes_key": "1084246E83EA8A0174788A72B0F71798",
- "extended_unsigned_section_mic_hmac_key": "C4D6056C780BC678A54E67A6A3BBE17CF3272F9F300C62F7A003DC8007A43578",
- "key_seed": "96C17FC9941B3372BA365D10C0605F9298FF8BE1CFB8F9BDBD76DA5158644AD5",
- "legacy_ldt_key": "31310C259F7B0B63FBDA0CA04D6765044ECEDDEED353CC5A2B016C6E692171832D5D3AC4A6305B8AADCA807A5848B13312E7AD069819991286F16EC987624A93",
- "legacy_metadata_iv": "57EDE9A904924BC6A43CB997",
- "legacy_metadata_key_hmac_key": "560F757889D8D542EB5DE5ADE5C5DA8D257D63F8C3CCF77439607A8B8E7B8050"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8BD7",
- "expanded_salt": "BE372549FBDEBF21C82BCE8525A8179E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A5D94F1A6A5336092839056E5CB10F84",
- "legacy_metadata_key": "CCC904F21ED040D104B2C9B6030E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BF97529E222F89EA53D4E426A582EE55",
- "derived_salt_first_section_no_de": "DE0DCDF963D7DCA28ACF8C2439A92A96",
- "derived_salt_first_section_third_de": "D5BBF5690CC0B960C8CC079C8099D89F",
- "section_salt": "670C28C99314589D6607659C519E65B0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D700AF1A3AD809B9E1D686A8",
- "extended_signed_metadata_key_hmac_key": "CA88A685AC60661A89B34B8C6DDF9062F20C5701A532C0B55D41A234657E85AA",
- "extended_signed_section_aes_key": "7795A84890AEF8077B5D265020EF6AC7",
- "extended_unsigned_metadata_key_hmac_key": "73FCBACAB9863062A2D7ED9D57A0FF9B2A33F3CE26D8041A6E3FA47D53DE2FA0",
- "extended_unsigned_section_aes_key": "F90B097038B480ED4C4BC24201F85C87",
- "extended_unsigned_section_mic_hmac_key": "4919C09E38EC3F7A0BCF47F029FE4E396A73DD353038E278B451794B2D624D15",
- "key_seed": "5B693824CBB5E16BE4B7298F05C1A33D3D574B012831DE0D7F80757F9FF22833",
- "legacy_ldt_key": "4600E620D30BF254E4226C7C8DFE86A599031D67E4CE639CDCDC2274C075868DCC2AB65A66A5CF90F1B1172326C7DE1BBF881FED60749951F39059189CA88514",
- "legacy_metadata_iv": "DE6A31A99CD2044345E37544",
- "legacy_metadata_key_hmac_key": "42299479D9E3CA6C253D9A6B58F39A7148104A15925A71370E658ABBFE9C2048"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5260",
- "expanded_salt": "1CA43CEC9780C584DA9F617BE5651B6A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A143F1052EBC4176C3F332F8226805A3",
- "legacy_metadata_key": "F01FF46E82D82D4A15F7C52AD13B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A0A34FEA9904F5C37FD8BB64F14A0584",
- "derived_salt_first_section_no_de": "CC309F646BF7A01E4C10A9E7D4856D31",
- "derived_salt_first_section_third_de": "4AB711D7C1CE37FE6774D7F3BADCA139",
- "section_salt": "D96B35B77F9B0AC27C1C6569D55D5FD8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7A5251EDE9E7FAE60430BC9D",
- "extended_signed_metadata_key_hmac_key": "0858ACBD1F1E79E9D219504B3CCCC83B163A6764AB7207BB89619A9CA2B539ED",
- "extended_signed_section_aes_key": "C7AFADCF28420301360FB2169A92154A",
- "extended_unsigned_metadata_key_hmac_key": "E7EDDA97DE6EFE038260DCBD8B9EEBA2669DA2AA928E164A187067BC706E4A18",
- "extended_unsigned_section_aes_key": "D8ACB86B3942393A479DD160DB195A44",
- "extended_unsigned_section_mic_hmac_key": "1DBBC9299EFEE7537A0F6B7DC1B766C380C99E804BCCE55FD450F24238C95FEB",
- "key_seed": "66B99EEEDDEF4A51DB7F2A38DFEB4ADB81E6FC18BA65661C4DD0DA0626AFFFED",
- "legacy_ldt_key": "CB9519ACB39A422AB003007C6E48CEB223B53EB855CBF913BFE679EC3C4E82FE598F3C87A86D3B93DAE1E0DC26AFE014FFE3974DD5D4CE6F575A5B37FC9FB28E",
- "legacy_metadata_iv": "4638ACFDEB5E36565EF2A043",
- "legacy_metadata_key_hmac_key": "F7AA17DF8C384F808A695B8253A21A23B5F32D85865F1A079C3F1E35E4F682F4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F7FA",
- "expanded_salt": "36E82EF34513C272831F619F95613C85"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8723427961822C812282C76E7954CA2C",
- "legacy_metadata_key": "DCB93FCB3E7AEAB99023E63F8EC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5441C12AB675A41F495AE4DCC940360A",
- "derived_salt_first_section_no_de": "157D174323A91252E2D2DADD19A8E2C3",
- "derived_salt_first_section_third_de": "4C6BCE7EA5C331A689001B6E56118018",
- "section_salt": "0906CCBA72FB2C653E26F79C85F31AF6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9D03944A7C17CBAB1C63DF10",
- "extended_signed_metadata_key_hmac_key": "A943A019934544417E53C968AC7DF9F678471DE1E703CAC6EEF3310181E1265A",
- "extended_signed_section_aes_key": "79952CB6511AD3C2495704B7A4E36C34",
- "extended_unsigned_metadata_key_hmac_key": "5A26B4F37854B5F20B8A18D0D2E990BCB566C0C00E38CA61FD76CC903F46AB04",
- "extended_unsigned_section_aes_key": "F20488747ACC6EA5D6B5D97FE5CEC2F1",
- "extended_unsigned_section_mic_hmac_key": "25F6F93966ACADD9312C28CA0016597F1478365853C744DDCC4A2F26B600B8E8",
- "key_seed": "6D0B3ED1361C37EFF02B89112383F831823BFFA3EBD6C5F396FD43A012421F3E",
- "legacy_ldt_key": "CE212A7B56B1F958971B20723156FF999D910A54A9AB748842AC8D0D254EA54DFBA651EB8DD26284FF4C35C4B376EF7B8A4835E6B2A5FDC092E4CE4D516429E1",
- "legacy_metadata_iv": "6CB0EC70F20E5156125A8851",
- "legacy_metadata_key_hmac_key": "5DF10EEB1E2F9DB1DCEB8ED51B1FA6D3B552239991B9FC23C45CD3E7CFC27D6C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E719",
- "expanded_salt": "5A7A6FA445B45ED0D9C9691B01703188"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B02020B6170AB42E0F251FBF0DD07BF0",
- "legacy_metadata_key": "785F6CA424102943A9E4B1691C8D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "07510DAA2C60B87D92059C10F7DF23C8",
- "derived_salt_first_section_no_de": "E2FFE444DA8F84EE5BD7167AB3E0FC94",
- "derived_salt_first_section_third_de": "09E70F27BAD9EA5089AE94F8A0673CFD",
- "section_salt": "128C8DC9A8D7A410373816018EF150D0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5F3AA6DA35302DC89793A46A",
- "extended_signed_metadata_key_hmac_key": "7F806DB806D8CAD47229179CD9BDCC6C600510EEB8A246A734F340790245A2F1",
- "extended_signed_section_aes_key": "9D361042ACF370C37E19F84B77607E9B",
- "extended_unsigned_metadata_key_hmac_key": "ADA10F21AF479BF5FD913F5616651D8177CFEE2214E39BE76FEF26453B11F50E",
- "extended_unsigned_section_aes_key": "5A01C7B70922BB6104C61958363D6DB4",
- "extended_unsigned_section_mic_hmac_key": "21D3481376D7435D7AE6BD2E0E2F415207F1DC864E987E164A021AF92D18AB36",
- "key_seed": "61626B959C868CA88C4CE2F54183900043AACBFA58E3680D5C5D799515A9FD59",
- "legacy_ldt_key": "4C058A76BDF0CCE3345EBD2E3F975D537B3AA98061CA300F61458DB6CBE8843053CC248A0ABD2896A392AB6C70DFEC67F66EBFC99545336A9274F2420EB7C8F8",
- "legacy_metadata_iv": "6F90A618D9D9639C7580F97A",
- "legacy_metadata_key_hmac_key": "65828F6F5493975C50E9EF0959B21FD823BBCD3ACBD791159596DF3060B10AF9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A315",
- "expanded_salt": "3EDD51667F605CF640A849038091E99A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "92A373CCBB89BD56C05DA359A98FC1C7",
- "legacy_metadata_key": "7AF0D777896F9A9ED48399C63AEE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "74EDE3BB2E3A45526FAD05C5C8F1B5C0",
- "derived_salt_first_section_no_de": "0CC9F431621114F4BC1E16BBBBA2262C",
- "derived_salt_first_section_third_de": "AEF5607F8F8CBA7B88526462DD4E6C2B",
- "section_salt": "0172963C0E31C46897A566EB00CEF804"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "064BB1C493C076236973E241",
- "extended_signed_metadata_key_hmac_key": "13A9335769E158A42A39954E323F6449C7B5D415FDEF61202D23BD7C3BCCCC2C",
- "extended_signed_section_aes_key": "95D91BB823440E97A706D76BA32B1FB2",
- "extended_unsigned_metadata_key_hmac_key": "24DAA42AE7CD9142A28CBF8ACB5C64D18D2B7CC506C38FBFF762C6B5CC5F712D",
- "extended_unsigned_section_aes_key": "D87D847A54F7857A7762ABEB88BB99B5",
- "extended_unsigned_section_mic_hmac_key": "C845BD759A3BE8C7F9FC7279562C98672945688373E7C56B64C565EFBB91BB41",
- "key_seed": "08BFD602C7C507AD0946BAAD305C626BE997330F6356BC560B58CD79B87D3FA2",
- "legacy_ldt_key": "C84716E5247D009506E5B2AC8DAE74FABC130F0EF9AA510D4D72C4CB23033EDACA7C53EED87817DC9AC47180959C2FB60190A53C1858F5572DEF9B6DDA3DE5F4",
- "legacy_metadata_iv": "EED1277E545C1B7A5FCDFAEB",
- "legacy_metadata_key_hmac_key": "E91B4C4DC30985F474C263BA06AA9AEE73EDE68C94325EFA2D077DA40891B38F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B835",
- "expanded_salt": "2704FE4D77DC45EEDA07E580FC31F27C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6A7D44608090D0F74E31D69726D4BF85",
- "legacy_metadata_key": "2D4D7D34667E8D70ACC5495961FE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "076F69B0DFF9B3D09073CC85F5BB33B4",
- "derived_salt_first_section_no_de": "EF5E1E95458894D8A2B23EB5FB0AC65A",
- "derived_salt_first_section_third_de": "17CCA451AAEACB3192C207E47BD7D50C",
- "section_salt": "22AA1B1D8CDB2CD835AE57FCC3561B56"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1DC90BAB1DD3298A83516988",
- "extended_signed_metadata_key_hmac_key": "E18CF0352076D1124904D0A772E145EA6B39707B5DF0CBEC027CA0CD3A36D632",
- "extended_signed_section_aes_key": "40F3F812D9791EA1C9043D31C37F01C0",
- "extended_unsigned_metadata_key_hmac_key": "B49CFC1496ACADB55667C0CE1919C7F1AE16FF8F7E4F96E472A4D62E1D865814",
- "extended_unsigned_section_aes_key": "5F4D3F7C18E68280E67310D902ED9CA6",
- "extended_unsigned_section_mic_hmac_key": "BB03F74C144AE6871FCAE369D623AAC81F36D7B99BDEFE28C6AEF3A1729D57A5",
- "key_seed": "5AFA5C49CF5F6368091EF538D05A1FC9911DF0F4F2481B26CE192486298BD61D",
- "legacy_ldt_key": "EEFEC61878A2DDDCC00085E15E838B38046BD90F791FA9E30E43DE77A1BBC57EB35557322F7EA96885FD9C2B2D4BED683C8497AC117DFC8A281FD9113FBFAA95",
- "legacy_metadata_iv": "C36CBA45648A207B6FED8E90",
- "legacy_metadata_key_hmac_key": "ABA804D7C957A4EBCA59713F09686398252C5E1FF110C82B6A82894AFE177264"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6081",
- "expanded_salt": "B3C246058D4DEB5B96CD90C273847624"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E55287ABDAF1E3FA563AFF47346DE002",
- "legacy_metadata_key": "5DBB0C15DF02271384FC4E293EC7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2008B88ACDE7BFED6F5C495BFAC7049C",
- "derived_salt_first_section_no_de": "6CDDD2AEBADED9FC476FD7BC9D39D400",
- "derived_salt_first_section_third_de": "5E95AE76C779BDD64FE97F7338D1D2E8",
- "section_salt": "A998C2B3BD435E9F9DEFDE792F2AE946"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "42F1A332486202FCF24FC9A9",
- "extended_signed_metadata_key_hmac_key": "FCBAF34DBCBD86C42527A8833FC707FBBD3208D378625E9AB3EC05AF7B06AD71",
- "extended_signed_section_aes_key": "76D6F20A28611D0A5DC3463FB609C020",
- "extended_unsigned_metadata_key_hmac_key": "A0DAE3598F481FA876A9BC4E833D8412C8CE2F633E78E94A55D1BB2CFE52E2E5",
- "extended_unsigned_section_aes_key": "8A09F76247126CEEB881F8B53BC6AF8C",
- "extended_unsigned_section_mic_hmac_key": "AD3D303C6B5CAD178FDAF705D52136FBC5D71F35AC5A175B1B7BF05D5DCC9B03",
- "key_seed": "97601EC31FA1B4421EB93AEE11759D820BC57C1F57F3F037179B4B7E0A696CB7",
- "legacy_ldt_key": "759C9C2B5383B6E0EABC70A2940D2E3BB9061BDC6349FEFE31E58DEE8D5F1077A7030EEE5057FE11413BD577FB5A00101AFFE5289FAD62DCE61FF3303E185E9D",
- "legacy_metadata_iv": "E37459487BBA9AE3F988AFD6",
- "legacy_metadata_key_hmac_key": "3696CD8841460CAD94D43487F92BB1F6D2F54B5B6D79920A032DA19AF003D6CD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AB94",
- "expanded_salt": "3247E0482538060CC625C2865D118C34"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A6F66F712654EE345BCE11B7E78DFF54",
- "legacy_metadata_key": "563F76E6FC69E05812AA0C3ED031"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B8792D5DDAC1FB230C68BBBF347F2E80",
- "derived_salt_first_section_no_de": "BDDF455FB132C86C7F3F8B4FA160451D",
- "derived_salt_first_section_third_de": "BA3638172F84AF02918B2D10D6C50316",
- "section_salt": "E10EE7853F1F7DF51447DAF39656B719"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CCC6D115F9DD71496C0F484C",
- "extended_signed_metadata_key_hmac_key": "EBA3EF6BD9329207A2C80FF86B551C562DE9602AC6B0638BABE752DE6A1F2C1E",
- "extended_signed_section_aes_key": "5E8B49B788B64F71CC0A2A53ADFF9514",
- "extended_unsigned_metadata_key_hmac_key": "FFC1671BC6E7C0430EA9E65DAE534295D744CDBD492C6E2E6BDEF2A82989C750",
- "extended_unsigned_section_aes_key": "776401EF3D196150CB58AAAE33BD6B3E",
- "extended_unsigned_section_mic_hmac_key": "813FDE8A38590F2DAD4F5CDBEED3FD5ABEB43E3C82C0CE5EF7BE4529C5D1F1BE",
- "key_seed": "A74AEA51508F215672887DF8D038A299D30FF2AF2B12B706909FB27A4EBF7F59",
- "legacy_ldt_key": "BDDD67484800624E6C5B41003D744C6C193BB2E9B9AF25E429B550211AA9A9FEC15E0568F8597884D9530310BE7329BAB39FA975BEA624B0BD98FF2BE5EA8107",
- "legacy_metadata_iv": "57B868F02FF8FD53AAF31531",
- "legacy_metadata_key_hmac_key": "430563418ACC6BC8C7040A9EFA636C5C42070ED3826CCBA7EAC761B438666E30"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "87F9",
- "expanded_salt": "E5E154E4F8A44645D63AC2633C2FC461"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E1DC7B23124E9BCFFD84F27D9BDE9F92",
- "legacy_metadata_key": "E80AB21CCF825EA7E33A6C7C8691"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "603707207A41E8B8D9045FF4C4AA0067",
- "derived_salt_first_section_no_de": "8FD6FE4BEA6198B8F8405736392A38F4",
- "derived_salt_first_section_third_de": "5BEE9610C7B058D8A738E1E580B55F13",
- "section_salt": "A19C99B0E54DD052A3970E55C34EFF65"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C3B796F8A0D9321999C1D8B1",
- "extended_signed_metadata_key_hmac_key": "DBE3B749B8F3083A2A9C9C2148ED2CDBF85E2B73D2E4DE4DE0BDD13CDFBF7345",
- "extended_signed_section_aes_key": "95E6E30209E4A6DCAED92FA5E639DB2F",
- "extended_unsigned_metadata_key_hmac_key": "B9AC0E8BBB3A3D9BD1D0B98BB7080BD7EE95471079F77CC4B45486B411BE480A",
- "extended_unsigned_section_aes_key": "1A3FEBC50D78CD693F72E85DDAFF1AED",
- "extended_unsigned_section_mic_hmac_key": "EA0ED75A363BC059F751795E8D5CA1E8107442575D9643A1D02B54B3EF4F7A2C",
- "key_seed": "5AF05D335F8A02243A4675942D60CC8802AF941645918BFD4113B02F371011F9",
- "legacy_ldt_key": "33C7A51351C97BAD3740E9992E9AFB82E828842CE9B454703304565F6F5402F8001171604EC3A9564381206E3610E5DD9335F210AF8854F6CCF66A6EDD417F1C",
- "legacy_metadata_iv": "B7D0A6C28D3C54279A982BA2",
- "legacy_metadata_key_hmac_key": "A5190A4AB4574D04AB6DD662AEF6DFF2E2E82A4F2DBFD331BA6A216B1A2824D9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A1AF",
- "expanded_salt": "7E9B0239D51F1EA6DCE754F8ED1D8632"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "01D6539A60D49BBA53F46C4F9298A8EF",
- "legacy_metadata_key": "EC82EC65D0CD7FD4EB772D2C0B6B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C94BF7D09360AE131AE00537A1961E32",
- "derived_salt_first_section_no_de": "00FC16D04D5C08B45A6C15CDCA0FF27C",
- "derived_salt_first_section_third_de": "5C071D09AD8DC542055FA8718F39DFBE",
- "section_salt": "5AD7CC1470B3E9103062005B7CAD9E3D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "55B8ED90C3893975D60D2876",
- "extended_signed_metadata_key_hmac_key": "977D06136B292939122D57B813ED5286EABB2FC6BD2EA28D69BAC56E2A4014A9",
- "extended_signed_section_aes_key": "CCDA5D551490D5642DEDA01C33C91A04",
- "extended_unsigned_metadata_key_hmac_key": "163A7E217E7698989CBEE9881E12F7BC6441F5A5EB412A4036471234B6012AC2",
- "extended_unsigned_section_aes_key": "7A67B24746BA6DF77769113D2DB26104",
- "extended_unsigned_section_mic_hmac_key": "18546D717E90A73922780062EEBA354249708A5E24AF74676E508FFFBF17CD80",
- "key_seed": "74492144FA1125F689D2D30E088A162712B6D476DE4FB2DF1E5630A6362F4A7C",
- "legacy_ldt_key": "0C08A618351318D245D39E5F071C626C69DB324619902F1FB3CACED9AD9EA6332C58B785BDE3A32578C51821C1C226604494AB81113EBEB4FA9395BECF60C1D1",
- "legacy_metadata_iv": "D7636056E675AA9006109B12",
- "legacy_metadata_key_hmac_key": "9CE875EC5F0AFDA180454E8730B7739E2E6CBE793278943FFDF0288B7B04BFE8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "14D1",
- "expanded_salt": "9A0D2E4001332F59EB3DDC9DE3D93900"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B7AF60F12100D6E8F8E45CC5418F33DC",
- "legacy_metadata_key": "7BD405E844FA565C68602A3825AD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B3224B60360C6C3D2992001842F1BAB7",
- "derived_salt_first_section_no_de": "3BCB590732EE50885C16B363BF1F8392",
- "derived_salt_first_section_third_de": "A50414ED17D4DF4068236223113B8AD7",
- "section_salt": "F81CA9B15966156256B6A030BA389B84"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "30993C693C376A019830DE2A",
- "extended_signed_metadata_key_hmac_key": "CE4B5F4012FC5FC030DA2D2B982AC7566C0AB5B03F76AB96198264F614E6573F",
- "extended_signed_section_aes_key": "59DDC85AD17ABFA70A40BAE7C6F5A124",
- "extended_unsigned_metadata_key_hmac_key": "8253F8F7EC5C2CEC2D096AA8274868EBB499BF14BF52EAB1C350A15EEDD2D9A9",
- "extended_unsigned_section_aes_key": "2A841FFDEDD5866182A02C6B39E1F7C0",
- "extended_unsigned_section_mic_hmac_key": "50741D90B9DB7B128211E0266C27AD77E7B7B2177CD86B181E18CE5F9433E1CE",
- "key_seed": "B96BE68AEB4A7032B076A8A2721CB4D631E793157CBC8134431BC6705289615B",
- "legacy_ldt_key": "A81C210047ED37E9C727B2CDF37D77E2769ACAB5252296705D72836EBE3E5183D7F40A83D224C4307D5E2AFF115D98249AE245C8892A935E20B2E118CBEDF5E7",
- "legacy_metadata_iv": "DF6943F71AF5C1C6F3BBC6E9",
- "legacy_metadata_key_hmac_key": "B1D08E3DAE445DD7209D476B1ED1BA1AE92AE93D07CA11B64319408495C82CBB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4B1B",
- "expanded_salt": "BE9FE467CB6607C2AA8C5BDA7EA86989"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4FC3AACD730E8A9EED91E4DD26FC39C0",
- "legacy_metadata_key": "609DD88BD7F5D17FD3E53B231D11"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5BC27C8EFE63AC2FA753DF1F7F54ABD8",
- "derived_salt_first_section_no_de": "B30088798CE8A9BB55C9450EC0D54B63",
- "derived_salt_first_section_third_de": "4DAED4BAB0D0D374C5B74A2B5B51496E",
- "section_salt": "9832A40E98AAA14571F6532DD202F3CC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5A46A5676858980A0EF4DFE7",
- "extended_signed_metadata_key_hmac_key": "784AA4992D744E56D0A8E10DF7179A53A5B62FFB5E70A9298A75601B1D6ABF4D",
- "extended_signed_section_aes_key": "BB9E9DD4646980170819FB7A204EC33F",
- "extended_unsigned_metadata_key_hmac_key": "E490E4FF0220F5445EF22620AE5E06F87EDB75D48284D5E3431DA7955D5FB310",
- "extended_unsigned_section_aes_key": "36AB96A89E96F93FE8F1128514F3D768",
- "extended_unsigned_section_mic_hmac_key": "3ED8AFBAA336183548A848B9A83FEF785E965888417149862BA7C9BEEFF981C8",
- "key_seed": "FE1D2DC8D821708C5BB6012EFB75D0923D71385DC55450CEF8D7F2E5D4F91901",
- "legacy_ldt_key": "F018A079161BCFB4E8990CFF6F2AB0347ED4A87308528DBCF4B5A14B3BB9BC877B799050EBA747402F912261768755CD47468355AC1CA662239B0D74D5EE7860",
- "legacy_metadata_iv": "08FAEE074CD8A3294B363E54",
- "legacy_metadata_key_hmac_key": "5F5600E6B176A9870CC3834F72686FCFD88B5C4EA55BBFFBEBED8F2F64D9C4F5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9CB1",
- "expanded_salt": "3A2F9851179D1DA1E949096FE2B81A9F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FE4A9864A32042A15795E31D8EE9A99A",
- "legacy_metadata_key": "3CF4C0DACB35343DD78ED14B6A17"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BA319E9B5E79653ECC86BFDEA4A3F2B5",
- "derived_salt_first_section_no_de": "83BD970419A73E4AC1C8C655D64B6EA1",
- "derived_salt_first_section_third_de": "5FF649235216F1196F0022484D8C3860",
- "section_salt": "16CC1192C28309D78F58C93E057DE526"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FCE0636C9C397C5E3E246295",
- "extended_signed_metadata_key_hmac_key": "B770293622692FFA00D2EE2B02A86203C7A49670795DDFD2B660CBA3EAC97279",
- "extended_signed_section_aes_key": "DB61BEF6EBB68677666F94BE2AE1A118",
- "extended_unsigned_metadata_key_hmac_key": "AB2495C145EFE67AB16E0AB0EE78FD09E34553C9D744852B02B3F8B4CE0372F1",
- "extended_unsigned_section_aes_key": "F45385D033FA2D2D2FEBD8CDFB0A9657",
- "extended_unsigned_section_mic_hmac_key": "8EF9D654A2114F1F1CDD85A16E2F6740519F438FE1FDB8387DA88EC52617775B",
- "key_seed": "0271D3FA7B80CE06BED7087575B9B37284BAA5E88EE800DCE4A32831A4D7608A",
- "legacy_ldt_key": "35E34D545A5FA9146BFFDAAAFF7CFBBD1D053FB070DF8C845D5A433F245A2930EEAB75D96E6EDBF9278F431638E554832CFA4CAEF940BB9E91A21F23851063F8",
- "legacy_metadata_iv": "B9A6D64CA50335710BB51F1D",
- "legacy_metadata_key_hmac_key": "2898206B8102F8A9B4BD55D91D450C3E7F4E294E61405B48ED13ED252EB39A1E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1FDA",
- "expanded_salt": "66B78C4689803A9EAD4AA8EAF93AFC5E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "49271D0160D0300AAE0ED53F21D6F013",
- "legacy_metadata_key": "9F78F747DA2F0547643F34068833"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1D0765238E3DEC14D0B3E7E84256434D",
- "derived_salt_first_section_no_de": "5491E200E52C7DD78476A6B5D3C66F58",
- "derived_salt_first_section_third_de": "96D14C58C4E2F7A6355C9CAB899E8070",
- "section_salt": "A2E9B1EE02B2C3D6D2E50FB48548E057"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "096285AAB6F2EF9BF071BF97",
- "extended_signed_metadata_key_hmac_key": "2EF13C543664E08ACB77EB44BCCA63214684EDC435C91A7722CC204B2DC1B723",
- "extended_signed_section_aes_key": "09626ECB4563C4DD22D24ADD66B4B75B",
- "extended_unsigned_metadata_key_hmac_key": "6D3192601113CA20F56953030678AD96F928074075CD01290593103DC72BF342",
- "extended_unsigned_section_aes_key": "3DCB41CF478CDE035A56032BE66DE2D4",
- "extended_unsigned_section_mic_hmac_key": "9E4C4D1A84DBFBB323A6EF6C2C01FD047910683491680526CB88CBF94E3E9D33",
- "key_seed": "CF4FE1350CDA0D555ADB68C97C66D3185F833BC7CD0377BBFCA8F6481BB8C00E",
- "legacy_ldt_key": "0ABC3CEE499A49B7B2B43FA26A9B634FD5277CC752B7BD79ED3DCD6851A74F84818DFB1A14C988037C4B90B3F7A27734059632299DBFCF5E863E503E187103A6",
- "legacy_metadata_iv": "E260477CAA389708EC6DDD62",
- "legacy_metadata_key_hmac_key": "11FEF95254AA22ABD03A68E0EAFDEB5D657737692062DC19AFEF2779372F05CC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D63F",
- "expanded_salt": "263F240F5F4ECA2C5706C6C21A2D6E7B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8EA242AD7C811518740B2156F4E51329",
- "legacy_metadata_key": "E9381378CE50A1717948FF22A686"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1BDE82B5CC4F0188445D98492957F55A",
- "derived_salt_first_section_no_de": "F104CD758CC65EC9A6E8E3D2F96353F4",
- "derived_salt_first_section_third_de": "18E7A03513044AAF129308E874C12E4C",
- "section_salt": "E9BD3A10D8DB706CBA6AAA9F28A6E7F3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A9FD281AD6126F6259BB13C3",
- "extended_signed_metadata_key_hmac_key": "3EAE4C95135E5DAA73C52DACD26EB0DD01C779C7FA24C11D1D8F547D5E576CD2",
- "extended_signed_section_aes_key": "A0CCCB1B93F76B2A8269FEF6D5A81374",
- "extended_unsigned_metadata_key_hmac_key": "3F1F35D85F4591FC8A2A5B60B8A2E72EBA585727ADCCC0DF128A24444C71AA34",
- "extended_unsigned_section_aes_key": "B6BFF9296AD4A80B359431BC6C9D08F6",
- "extended_unsigned_section_mic_hmac_key": "4327A4E6E0E30A522D2906008419BB4BA185A70221C9B48C32F90B0CA294BF91",
- "key_seed": "85A6D50590F6C7FF5C95B95A817A8EA208750FCD736A7CD124669290B4588379",
- "legacy_ldt_key": "0DD57F7BAC52D8C8D0C254E6C685BDFE6F87120889DB4A0C46ABEAC62F27C61FC9ADF2BCF4A116B3B48723737271AFE48AEFEB557E745BF3F0965FA7469BF18D",
- "legacy_metadata_iv": "B6849A21AE703890157DD22D",
- "legacy_metadata_key_hmac_key": "93E502ADF82DD6ADB1C367F45295696A18EEA7F9B057A4D43DA5964654EA035D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BD1D",
- "expanded_salt": "05E4986E8343C6F2B6618DA5D20F7EE6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5813C409F57DE608FC78E1B4E52E029E",
- "legacy_metadata_key": "D66B282E2FCAE3D74BB2CD381752"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7A5171C3E46039B7E36B44E9FCD465E7",
- "derived_salt_first_section_no_de": "8B29F80A93864DC65D6D18CF73FD7FC9",
- "derived_salt_first_section_third_de": "7001C04214BDBA9ABE877DA380548224",
- "section_salt": "37995CC40E84D72DD007BCAEC024B1B6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2B8C7D64D956A638466BE0F9",
- "extended_signed_metadata_key_hmac_key": "7A18C69C2847EC6B549B63374E80AF2746AD8CE149FAC51E873B6E2D0A4B2A89",
- "extended_signed_section_aes_key": "8436A9E6044FE8A79EEA57AA01868D55",
- "extended_unsigned_metadata_key_hmac_key": "E76408FCC12B53CD9618C1459D7CD59D2931A52BD138F857626D6F65652033DF",
- "extended_unsigned_section_aes_key": "662F3D9E33DB794C14E1E4F7DB18B698",
- "extended_unsigned_section_mic_hmac_key": "39CB40BAB1FE00D529A5B51DCCF8BB727C4D4F80A808AC9FCFA23E799F58885A",
- "key_seed": "2A1DE9C865AE94DE7270FCBA5D68512E975CD2DEEB91BD166974569FB05C18F8",
- "legacy_ldt_key": "71B1556266EA30561BE55414689AF76C45ED86DB0CEAF42D0A2A20BA80082A0430C95A3C7994E624F2F1D433405B45AF0CF521210A5FF82B19C60A562A59E43C",
- "legacy_metadata_iv": "6677D55A3D3434DEF144E527",
- "legacy_metadata_key_hmac_key": "411D4987C3CD0577016CB87DAAD2169144471ACA8D1BE5831F062D94ABC1DFAF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F364",
- "expanded_salt": "95B4C0E86A0CD8F76428E3DC25C6984B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9B875367F6179B2CB14E06DE5322C89F",
- "legacy_metadata_key": "BFFF0D48D5934E68FB5F6CD376D2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F2BF90CDB88EC9663AF1932586E1C862",
- "derived_salt_first_section_no_de": "3691E00107C21F31A916F31C9995B854",
- "derived_salt_first_section_third_de": "CCA91F7FFCE9E250C9B8043760BABAAC",
- "section_salt": "BBF544E65FAB090DE3B65F358209A2A6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EFF0CC8EA7FAE6ED5D14D5A8",
- "extended_signed_metadata_key_hmac_key": "8B5CD549953D61C0CC5F536AD2BCAA96C0E35C407BAB5474B3F00FD18479FB95",
- "extended_signed_section_aes_key": "C119783DCBC5C4D5419CBC534E83934A",
- "extended_unsigned_metadata_key_hmac_key": "073AF18C8D5436B4D684595E53D9E66BD8F5249501321EDCFA42F2BBBDDAFEEB",
- "extended_unsigned_section_aes_key": "978FCDDB9117B5DF22E992E283775871",
- "extended_unsigned_section_mic_hmac_key": "506F253DD6699BFC23DAA0394291152B7EB297B7E575B8E6E61E8126E5DF0C86",
- "key_seed": "F2AFF2CAA3E0F6AFA58DDE1BD5D55459DBE149946A5EFC1E4F86F9D5372C8AED",
- "legacy_ldt_key": "C0CB3B75244C9A41882C80D0F9A2B09B1D5F9ADA2833F69CFBF754550D82FEBDDAF9A4B3789B1C5B83E55FAEDA6E8D0F06D47C1E036349AC63CB630B4E19293B",
- "legacy_metadata_iv": "4C82DCC215082E57832C6E7F",
- "legacy_metadata_key_hmac_key": "EDFA7E955C759BE32A3E04A797AFD096F55EE1C57BD1C939BDEBE9AF50A72DE5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2126",
- "expanded_salt": "7E5268BAE52C844BAB6AF74F0157C658"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3629C4BA07757E676C658B976003C157",
- "legacy_metadata_key": "07B4C1CC18BE83F3D07DAD82CF8E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A7633A81494A6167045717E1843766B5",
- "derived_salt_first_section_no_de": "10D3892A26345B314628C3E9A892B8BC",
- "derived_salt_first_section_third_de": "21F3BEB3108145385943DD3E1C24A22D",
- "section_salt": "7791843C33169902C14B46324D52D5D7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1874559ABEFB03B5C9FE8107",
- "extended_signed_metadata_key_hmac_key": "F4F4A8896B01578D5808EB52CF8A2B0374B96D6CCCDBD24F863A7E9F66C178DE",
- "extended_signed_section_aes_key": "39040C75496F7186C44DC1676B42D742",
- "extended_unsigned_metadata_key_hmac_key": "78F80B0FEE099E483BC10BE8900F1B0C34A09113469EF8A55ECD6C045A8CB945",
- "extended_unsigned_section_aes_key": "71CE65CA9667200ADC1325246CA1018C",
- "extended_unsigned_section_mic_hmac_key": "6341DC530ADFBBD5DB535E5F62355254033EF5F81B9CD1A92396C8A9178959E2",
- "key_seed": "7D42BA186C4A64743AA5DA10A89BD78E9B5FCD76996A9168EE8FE87361005249",
- "legacy_ldt_key": "EBA4BB53789F5513AB97C686ADFF113910E5CCD3793BCF81174FCDA3966441A0883D1C3E8FF0C32C3CEC63457181484E8BBDFD9930F64C90FC1AF3288CD621FD",
- "legacy_metadata_iv": "4F62EF4E9055D8B0529637B2",
- "legacy_metadata_key_hmac_key": "06A0657121C019319FC25B8DF56B43FEE9E5EE06CF288D69FC2960270293DC03"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "92A8",
- "expanded_salt": "A30AC552BBB50CC59644386B11F7C4AC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D5140D253B32AB4B8AF5501C5DE458E7",
- "legacy_metadata_key": "929BBC864CE0465F2EDF78DE74AF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5E94043488FB094AFD59EFEF35F4AF58",
- "derived_salt_first_section_no_de": "193F0A17E2686D736F26D20D241790FE",
- "derived_salt_first_section_third_de": "E670C8CCB2B4ED7F0F5BAF49A067DDE8",
- "section_salt": "DF093F80DC7C54407D53A2B72A89F05B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EBF1D4A96BE084FF93AAB3D5",
- "extended_signed_metadata_key_hmac_key": "8DD825BF3B670E83F1F42C80995F8D7ABF4DBB26A177EE79616279B9DF0267E3",
- "extended_signed_section_aes_key": "2D109FFE7141F7410CD26207254E06C6",
- "extended_unsigned_metadata_key_hmac_key": "C8A3142C140E8A1431201F786D033DC39E241B4D5BDB464288AA71B01A271D32",
- "extended_unsigned_section_aes_key": "505F91F47A9A80D2410ACA6A1D1C6092",
- "extended_unsigned_section_mic_hmac_key": "1D8ADB06A3D864B11DAE2FA8BCD5FFCF04323DE555379EBDADA46D11CFD29131",
- "key_seed": "D3A0FC159B6029ABBED5EF6E2C250FD97DC6EF2177E2D0D50E427AFD3DE89372",
- "legacy_ldt_key": "F5EBADAA337B46C49A317018CD183FA19DE892647E8A7C53851DC9A958438A30BACDE37928972C35665C4DBB26D107D8F55627115BB95243D9DC6CE4A3AA8FD3",
- "legacy_metadata_iv": "915BC00482A669782E36A2D1",
- "legacy_metadata_key_hmac_key": "627AA749E870DDE7895F26356659CB685E44132FBE03D716AFCBD34540988973"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AB74",
- "expanded_salt": "3D6846EE57550D4B05AD7C6FB64C2173"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "49423C336D29F67B688941029AA3FF43",
- "legacy_metadata_key": "961C9F69A836311B4D3CEAC71FF5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "49EE181AADBB5AEF36EFDC609A9BC28D",
- "derived_salt_first_section_no_de": "4BA6E094F37B0BA05D85E700C53D01FE",
- "derived_salt_first_section_third_de": "E81F3DA29567DF4FD5C2607E0B115BB5",
- "section_salt": "CE5CFFA7E79A91AD4B93462F763E8100"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "01402EA20B209A7F6B0FD072",
- "extended_signed_metadata_key_hmac_key": "771815347F3C5A91F5BD96E7982444C675D339441BCE974164F94AB637322BAB",
- "extended_signed_section_aes_key": "273FD1913CC077B83C90CBDF17391820",
- "extended_unsigned_metadata_key_hmac_key": "85BDC7BD89C7E4958074A8F17C94EF61DF7E51F19D42C520EBD01ED890FD842B",
- "extended_unsigned_section_aes_key": "D1439DE851D14EAEC96652CAE5000CE7",
- "extended_unsigned_section_mic_hmac_key": "A9DA1846A7FCF912E60C67A664C9CE621531CB071D69B86161E9A1F7209F6B54",
- "key_seed": "A8253DC0A8B6A9BAAC9E97C58B881F0D921A0B7197A780BB34DD750CBCCC392A",
- "legacy_ldt_key": "4A9C84E3F6CF12F1EDC81C0EC22637578C96EBE89C2482644B30EB69369F1B7BA80DE6F8AC8B9E802AC9E1CAB82182DEE792FD925D19A49E946B89569C423390",
- "legacy_metadata_iv": "5966B38774CD8579CF203C71",
- "legacy_metadata_key_hmac_key": "41D3114FB80DC7072E685A34EF15B9E4BB4F656DF39F23944AB83F6451168005"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1074",
- "expanded_salt": "B6D572B2CFD4D672799545440A7932B2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "89152DA1F7573F829CDF23365CA8E0DF",
- "legacy_metadata_key": "BDA989C8D8C400AB143E4C23DFC7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9710F86D528A15B82EFB551DEB92A770",
- "derived_salt_first_section_no_de": "0783C140BFB3CF0B538B90904AC8A2E8",
- "derived_salt_first_section_third_de": "7DA4291E0010F75D0162BA2A23A2426D",
- "section_salt": "0C21817BB912CD177310152E09E9779C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D14949D90CA2B7D413E0D4E8",
- "extended_signed_metadata_key_hmac_key": "18447FD8F0C453366BF495948C7DB8C6C425515B7C8E9BB1888CD77147D46E7A",
- "extended_signed_section_aes_key": "E8C0269A319ADE63E52DB4A6089A258D",
- "extended_unsigned_metadata_key_hmac_key": "B87C19C7FF5D032E22981B91D58009AA338DA4CC158774F76854FE9FEADF603C",
- "extended_unsigned_section_aes_key": "18C8F092B077375A8F6D07D704576CC4",
- "extended_unsigned_section_mic_hmac_key": "78D5747E330696E093F70089BD9E2149B05DE42B47EE8DB70214222A2E8105AA",
- "key_seed": "E1B64C4D1014219AC9960A3C97ACEF7B3C413F9387B339383D0DB103FC2C3A75",
- "legacy_ldt_key": "8D0D2382C4424BC9BE67D80417792EBC04F489E03396E2E2A3859B47D6C1762A229926B8B779A7B3E981C2D99CE77A712152442980058748DA26A8936BC56B9C",
- "legacy_metadata_iv": "51B2AFE95CFF45162EA96E4A",
- "legacy_metadata_key_hmac_key": "286042B0D000D3E9A120032727E2D08F77697A467B811CD644A8183CE2477510"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9020",
- "expanded_salt": "9761F4364F36430ADA89878E672F9D47"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7234AF58820BC55F789FFC3A3A970912",
- "legacy_metadata_key": "6DE6CFE80E550DB462A80C0FE33D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C69DA078F7E71D85284F8E32FAADD69C",
- "derived_salt_first_section_no_de": "1F7985A33A51315E6C37E16AA5084FB4",
- "derived_salt_first_section_third_de": "BB2261D1D0A5573F3F9A7009BF17E3A3",
- "section_salt": "37A96C394F7ADE8816C225826875A05A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0EEB5796B7B6BC5BA936523B",
- "extended_signed_metadata_key_hmac_key": "AB89FD18BA03CBAFE38EEFCD262986D632613A5784BCCF5A510AC95809F3FC26",
- "extended_signed_section_aes_key": "EF2B084AC56FCAAE92BE2493F65BEC3F",
- "extended_unsigned_metadata_key_hmac_key": "5CDA432D1248FFD4735ED622C7132248C9AE24D499D363B405AAE48D395262D0",
- "extended_unsigned_section_aes_key": "04810A16026019DF16E1C5D44A432FC9",
- "extended_unsigned_section_mic_hmac_key": "4BBFF471B7CFE402123E7CD6AA4CA65732AD3F81115C7B18BB4DB9AF3822B336",
- "key_seed": "BE06D50391EBB27EC055BA34EC1342455D7F747B7FFDB42B04436D4A7BFEB9E5",
- "legacy_ldt_key": "65FDF5109FC09B891F4D03157AFBAD7750BEC5FB5A5372407C2BD17CD997C795E44C713445B3A56C5521ED4C5F7F6EF9B37320489CF89B4BADA06E028C8A3D7C",
- "legacy_metadata_iv": "88C2077A86B3B03045AF34A8",
- "legacy_metadata_key_hmac_key": "5BDF35E9AD0CBA386C401EED9043C5F0A49CAA2BA6C4A876966B1BB285BD351E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6571",
- "expanded_salt": "13FBA5C701A5D64BA2A369F9E0CD6A9F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FF816F859E61884875C08C862FBE754C",
- "legacy_metadata_key": "55FDFB389E914628578B6EB3EEB0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2564BF7F65BB3CA81129BF03C7E4F985",
- "derived_salt_first_section_no_de": "ABF7A82584A2F7B2254D8DC08148D9BF",
- "derived_salt_first_section_third_de": "167C1D578B694FA1A01463BA88E96E31",
- "section_salt": "52A834EFD0AE1257E7337BDB228E6161"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C991FDDD4F41AFEE795A6914",
- "extended_signed_metadata_key_hmac_key": "9582DD3E0563437BA41E645EFA43E8F5F66DBEA6994BFC139C68B69D687B5375",
- "extended_signed_section_aes_key": "65DCF143E1D892537D6372D1A6F3C05A",
- "extended_unsigned_metadata_key_hmac_key": "2157E520AA7F4913B45A3A0B88A206FBF699EA0AAB78114F1C3C25163E91787C",
- "extended_unsigned_section_aes_key": "129EC28B76300DDC72BAFA129C83BC9E",
- "extended_unsigned_section_mic_hmac_key": "4FAC3AFA927C52128CC74E57BA483E253AFE0CFB0EA6D0B9E11DC3C4A7280B2C",
- "key_seed": "54440B51F4647A9C11FFA14F581AAB3256E16177AC0E5E838E53F97B89F2AB19",
- "legacy_ldt_key": "59792D39A11C2C34FEABC6A7BB34A92AE0625F8671C750FEC98BB8F812CF19E756651E886A8CE2F41EEB2AC97B94A4DD07D8614F7C309851FB047EAA2CC21AA6",
- "legacy_metadata_iv": "4CAA038F1E2D97103C07757C",
- "legacy_metadata_key_hmac_key": "17C55CAE0D99EA0B5D60CF1CB6CA68499605E93E6B2071B0AC91E2DFD9B2603F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E108",
- "expanded_salt": "66EADE11647831FDEABDAE2D46D60603"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4A88C45C9699D13EAE040A856C00EACD",
- "legacy_metadata_key": "D2B7A2224BA7F4109BE9AAF4D1D7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E4915BA798F210C1A351A2B9C4BD5611",
- "derived_salt_first_section_no_de": "56D2E6561925849BCDD3B4E5A33A685E",
- "derived_salt_first_section_third_de": "FBB6D01D55478EE25BC563EBFCAF20CF",
- "section_salt": "400F9F6102A15DF03898A8066220185E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8B10F7CD24339EA36ECC3DC8",
- "extended_signed_metadata_key_hmac_key": "369E088A751C6E9225D0A72D606B16A7DD7D269B5AE13A4A515E6D77180B44FD",
- "extended_signed_section_aes_key": "27D20C905336FA7F9E6A657FB4F6B05A",
- "extended_unsigned_metadata_key_hmac_key": "D1F96035BA507A5F94540E129D2193F0BCE67BA1DFA27EDF9481658A3C4C7743",
- "extended_unsigned_section_aes_key": "8950621D6598E5FD4984176AC6896F85",
- "extended_unsigned_section_mic_hmac_key": "D14376035E2FF37338326FBE8D9B0E663484C7CCAB6753C3C3022222B7CF1193",
- "key_seed": "7121E5F31B1EF8656658E02931BB0724B27A6E4F80FAD0527353E8B6B09EFA26",
- "legacy_ldt_key": "4BC85D2594D62AFEB677A09FE96498D8D703227655CCC5012AD4127EF72CA7BA7EE7AC044A46E70742AEE60AB4232ED7EB8A28E41B54AE9D6F0E7F6A7577F7A0",
- "legacy_metadata_iv": "E4B095E4B3D515AE318B0A7D",
- "legacy_metadata_key_hmac_key": "6A181425086D5C8F6D357397BE6978FF95019CE19878A693868321D19660C6FA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "452F",
- "expanded_salt": "F13343EF03217DF6BB575C7767BEE974"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "147F0D8438F566C4B91E13FA3CE8F620",
- "legacy_metadata_key": "9305BA81AFA6051BB78D41A62ABB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F1CD661F7CEE898FABCCCE78BA323192",
- "derived_salt_first_section_no_de": "D60EEE432C0B19D60941BFCA3665CB34",
- "derived_salt_first_section_third_de": "DF02B38C7B2F0D8922948B4F615F173B",
- "section_salt": "0FA97919ABE06E09FE1E0E5E70041B58"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "39F3571DE9AEDE19A33BD442",
- "extended_signed_metadata_key_hmac_key": "A5118A6BD34E19F75AE2BD63933B9F09854FC15271FDFF7F28A40AC095B10C6D",
- "extended_signed_section_aes_key": "54DCDB97048AEDB6B0C30A115784667C",
- "extended_unsigned_metadata_key_hmac_key": "CB16A2D7050FD653B101B41EDCBB882A12092ED4C5FE211CB4E40468E01364E1",
- "extended_unsigned_section_aes_key": "E3334CAE07E903C90A469B9EE2A9BDBC",
- "extended_unsigned_section_mic_hmac_key": "1FAA58ABEC5843EF0C5FB8C973CFCB9474319D0CA60B58102A741EB1FF2051E3",
- "key_seed": "18B1CFF0A0ACA9C1595D5A4493F593FD88268FC7B426FA43F170E459921B062A",
- "legacy_ldt_key": "BE35B8009FE15D63FD61A5C56820E6D00DD55B83077A8F2ED3DBF403F1B94B8808A03E44114DE4536ED3590042FD8F1FCE278301E877385DEDD3520CBA9F648E",
- "legacy_metadata_iv": "A96AAFA372D1FDD7672CBC57",
- "legacy_metadata_key_hmac_key": "B98D2FC64700DEE85B6ADF10C421AEBEA1C011ACB02F6B1ACA22C92977545199"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "98EF",
- "expanded_salt": "10D2F88B813305B44E88F61E0E986700"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7495CDFC2C421236A1DA640F8120BA55",
- "legacy_metadata_key": "9CCF7AC402362E3F707A8789DDC2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "94EDA085B8BA8CBFF0852BC195B1EE1A",
- "derived_salt_first_section_no_de": "1CF65359C54AEA4B196A9E0A09D7C6A5",
- "derived_salt_first_section_third_de": "4CF7E3915E6FE038BB29036BFA4D71DE",
- "section_salt": "F88A0A51CC897C0E9E53FFB0FC2B48DE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FA864D611B18E26651FB07A0",
- "extended_signed_metadata_key_hmac_key": "5838FD749D576A08F115458ADF64783C9827443F526B9E86132A0E6F09A5D963",
- "extended_signed_section_aes_key": "8536CE89AEB3FD9021B5210A2FC5D394",
- "extended_unsigned_metadata_key_hmac_key": "DF0E38A6B2947D52A16CD7EAE865DA0E976552BB3966F05CCFD59F0B31343D4E",
- "extended_unsigned_section_aes_key": "F38FCD82F4D0C99CC99B4151FCC20AE8",
- "extended_unsigned_section_mic_hmac_key": "EDD23C25C1E135CDD7DC9E185486FF3B7295457E4F90AEFDBA6673544D826AF8",
- "key_seed": "603DE6B5F01C17F538B6ABAD1E60DB852E98A1D041E2971D8B57BBAE339B9038",
- "legacy_ldt_key": "8B883E88EC7C583F253D390C08BEBA083799997C810345B7297546D4044E6ECB0372DFCA79448518C693864C974E942A662F366A52383763ADA2FFBEECCB3CF4",
- "legacy_metadata_iv": "72A29A8698BDB9899BDCF51B",
- "legacy_metadata_key_hmac_key": "08C9335D0E45615C430605460CC8DE0D70ACFBC8176CC3E5C5F265E7ED267421"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A94D",
- "expanded_salt": "F297CFF27ED88CAC4A18DEC31D5E12A7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BD375315DD1AABDBEB7266D1ABD2C931",
- "legacy_metadata_key": "54D2B09BD98E203B88ED02E90269"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F2FBC8617191FA8B3BB663F3CE4A199F",
- "derived_salt_first_section_no_de": "610B7D1280AC0718ED420295018810FD",
- "derived_salt_first_section_third_de": "CEC8276F77D4B93C52D0EC6B00DEF9BE",
- "section_salt": "696F99AF648943C385D5E2891542F650"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2A58F22ACB721EFDDB32B2FB",
- "extended_signed_metadata_key_hmac_key": "CF679E9CB377B78A5ADD7326649611C228449786DF174D582A33D0D995181289",
- "extended_signed_section_aes_key": "2A1FD65EE61B2ED799A5797176C90B6F",
- "extended_unsigned_metadata_key_hmac_key": "600651D462738EA01807A4467B2D16E32C134BDE9A187F8F759A3236533CEF7F",
- "extended_unsigned_section_aes_key": "D4CD5DFF7908D694EC52CA8DBA34D00F",
- "extended_unsigned_section_mic_hmac_key": "1D0C818594CF91D42BAA9E061E5C08CACD63657801F9AE4B4FB85A9C7CEA9825",
- "key_seed": "052F6A743DE7D82D8D0D3B5E9B4426756B1FAD8EAD5268F49F9DADAA5D6A437C",
- "legacy_ldt_key": "0A2D88F27494A8294E17938F69DF147F554FDA9916C287B7758048C662C1C1DB13F081F51CE8D646D6875C19A45CB47A4DE559BD5CCD56E136DF2D411C0F4EE2",
- "legacy_metadata_iv": "332DBBB55820DD8638F8D70B",
- "legacy_metadata_key_hmac_key": "361A5A60E71932368B244CFE302689018A7C12A86B9F873279C27F02B8AA5EB5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D617",
- "expanded_salt": "DB54C7ED839E9DC3D8F60BB80900864A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "214041415D8C3B56DEB52B67A1B29B4D",
- "legacy_metadata_key": "E016F4BFB52D1AEFD284A01A4E8C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B15C1B620941DE31E1316B937DDA28CD",
- "derived_salt_first_section_no_de": "58DC4A178908B4136E1B3BA11C09E4D9",
- "derived_salt_first_section_third_de": "19057F1B3B057874483FF2FDF873A1BB",
- "section_salt": "7449A87DC450DA5AE39FBB60C005D415"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "771FB067CA2A6B4F75A0CB22",
- "extended_signed_metadata_key_hmac_key": "0E03A11847E49D04B04169D656E2BCEA287E574EB35D88B1074AEA6010073ED0",
- "extended_signed_section_aes_key": "B5A59853DD50326F6739EE633DADD205",
- "extended_unsigned_metadata_key_hmac_key": "2A4EDB85E8A652AA0C76E7B12D7AF8A26886785893710805E510297DB89852D1",
- "extended_unsigned_section_aes_key": "3E15CE32B8458C90CED03C47038C16A0",
- "extended_unsigned_section_mic_hmac_key": "B0A60573C1E0CA1CACB739B46E02FB23E172D9DB32250B8B4BBA942ADE89CE44",
- "key_seed": "84EAFE21AE23F7A97A15D96AE11FDA5001706702FCF5B68E6072417282901BEF",
- "legacy_ldt_key": "70EF996B0F7B61994D00567D2AB4541D93E266102DD9B1BC254C99C16A935E8E4BC372AA6CA45AC77931B710AB3E749B0F71DB2EF60AC08DA2F14C9748D5BBAD",
- "legacy_metadata_iv": "9C8F6FF27DBD1143C59E779D",
- "legacy_metadata_key_hmac_key": "E396DA47C01C33BB4083DD13C3C15FC1D5F0D84BA6755ADD859D88D60C64CD90"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C4C4",
- "expanded_salt": "E61DBC8434C2613399E45730632BF397"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "28D04023FB6FDB2499AAA55B2453532B",
- "legacy_metadata_key": "EA9FC8B18646B7FB688B11C55DA4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "60F64180C3054532A45FD56DC782580E",
- "derived_salt_first_section_no_de": "63B41701A4A3B88D534B81F8FBF58C40",
- "derived_salt_first_section_third_de": "76157684F40FD06A6804FAB2261E321E",
- "section_salt": "17B9401AAE49511CB72CB8DB9131757C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2B3E24CE8B55F461AD52B32C",
- "extended_signed_metadata_key_hmac_key": "B3710C04C3EBC05CB3876AE7C42374AD265C061AD13797278F45F5C94C1468C1",
- "extended_signed_section_aes_key": "B416BA1B0764E908B42B5DB4BFE572E2",
- "extended_unsigned_metadata_key_hmac_key": "E088815B1FC089BA39C31294BAB392DA40DEAE0B6162005D6B855ECF1BDC85B1",
- "extended_unsigned_section_aes_key": "5CF7AECFFDD728B58A598DDD7AEC6465",
- "extended_unsigned_section_mic_hmac_key": "1A78BEACC8789AB83A59867FF1D16FEB33D17BF9C6E1CCC4E3C202E771F6F983",
- "key_seed": "CA7BA402B3886E4F11BB54B0BF9AD321F36A1D745D6A1F017A995669EB116C52",
- "legacy_ldt_key": "27DC8EE3B0D2C26F7E673357387E8E5CECFEE8B3DAAF43CA113103602EB01C52414ABE5898FB8C17AEA9F68D8F2DCAE27AD0BADBE5D08D42CB516FF0F46CD2BF",
- "legacy_metadata_iv": "1A8504C4600A4B3CC9A25AB5",
- "legacy_metadata_key_hmac_key": "2DE1D337DF4892C9D6F54BA0C436F617614735385C4FFE875ED10F670A84487C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "481F",
- "expanded_salt": "67CC6BF24ABC2A2473198254283E65C1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B051819BA20FC11B24FE35F9AAEF733A",
- "legacy_metadata_key": "EEC31B9D798382C72A19A533DFD2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9EA569F7F0F9717FC52720D476705370",
- "derived_salt_first_section_no_de": "6360641A00CA9AFF8C0EFA5CB5D3001F",
- "derived_salt_first_section_third_de": "5D0927763214C873BB527F1E54A05236",
- "section_salt": "D77DD2D2723BDE37A2041ED578950861"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "77E47E5E41D63C60F7B08097",
- "extended_signed_metadata_key_hmac_key": "2335AB975C7684A66216801D8F6CBF2B0A5C24C330D5F13B3DB64927D012B9CF",
- "extended_signed_section_aes_key": "06ADE1304FB357DA4C6A266DCEC0033C",
- "extended_unsigned_metadata_key_hmac_key": "1D81BD5F583D21DF61676DEBFCDF8271E3F58CC37CE6B0FAA3EFDFC8EE24570C",
- "extended_unsigned_section_aes_key": "2707D5C3CF84E70691F2D512049DB853",
- "extended_unsigned_section_mic_hmac_key": "1A2840AAF34247B833AE0B4CFD4E6D3AFD707DCF59FA0820B5A2A3371AE7D191",
- "key_seed": "B7351002287B1EACAA37EBB8108A8544E79CE798499CD360134B609CEDF98EE9",
- "legacy_ldt_key": "9077493E37A5BAAAC05D103F7CCB64BAE830CCD1B87240E59C4680042DBB9290B6AF34ED36FA3B3C40E7C2EB4CC4DD779F65A3428AD192D2854D5CF423769063",
- "legacy_metadata_iv": "507B751F177D7E3A42281EBD",
- "legacy_metadata_key_hmac_key": "392BD5B2A895B3A07C412DF63585FBEE988256930F5D785C36BE4DB89B610198"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D553",
- "expanded_salt": "8E0BBA9C66CC9331A073E110EA49F8E0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "35E269BD10CA0AA2BA7F5C164973C778",
- "legacy_metadata_key": "84F74BF1EB0B73D4ADE0A889BB27"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "062F0CD62BCF8F2B83CC5D42BE3DB999",
- "derived_salt_first_section_no_de": "FB87DB360621A42ED683E75C24C52188",
- "derived_salt_first_section_third_de": "37D4803B64C1903140775953FA0DE65B",
- "section_salt": "1EBAFD0B3C3EE1386605F5F08D40523F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "07069CAFFE04833D20577385",
- "extended_signed_metadata_key_hmac_key": "C2B1B0CCD672B59550178295B0CEFEFEC3299BD61CA318FCCDCCC987409A5309",
- "extended_signed_section_aes_key": "BC8E557B649DF1A98A7AC95DA73BDBD7",
- "extended_unsigned_metadata_key_hmac_key": "94D7A0A27022D6C46F1FACAB5D9677045C45588D632551C7CC7610B3683A0163",
- "extended_unsigned_section_aes_key": "650E144959CE02250C95EA297377AC74",
- "extended_unsigned_section_mic_hmac_key": "B08DAA86E790FA3C9E0418AF07654D7E2E42719906113228E3AF4873618D605F",
- "key_seed": "864970408EBE8ED7B6DDA4DDF0CD1317FF1ED259E997CB10CD66DC7551B165B8",
- "legacy_ldt_key": "CB087C41CBC3AF8BE4D348877E8DF1AFE324AC83E2D294C5BE4121FF1E418CFBDEE8425A97F490255747DB927090ACA387A8DAE46BF1E06F3C35E449EDE00F2A",
- "legacy_metadata_iv": "D77E9FC2F2B0F690974B4C5A",
- "legacy_metadata_key_hmac_key": "D93B63764E284D22F06EB94D24B4D04FC2EFAE7C8A15267070D5C99E25B20554"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "34FE",
- "expanded_salt": "90E6C333E2D52E120F70C121D6ED88B9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B352351EDE939B9A3C0DCE960FC53888",
- "legacy_metadata_key": "32ED044F057827FA7BB69308E509"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A2509E595940FF6195102A071D0937EA",
- "derived_salt_first_section_no_de": "309DC23CF2D54546C61F14B4549BF4C3",
- "derived_salt_first_section_third_de": "DD49617AD5FE51CE8507FA0BAA94B810",
- "section_salt": "8241F3E1E4DB2E97DAE01171B8DAA85B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9B18553287D8E470B69464BC",
- "extended_signed_metadata_key_hmac_key": "8C4A5F44EFD621CEAF8CBB2EDD98255569B8797D00FA902BC90080D674221779",
- "extended_signed_section_aes_key": "A0C3FB16A4CCA929A8C44291EFB63B54",
- "extended_unsigned_metadata_key_hmac_key": "8190BE1E0816C03D5B89D46889328DE6B4AE37B1686F76959734027320FBD5BD",
- "extended_unsigned_section_aes_key": "5052866410F2D73EE4F16A87EEE4B542",
- "extended_unsigned_section_mic_hmac_key": "38377C50930E3E1B33716E4A8FC9336AD17993038CF626A7FBECA8B27C43E1A3",
- "key_seed": "89F647DCEFA6C22A86458167AAAD5890C5CD0189694852C9DB724560B92C7318",
- "legacy_ldt_key": "BFE86561B2813C4C5D2201507311AA29058B000E5087631CA6313D5364C8475E6C5438D031FF9D6BE7E7D3DB5F29ED947735139B79E9EC22A15741BE855B29B4",
- "legacy_metadata_iv": "80EE308C270A31E7CEFE8D36",
- "legacy_metadata_key_hmac_key": "8E39B73426A0D3E17394557759F9848EF56A63FA47975341C1BBA9FEADA8A95A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1F51",
- "expanded_salt": "D528F8630C0989C9BA5CCB0952F694D1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "498B7A572B22C3FDFA298FCCD997CA2B",
- "legacy_metadata_key": "17998C0BCFC1BFA43240D978BCCC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9C7FD43F30AD0E6F30CD7C3C8DCE84F0",
- "derived_salt_first_section_no_de": "51F798CB29DC500C8BA2A6F3A5A2F1CF",
- "derived_salt_first_section_third_de": "F1EF4FB50C2A173FC0ABF6327D4100DF",
- "section_salt": "9E1F4C742BECCC0A1C9A929584BAA76D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "318CE97EFD9042CE9437A09E",
- "extended_signed_metadata_key_hmac_key": "EBEF9C4263659E192C02EF6DB976B82D520AA2F1918276003997456597780FE0",
- "extended_signed_section_aes_key": "5277C92E53A1170B55872FDDDF3811D3",
- "extended_unsigned_metadata_key_hmac_key": "745D56B41AF8F7A62F7B6719F54B0E5E83EBDFFF9272204A04FA36E0E81A2B78",
- "extended_unsigned_section_aes_key": "7EBDD423C9FFD6A6528B8206D6B3DB7E",
- "extended_unsigned_section_mic_hmac_key": "E431B5EF001105B4A983EC399733BAB33A6A00C46A8902C451F337E53F4CC86B",
- "key_seed": "1CA7D061BB073BECC81CEDEE89203270528158F7852BAD78DF8E3C5A59378DBD",
- "legacy_ldt_key": "E1EAD1D1E2627B20F0781731DAFB7672E4A0A3BA5EF3FDFEDF4819F5C5B23EF29866E8D605BBC1A0D6954ED383E50417C89CB5F83A516E2B9186D60F31555F5B",
- "legacy_metadata_iv": "6BB9F52E3E70F0F2C6117590",
- "legacy_metadata_key_hmac_key": "09BDD63F12E16CA4736D298F00E18DBCB5F8DAAA3A927623C58D81280A51ADFB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8EE0",
- "expanded_salt": "9B801092268D6E6B6217DE4F87C5B5E3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "352400092C155BDD7E5DC6F572CB401D",
- "legacy_metadata_key": "3A5D7650A8B4F439867B062B0274"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "11E3E4C703822B7B5CB3DCF78E1C644F",
- "derived_salt_first_section_no_de": "03E8ED66BAB2F0A5DE1731728C2288F2",
- "derived_salt_first_section_third_de": "71C70C7A23C79259786C76B3D544A129",
- "section_salt": "28FFC183E6E83E27909BF00174FD1438"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7EECC69D0AC98A97BCABF84B",
- "extended_signed_metadata_key_hmac_key": "53F046F0C6500789831E448D428F0A65D06C52E3D108FAD9F3947BE1FFF8E413",
- "extended_signed_section_aes_key": "943CE45F3BF85ECDC0CA274E9B37804E",
- "extended_unsigned_metadata_key_hmac_key": "4F3AE6219A6E7D07545E977B6BC4A28D483A9E7BCDCBEA5DC5C3D592810A10B3",
- "extended_unsigned_section_aes_key": "AA6DD177825A2C8A9234868D2AFA3F9A",
- "extended_unsigned_section_mic_hmac_key": "9917C75397679FB11040BB432A87A2334F84AFEDB0494971950E4F3FADFAE24D",
- "key_seed": "71562416C458307DE73304ABB29CD1D74A7D5F4285DAFBFAAEA07472B6796A6B",
- "legacy_ldt_key": "1BD1B85EAE9A6AEFDEEAEDFB28E288AC6A1CFD09190DBA05148B16C43AC8734E28386E047F71233E80DF33F6F8BECC44A714682C6DE33E5753E1063734F676A4",
- "legacy_metadata_iv": "C62D4CF470090AF7A68BF0A0",
- "legacy_metadata_key_hmac_key": "9FAEB4B58D019287CCAAF2569A0F3B7E8FBA1179ACEA440F2071B6536635AAA0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1DF0",
- "expanded_salt": "D1198C20E1B9838904686D33FFD436A0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6AAFC25A951AAC035FE7B233C8E107F1",
- "legacy_metadata_key": "E740B0D716E03ACD98F4D7CB7286"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5C177D0CF549D5D6855182F7365E3B0E",
- "derived_salt_first_section_no_de": "31BCA968B3AE5BD11FCD8D4FC36D3AF3",
- "derived_salt_first_section_third_de": "6BEA8DC4F2EFC40C5E01609ECD70C065",
- "section_salt": "12F437EC2D63E77738BB50277DBAF544"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8D55E2C53953E8EA2F4C374F",
- "extended_signed_metadata_key_hmac_key": "145AD45B3A32DE1F57692159C589862030955C97B0515453ABE0D5E4EBEA0676",
- "extended_signed_section_aes_key": "6A06A808B948B629B2A9D96D7310DBCB",
- "extended_unsigned_metadata_key_hmac_key": "B802906C643ED793FD5772454E9E03E3ACBECF5D4C5F59AFA00143BCD9391632",
- "extended_unsigned_section_aes_key": "5B9D12ED5F138CA44DEFBDAFA7FC6F94",
- "extended_unsigned_section_mic_hmac_key": "13591EB0AD84813EF50B0F3EACD09B763236834FF76F94729881B31F89B8A8EE",
- "key_seed": "58407A8478E1A3C582C8FE78021D930091670FE8C168AA4DAB3B80756714AE8B",
- "legacy_ldt_key": "A2B2B38F626E5BC27A7D7A8FD9A8A5C22942DC4CA58F2434548EF639F1A8BDE313E08B0831852DA25CC206817A7ABD9DE35786017731BB00989865A767DA508B",
- "legacy_metadata_iv": "7AB4AD771EA42774AEF50BFE",
- "legacy_metadata_key_hmac_key": "A8083F2C3506650EF16CA2DB7668EBA186B3D858F3FA7D8951502A2303B9EE98"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0A83",
- "expanded_salt": "CDA09249FA5384B53229A8F0822FA54B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CF549B49AE0B248D62D86F91B0BF4C7E",
- "legacy_metadata_key": "47EFAB23E06A53D925B839EAAF2F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "945952BEF16F9A71B7DC174A72FA3C60",
- "derived_salt_first_section_no_de": "3E5E97EF4057DEA4839A3C02584CE5B9",
- "derived_salt_first_section_third_de": "69E54FC30647DEEC3FD4D5E0C2B0F733",
- "section_salt": "1C409D1B9F43EC0E55384301E3F3BAEC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2410B9A11A902D277F1BB6E6",
- "extended_signed_metadata_key_hmac_key": "FE2A1F093E203C1D6FB9817931CF7EC35940DCC6E7197E8C4DC079DD24A7F77C",
- "extended_signed_section_aes_key": "BAE6217625DD95FC4448B952C469D0CF",
- "extended_unsigned_metadata_key_hmac_key": "594ABF108A572A6E0A2C7936BF340DE3ED9B018D2567B431A1BA1D2FBCBA7461",
- "extended_unsigned_section_aes_key": "52399D51730A625EC710D28E15D01288",
- "extended_unsigned_section_mic_hmac_key": "538C35534101C3777D1EE622C755C9085E3BF0411A9965C9E6C29B166FB5C88F",
- "key_seed": "1ECEA38DB6B2D20D4427A09F843DBF0E730D2111DAEFB7BCDF3D2C4F125C546A",
- "legacy_ldt_key": "409D9DC7608791E33644EA0FBD5D569595ADC7199C416172DDF037CE372440B5247E6F1B65E3DE3F138FF3C0A2995D14F55853DAE46AB24748F215DDA93B815F",
- "legacy_metadata_iv": "23AE58673E7801483E6F6FC9",
- "legacy_metadata_key_hmac_key": "659374FF52A139B72EFA98189783E9F8523943A15220885AFD0EC25C710F967B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5114",
- "expanded_salt": "ECF59A4264C9A8A3BD8FA6DC482CEE04"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C4BC2E70ED29509B9621386B068E625F",
- "legacy_metadata_key": "2BA890E3B5F4FB970CFE53F21BC1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F2688EA01E7E54D0A4000CFB5AEA8AE3",
- "derived_salt_first_section_no_de": "544588DA8681AFAF2BA012CF32707447",
- "derived_salt_first_section_third_de": "55E452724CDCC6E0F3A4DC5C8F52DFCF",
- "section_salt": "098F9E2BD1856CEAF2C732AFA2E76B24"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "282CB0B93FD0D3D0571DC6FB",
- "extended_signed_metadata_key_hmac_key": "07CF62AEB9D25A0F2A7EA6A1D46F44D8C492867AE808B184F4F45D1ED7F8E3BE",
- "extended_signed_section_aes_key": "974FCCA0785B462E4A219C9848B7F049",
- "extended_unsigned_metadata_key_hmac_key": "7FCFAA5D8045D782F3722F98C746AEE1FB23F8D21B1A13C9EC100EB86E326672",
- "extended_unsigned_section_aes_key": "94491EA363E0D02C0C6688F048B542F6",
- "extended_unsigned_section_mic_hmac_key": "20A3716BF609EA36E0C7E0797323E7A3E51F8892391823C5AD2537FEE74B7EEA",
- "key_seed": "84D5740E0BF196AD7CB238C9F110025511A4FE3115377D8158088812C463E362",
- "legacy_ldt_key": "48DAD573AE53DA0232DADC4AC79E43F9A86F85FD5CE1F909EB70722568B4942EF4F717414474070EF8D9FC3A215A23FE68FFF3B952B437E5BB67E7B438C315DC",
- "legacy_metadata_iv": "9EBAEA5320ACFA552363339A",
- "legacy_metadata_key_hmac_key": "C918973EE790E0F7BF031A370970DB2DBAA0F4C9C27B14F9E0849227ADFAA9B5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4FEA",
- "expanded_salt": "6F0C9E9D15E34817DDFB5EC089E8E3A8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6B05F325523F36A983B4087466583132",
- "legacy_metadata_key": "CA6667D680F4B01BE8DA90B75029"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6C1FE39A40FC2BE1E73EA92903F1C175",
- "derived_salt_first_section_no_de": "FFE10354F13073D63EBDA1E8EABB5CC1",
- "derived_salt_first_section_third_de": "2832C5EA4EB11AB8218DF4EC12E5D25F",
- "section_salt": "B86DFB3A7EA54E44D9F3DA4BF90037AA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B15A9CC846B84A4FB80EC4A1",
- "extended_signed_metadata_key_hmac_key": "5618559B820CDA4B67B8786DDB76F42ED7D75750EB140DE9178F48F02E54A8EA",
- "extended_signed_section_aes_key": "FED60D74ADE95064F139845914CE6970",
- "extended_unsigned_metadata_key_hmac_key": "F37AEE524C763FA79CA15FCA99DD15F33BBD2F5A4DFC7B35559D83699B732751",
- "extended_unsigned_section_aes_key": "757D7360EF196CFEE94E89565874A68D",
- "extended_unsigned_section_mic_hmac_key": "73CE26A49BEF514379BC0BEFAF482EB608D77D8534B6AF87F97AD4EE4B4266B9",
- "key_seed": "4A19CB185017BF08F8BC3EFD464A5DBF232ED2FEE51D0D310066121FDE99FCD0",
- "legacy_ldt_key": "0734B42B8C3E6BDCB2598A17B2F5C6E74A893EC081CA3B7989E522443091D232524EB78EA7E050A1FC4092BF900C045CBE7DA80D25EEC1AE4837B1703CE7DFCD",
- "legacy_metadata_iv": "A66ECAA242F66C8C2B198DDF",
- "legacy_metadata_key_hmac_key": "1F8D6EDF268B52FA2D7A7F2BD697151EF3ACDA2A3813B71A2195D02DDA83E155"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5AF3",
- "expanded_salt": "AFD9752958CCB681DBB8B10B2A55DEE2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F0581B99C55817FE3B90D01C990B3F38",
- "legacy_metadata_key": "4CF84392AAC823633F0015BA640F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4E69A3CE3F7D8FAFC04C6CAF833600BE",
- "derived_salt_first_section_no_de": "FC1839D6FD5537F8C72D1E7181CD0A11",
- "derived_salt_first_section_third_de": "5D5E5AFAC5860C85ABCB21B338D781FB",
- "section_salt": "D91A27EE43A8ADB1A06454F3FDA1AEFD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AB8D7A3CDDC002E2D8CC7208",
- "extended_signed_metadata_key_hmac_key": "C43D187251AA6ED986A38844FC59DB4CB4BEC92471DDFC1FED6FF5D6089CD9A0",
- "extended_signed_section_aes_key": "70199A114A26035805DB26477A89066D",
- "extended_unsigned_metadata_key_hmac_key": "EDD44C66F38BB37C9EABFD57F1BDA42DB0FBD8CEDA5CFBD32AB2B549C8C0EFA3",
- "extended_unsigned_section_aes_key": "1923C8282DDF547F6343619188663757",
- "extended_unsigned_section_mic_hmac_key": "9D82098ACAA3C3697BF9F9DC0FA51B1ED9496F2354550E2FBC267C9C5D91987F",
- "key_seed": "E94829756D752DEC9EBBE973CF6845438E5BCB2192BB0F5281C43BF246F7867F",
- "legacy_ldt_key": "1D097386120DB785D06957513497C7BAF89CFE2299E151B3B520ACEA68512EF70A17AAA8EAB9F1B638B38242D74571E743BD2BDA8D30D10A563E46488B70B4E6",
- "legacy_metadata_iv": "7C0251E74146B2C883EC6831",
- "legacy_metadata_key_hmac_key": "58001EEE906D22146B419550A25C888189C6588136C5CA5EFE5661BE15AA8F25"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C5E2",
- "expanded_salt": "6F5DFD9825B48E3A5DFEF09A20AB2BE1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E347096FF09C474D6478555652A8E1D9",
- "legacy_metadata_key": "704A01D9EF853073E0E0C34C89EE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8A420E013464B670D841946CC3502329",
- "derived_salt_first_section_no_de": "9E4402102BBEBD2648CC179643F75613",
- "derived_salt_first_section_third_de": "8A97A2600CCC0DE6857C4D5D0FC10DA0",
- "section_salt": "416AE60C89DBA3C5919CDE8E585AD63A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EEEA0893E452A02DCBAC7C12",
- "extended_signed_metadata_key_hmac_key": "9DF189E263C53313E6E41E16574D7E7BE68A325084AFAFE57AA93F73B050CD09",
- "extended_signed_section_aes_key": "226EC6ED8B888798C320D202F25C7809",
- "extended_unsigned_metadata_key_hmac_key": "605B8BD618231DD8528E5DA0A8B23F239CD380C946747243501DEC4DF04ABDFD",
- "extended_unsigned_section_aes_key": "E42CDD7764D8B7AF8FA362259765CB19",
- "extended_unsigned_section_mic_hmac_key": "E31827A9B316658E29F1EFC3C6EF3461079233CDA90197B20EB0B5016CECD58A",
- "key_seed": "C363375FFF63104B0D8583E44EBA911772D363D9AD61EB686B8D6209EC6D52B8",
- "legacy_ldt_key": "C2A6B90C8CD00C6D7F8EC096C2B21C398D52B16C5E4023AB20E224441905836D9897AA52980DED05B3014F76F92DFA7851A545930C9129317791AFEDE1BFE460",
- "legacy_metadata_iv": "6731E6D43DE74BFB45D86C82",
- "legacy_metadata_key_hmac_key": "E7C1C4BBCA6E4E96DE9BD492CDA42376323DEA7090C06556284C202AFEA3A0FC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2841",
- "expanded_salt": "07A5908B387D93F82E60C3F7F3E5388F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4297B80865BDB11AAF33890CF8C75741",
- "legacy_metadata_key": "2C99BF16D3D7B3004BAB5A6EF04D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "338DB861B307375E6D5555198D11CBBC",
- "derived_salt_first_section_no_de": "2172D2090870A0257CBA4C232D9CB615",
- "derived_salt_first_section_third_de": "7D2ED4E48B98B74651D34E9EA64AE010",
- "section_salt": "4F9C8DDCB6E409688AF6BC3A07AA23A0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "25CB8DE9B7812B413FC19351",
- "extended_signed_metadata_key_hmac_key": "26FE763D5A5BAA4AC963DD15B3F55F37F6BEC473F4EAE66C3A6A448830BC6515",
- "extended_signed_section_aes_key": "79309C01DBE869016B634C796B433FE2",
- "extended_unsigned_metadata_key_hmac_key": "659F7686B11F95BC69F29CCEE60FBE1BD115AB0C023BE88050B447225BDF3323",
- "extended_unsigned_section_aes_key": "98B208C8587D09A95DF272302EA3D737",
- "extended_unsigned_section_mic_hmac_key": "F09EB3A16143CC5BF70D368619C3923EFEE5EB2A2B445AE2A05BB97291773E0F",
- "key_seed": "5DBAA2F90A2CA59DBB9E40EE5F3315F00EA6CE94FA709385E121DB9D993C49B1",
- "legacy_ldt_key": "0B265250D17F0DB0A046ECB3E5EE4B0CFB3F77CEEC7B0CB98C42BA48B5AD1DCA07938C4D23A75E1A631B457FB8C2221908EA6E0ADB375D98A1A0018E11C7BE95",
- "legacy_metadata_iv": "05AB5BD7E0157994979B44CB",
- "legacy_metadata_key_hmac_key": "630E881D991B9A00C248E3C70B83D36CF635F70CE936C9110298F10505D1A7F9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9E72",
- "expanded_salt": "D69DF5360DD7F12A56504A2AF80A6680"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "547D8AB9E9C036C4B55F4482839C6AD1",
- "legacy_metadata_key": "1FF5BAC3695FFBE52146526C4BC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D8088B905B7F6226099C920AD5B7E7D4",
- "derived_salt_first_section_no_de": "397973A3A7A95EE785ADBB424F7D688E",
- "derived_salt_first_section_third_de": "79FEE41CE2EFD0CE378F57B18978EBBC",
- "section_salt": "2BBC0DBA9A8167690E12CAB5D3E8C755"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "019C940DF96F875C3C2F85B8",
- "extended_signed_metadata_key_hmac_key": "AF5E71BC8D60FD1FDC045E7B9C11BD7EB1912A9BEA69E70C03BADCC3EA2EB796",
- "extended_signed_section_aes_key": "1E0415A0F457A6C0E2EF20E928B2E5B0",
- "extended_unsigned_metadata_key_hmac_key": "63A51EEFB7718E62A8C2887F8B38C50B56E85F2FD46F1B6B075B53E84851E806",
- "extended_unsigned_section_aes_key": "15CB95EC5B454EA74BE165D50684E7C1",
- "extended_unsigned_section_mic_hmac_key": "4FC0F85EA8CD1683980A27588C367554A87F9CCB02B8C246271ED9A76B51EF2C",
- "key_seed": "F71473E4DBB0209E50FBC8F205A5219407BCA57B7929A1C353488EC523DFA57B",
- "legacy_ldt_key": "7FC4F36C8E76BA4D6A6F7619F25FED6C4FE6D7C01FA31E61E2E426F314F70786E9FAFB28B1D3A9B1B6CF5855783744BAF5C7D38DAC1EB18392193F2AEF2B88EC",
- "legacy_metadata_iv": "0885C4C02065A4B27A6B32CB",
- "legacy_metadata_key_hmac_key": "5DA0BAE887DB5FC09E870436C8CCDF3EDA68C4DBC7AE446254605451E82F41EF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2DF6",
- "expanded_salt": "04FE5160B1E3288BC75531B3D27E222C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4C85AC2A044F7BE17DDED8212F4842D2",
- "legacy_metadata_key": "00F1A3FCBF1F8D19C12A72062C94"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CF107B15B0250B73BF3D8FC4EC80A322",
- "derived_salt_first_section_no_de": "9725182394A85E6AB88FDD150FC8B28C",
- "derived_salt_first_section_third_de": "453FDF516260566C2323B8A7991F4DBF",
- "section_salt": "5F07065E49C5E06926E650B2C8737C5A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EB848F34FBBB3AD408CA32CC",
- "extended_signed_metadata_key_hmac_key": "957915F3959B4921CB7C88231168B6723F0820BD1C2454F5D98899F9F6C7B60C",
- "extended_signed_section_aes_key": "D332423F8250FBF74FFA0EFC8DB5B42D",
- "extended_unsigned_metadata_key_hmac_key": "D42D4CE417E6ED0F18854636F56DFA2CEB3DEF5ED6A75C6F8C5EC19B1FEAF79E",
- "extended_unsigned_section_aes_key": "CA9C7F7956A70FFC97094789EF1931F7",
- "extended_unsigned_section_mic_hmac_key": "244E1C57C90A3E68F5D34D7410D3FED9E7ABF3B89A67F912DD2252FDA0144480",
- "key_seed": "7B4F339973DA24ED41682640B9985B6314EA135D35FA7E85582B7974BA851FB7",
- "legacy_ldt_key": "0AB9B73CAE6F60F0255BE14481CFC7F7179DCACE69F2D77EC75F11FF72AA1B4044E7509CB087687A2F0E74399E6E905E635A9C2D5067078513648F824B235207",
- "legacy_metadata_iv": "DE0ECD95680B33B2BDC7C900",
- "legacy_metadata_key_hmac_key": "55B598B54EF5DD8FDF05E2C6F4723880284CB0FE88EF7EFA37027AD4FCA59426"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "57A6",
- "expanded_salt": "D17A83B09A4EB72DAEE6A98DC75CCC77"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D8BF18F3FBB5224C4AA528BCBD341A23",
- "legacy_metadata_key": "BAD6C0EF8BC130A2D018C338AADA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B95ECF3EB94CCDF3D6AB2D600547D979",
- "derived_salt_first_section_no_de": "0733F30F13EFC7CA012ADC3F904DCA31",
- "derived_salt_first_section_third_de": "102C9BF6CD4D09C56517D9CF0C7BFAFD",
- "section_salt": "C01BE9ABA5F0740A5B321A2A13DB17F6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "70043A88BAD9F62892819C4F",
- "extended_signed_metadata_key_hmac_key": "B411748227F1D366F8F6960266A186693CF49D8422C1220F640C4849D96D45F8",
- "extended_signed_section_aes_key": "667E0A0B81D80686D377B49A25497555",
- "extended_unsigned_metadata_key_hmac_key": "BDCBE9C1148059757D9A3B3967B093938EBE237A3EE677333169D1831F5C3AD6",
- "extended_unsigned_section_aes_key": "EF1D61C4AAF4C4E8FFC3F152850367C0",
- "extended_unsigned_section_mic_hmac_key": "6BBF7B367B2A2A477169819C4A97852596863768AE6198D856E4D2264562C210",
- "key_seed": "1EE2FF953CE142A7B2E999F7C48103BFAFF3DB886FFD368C7BB0ADB8D4C58FA4",
- "legacy_ldt_key": "A4E503CD30DC823E64C03A7B92B322E5F4B3A0C16CD6A42ED301CFD1726D04F438F6242E24A91246611E4EFF195FF829AA51E0F47CF3D4C691BED53482ADDF67",
- "legacy_metadata_iv": "B24C3AB95C519434F823DB04",
- "legacy_metadata_key_hmac_key": "4D5BDA26BD233A16FE809C4F5513DF7F1C0ECB6A844C4D628FFBE6AF6F6B95C7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2F24",
- "expanded_salt": "A8E2620B6F3D03BB1C3492EB274F8368"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FBC1C04BD027AC5D770F3D41F6F35A3C",
- "legacy_metadata_key": "5206B70806118D784F38962C84C1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "36951545C1C1B4FF6A57F2FCDE666E42",
- "derived_salt_first_section_no_de": "0970D3A45D306768E8BB8E650F72B00A",
- "derived_salt_first_section_third_de": "E2511F9E094408D74F725B6166AA8594",
- "section_salt": "0EA80B5683B9618A830B8501ED2168CB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EBAB50508ECC740D4B39285A",
- "extended_signed_metadata_key_hmac_key": "FF02996F83C64F367FBAA16E51722941651BC7BFACD0CDF1A5E31BB3E40BD6E5",
- "extended_signed_section_aes_key": "08A8BE83B39EFF2F483BC2529E80264C",
- "extended_unsigned_metadata_key_hmac_key": "54C09CB874D16FBC0B105FD42B8000547BDA954C63800298438E68D7BCCDC6AC",
- "extended_unsigned_section_aes_key": "C2AAAC4CFD097053DBE4BA34CBC1567C",
- "extended_unsigned_section_mic_hmac_key": "1067AE1FF8A75E589CC9FBC8871C2145B7B3A0196BC2608415FB20B681B30294",
- "key_seed": "14E03DB56A82303DF8A1E914C3C8472B68F85FFC701E0601096E8F67C17E70FB",
- "legacy_ldt_key": "75DAF0F746665B043CE35C1DAE5EE45614768D54AC3684C96D6F5EF7A1E2A8DC41DCC379378A3C757DCC3A3877317B9D5CE3E337CB7A9D849E0B1D2835FEA464",
- "legacy_metadata_iv": "5D1B7F9E8C9A65ED0961E6A7",
- "legacy_metadata_key_hmac_key": "2F20DE24FBC89A3593A0641B963B79D97C99CE110B7F8B023A6ADB7BE948CCC5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8CE4",
- "expanded_salt": "247E04CC5DD33C86F7B68BB79EC729A6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "45A5EE31D6BB4B2245D3F8651AEC0F5E",
- "legacy_metadata_key": "52C16C8EA8EF68D5110267350641"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6382136A7ECB39D12EFAE64795CEAC8C",
- "derived_salt_first_section_no_de": "904CC68616E78D3C9A1EA4B8A32650C5",
- "derived_salt_first_section_third_de": "92F67E16745717333787C86C20BD18E9",
- "section_salt": "9BA824E09C3F878904FC78809C7E1DF5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "21E675D6C4AF9DA4BDE85FDD",
- "extended_signed_metadata_key_hmac_key": "D5956ACEECBAE70B04D634628974AE42092BC085CE48720B72EC7AF6D032E110",
- "extended_signed_section_aes_key": "28CA04E38CF0AE2CF609D5882D4CCDF0",
- "extended_unsigned_metadata_key_hmac_key": "B35BDF67A2C3D3D34EB16255E216ACEEAE36F52CE79F21B98AAAD9125219C0D2",
- "extended_unsigned_section_aes_key": "03173E282EDBBEA463F12477021D0567",
- "extended_unsigned_section_mic_hmac_key": "413A3B2ECD5D5E10E3A07335B93D5664855203CF1EE60D29A24AB0328868F224",
- "key_seed": "D695E53D9D235164E322E8737F1EFA4FDE9071F5D5BDB07FF700FDF356EA7270",
- "legacy_ldt_key": "DB0B1CC70EF57D309CB650AB53104FB7EBFF16BE3B06BD4C3AB80C8FB9730D3C1E42DBC3EA8FDF9FB1332CDB95024134DC82D667D6BD38B840EA412B216533A1",
- "legacy_metadata_iv": "BFD11F137A66C2A2FB75F025",
- "legacy_metadata_key_hmac_key": "573F78D4BE9092AC065E20A88E1CA9B5F78D77870EAB6416DE50F16410E83561"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4243",
- "expanded_salt": "6352B840D9D6B2AA16264497B592963B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5549714A1873165108B56C470540F706",
- "legacy_metadata_key": "7F84E78A3E2828BA800C1A6DB08A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6000B49190E9E77E88A3C37A993AD274",
- "derived_salt_first_section_no_de": "5860393A9EDE38FB2D584DAF9EFF0786",
- "derived_salt_first_section_third_de": "09322300BFB2ADD3AF15CF123FE33B16",
- "section_salt": "0EAD3F637EDE74C995801C34794EEB5D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3B3B6DD78808263BEC9FC695",
- "extended_signed_metadata_key_hmac_key": "3C234DCDE605067BD3D08888C1F9363B0CEF9C53E5F2F77F5F986FD4F20760E0",
- "extended_signed_section_aes_key": "D3A52A6B112F68F36DA7E86A197CEE2A",
- "extended_unsigned_metadata_key_hmac_key": "C2A9F72D899B04FDCACB05C5BC34CF1FFE9A33CEAC0813E3BCCD368914EC8828",
- "extended_unsigned_section_aes_key": "5178F202F905CDFFEE39A983B68CE6E8",
- "extended_unsigned_section_mic_hmac_key": "EBEE3A5EC11909A87BC33C41D1A7D56EF60FB963C136870B259DC13EDF287C54",
- "key_seed": "ADEB33E5FC043A308C56AECD101AAA3716B2BDAF14CD78F94282E176E35C7234",
- "legacy_ldt_key": "AEE6B5AF3CD1BA37775AB5333455EB93A0C692A8F3E60A5BB49FA741DE6A8DC87D07B4EB6399C55E7B8EB45043E0C598793C2853AF886FD453341B281D7AC084",
- "legacy_metadata_iv": "FB4140B020A76551824E332A",
- "legacy_metadata_key_hmac_key": "ECECA794E7A1B49A23AD53AD1598145CA730BA2B45E55958E9B01AC3E3EA3481"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "80FF",
- "expanded_salt": "25ED4D5E26EA403D81C40416D014656F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C3C2D5075B5EEC4E2987CCC2294E4102",
- "legacy_metadata_key": "5822A4C289C858A4455961B16DDE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "515EA1097C989D7AC050F82703B5EFAC",
- "derived_salt_first_section_no_de": "5FC20A5EC5191BFCC7C5977836090D17",
- "derived_salt_first_section_third_de": "B00A8F4B8A27EA3BC366C786EB6B3D4D",
- "section_salt": "62B0E5F72BDB76FA824A7D5D3B58CE2C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "700F88C5B66C91D686DED84B",
- "extended_signed_metadata_key_hmac_key": "05700F12EAAB58525D66579FE62F4F9AE7D3A5EFF97619586A382BC5F97DA68C",
- "extended_signed_section_aes_key": "62494A692D4DE047681EBC4530EAAA92",
- "extended_unsigned_metadata_key_hmac_key": "21A3AFBDB78348DD2D31F2D2155DEAF88750CFA34749D1503A0D36C533900001",
- "extended_unsigned_section_aes_key": "FE6D61039E6F24E0C14DBA5072946AEA",
- "extended_unsigned_section_mic_hmac_key": "D6EC264359E630D75DF51771DACC089E279B1D6D6C73DA258FEA124F17A03EF1",
- "key_seed": "D72122A676AFABD5812450D135C1DF7398914B31A7886F52B0B643BB6B38F8D9",
- "legacy_ldt_key": "18FA81EC4644386D835863A8182F90791230E370D893CC2C09BAB31C10EC1629767844839CF1B196BDD7E2CE8FA8BFEB0165796777025B403AFBCC5B1BCD6EAD",
- "legacy_metadata_iv": "11DE7177EDC717B3E154ABFB",
- "legacy_metadata_key_hmac_key": "6888DD7B73B0313A5C00246FB6E5611DA633DB1F1B28FE7010607BA11B12555A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E089",
- "expanded_salt": "DD21A19CEBF5B0927FB26A1FA30BFE83"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1C4893EC49884787CB7B5EB7218ACF7A",
- "legacy_metadata_key": "2461DE7E034398FFCD0D8B6A3A91"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BEEDC0F1F1BED393F28EE046B4A15207",
- "derived_salt_first_section_no_de": "CD88053A5B82C4BF374BBC506E248B05",
- "derived_salt_first_section_third_de": "FFAC26AA2DADB28F3F328E4C099801E3",
- "section_salt": "DBC45453EBFEC22350F027F895A02939"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0A2F2F978DAD40C7D91E974C",
- "extended_signed_metadata_key_hmac_key": "C12DDA151B408903CAC8F9B82582F255844448C8CA785E3DBE1427F4317EB2ED",
- "extended_signed_section_aes_key": "ED5DCF29A5AC059EDC15AA4F7D7E936E",
- "extended_unsigned_metadata_key_hmac_key": "F4590F283965E036F78858EBE3203937B9CD6538FE49CB4DAF05F25EB402EAB2",
- "extended_unsigned_section_aes_key": "408850C64BA37561C64192DA2DC9E469",
- "extended_unsigned_section_mic_hmac_key": "C25B861077237071681C8164FDE9A4F0EB631270EB69AB0A561E4AB6C7DEAE82",
- "key_seed": "77FEBFE6BCBB600D4609CE86A5F59EC2FE81D6E6D1B0C58EB8BE85172F2B0693",
- "legacy_ldt_key": "ECF7A380EFC3439ED871C84CA1581B79393D5286A3A3B8A832E9D03CF23A33FE74BA039E0905CC733BE9681FE9688CD77BEE577C6C1CF12C5B11515418E1C5FE",
- "legacy_metadata_iv": "AA6F9171FF09347F5BCF75F8",
- "legacy_metadata_key_hmac_key": "D218CA0AAFC226A0ED908D55813CA77D8A08D981C3F10FC1D11E6A7992C54BCB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "06C3",
- "expanded_salt": "82FA854A9C3BBDE056B6A72B9497C394"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "58BABD923FCC612F49CD2990D9343680",
- "legacy_metadata_key": "8AF0D7807DA48473C1A2F41872E9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "866D9F868232B3A1534E87F4DDEB9EE7",
- "derived_salt_first_section_no_de": "726D98C1FD760A663D7D42FDCE3D0ED6",
- "derived_salt_first_section_third_de": "7BC9BE3DC5A037B85EDC7918FE9CA6B5",
- "section_salt": "0CF0DF09A4062B2BDE04D2597874B4CE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EC31E4FC03496BF234F572BC",
- "extended_signed_metadata_key_hmac_key": "D0D97D7A0A9077A0F710E3DB5C4FF7F7904C5BE29E60E827F81DE8D6C10EE869",
- "extended_signed_section_aes_key": "CF697FDE873869209E4B06ACAC947823",
- "extended_unsigned_metadata_key_hmac_key": "A3359980D418F42CE8F6DE08BAA9999CB1B96D7FC8E9BD21E3D2BB967BBADCAF",
- "extended_unsigned_section_aes_key": "F772889E7238B21A1AE9C6A873ECDE5B",
- "extended_unsigned_section_mic_hmac_key": "1AF1D2403C0846A53C65CFEFECA399510EB8FF8B2827BC3DC09A4E3BE3EC76D2",
- "key_seed": "B16DFEA1EF1DD2D2E8218CCDE75E1C9564DD0F3CA37114B251EA3AE2DD53F866",
- "legacy_ldt_key": "B60F849BE7BE505FFD18BE13E8355653C28ACE1D7B5037B49F2520CE034C3D94B1205FACD6EAC75E2EC6653763182F725675778BA3CD565901E388C54FCBE1EA",
- "legacy_metadata_iv": "4112233202A006766C970765",
- "legacy_metadata_key_hmac_key": "AAE41A91F7E06B7D2B7651DF82F541EC046E88ECEB05BACD5D8ED98BCBA9AFD1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "34FC",
- "expanded_salt": "7F6D4F7AA536B35AA7134DB465550419"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "53DC3233718BCECDFCFF1C5E73EE97A5",
- "legacy_metadata_key": "3FBF16040F2DA03F217FF1EC4857"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D9018603F5FC11AF2608A2C430BC0750",
- "derived_salt_first_section_no_de": "69A897011E01B9FEEBECEC2492EA28FE",
- "derived_salt_first_section_third_de": "C39AD5EA45BB66E3F33722B5B1452527",
- "section_salt": "683F40512B738AF68BE11F9105855973"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3B9568B6D3836CE04FA6D217",
- "extended_signed_metadata_key_hmac_key": "82C630CCCA19F3EFDFAF13764C6A78C0469C9F53DFF8608E89BE8559A4DF0766",
- "extended_signed_section_aes_key": "93EF49CE6E1AD15E1D5979FC517375AE",
- "extended_unsigned_metadata_key_hmac_key": "34031D74400EBFFB80A1A7BAECE29F68D2A5EF78647FFF35683EB5DB74D2C928",
- "extended_unsigned_section_aes_key": "4D823FEDA37BA3695CC12DCF7142698B",
- "extended_unsigned_section_mic_hmac_key": "E81598078D108D03C2C16DE9049C480C38E099411ED8B3302BC696368B89D350",
- "key_seed": "5FA6A5263DE8F98A1D5BC19664B59DADB2044891CBC44C5F7E32442CB53DD01C",
- "legacy_ldt_key": "5F79173C1B65CB82B4CB0155D46A7C517CA5767BF6D5FC66BF81A5AFA59DF6BEE16B66B94476903C73A8895F827F6C7DB8D73955B6C9CB5002C25164EE559BB4",
- "legacy_metadata_iv": "06D0664A1C1C900CAE44733F",
- "legacy_metadata_key_hmac_key": "2ADCEB7FE079D98E67BCEE3FACD732FCA9B72F0D5D5D1487749A90FF7987E493"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "81BE",
- "expanded_salt": "CCC3B93239429168BB26D17C0881B7BD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AD0B6DBE348760D55513207C41B66C15",
- "legacy_metadata_key": "CAE5A5B05A59AACAF5503176402D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "719AEF5EB646D63F1674176B16E4B979",
- "derived_salt_first_section_no_de": "51A2C5979CC91352A2B65CAD2DDD51EB",
- "derived_salt_first_section_third_de": "5C9F194243A6E9EDF3577F9CA3F6AABB",
- "section_salt": "D106015BB252C07D1F138F1FF38DBF80"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DEDF7D0F65F641156FF79BE8",
- "extended_signed_metadata_key_hmac_key": "5848A402D1334BA967CEFA1EE2F046D584DB97A863688BC59EB3B8D28683C137",
- "extended_signed_section_aes_key": "781AB724AA4BF36C176F67BEB8E08DA9",
- "extended_unsigned_metadata_key_hmac_key": "38BBA32ECC2E3C06B8FD93025DC3BBAB3A203FF06D311D7F39BE62F26F89BA59",
- "extended_unsigned_section_aes_key": "CEE51C278519809EDBBCAFE6503ABA37",
- "extended_unsigned_section_mic_hmac_key": "363CCF3745EC2DB3776755E9E4A6AC0918661F7356C81EF0A2B5B530C3A586D3",
- "key_seed": "0A209E8CA173418DCA3A3F87A6430AEB9FD451BFA35DCDB7FE6AD6074620972F",
- "legacy_ldt_key": "21F36990A9038767A0C336C3D21396BC5E0E43ACEB53E7D5D0BCC79CF855693D4185016C8DB25FA8137DAE515F2834FD73B7AC4BCB26C79D17D0FC2B38379C36",
- "legacy_metadata_iv": "88B397FB9675D70F12DE5CCF",
- "legacy_metadata_key_hmac_key": "4F5480D57D484944629B6102BE94ADF692F8DFB0D15BE8E078D2168AA14F4288"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EB7B",
- "expanded_salt": "E35665C17AC24CA9C06FC16C269F45A2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CFF54CAE07DBA0AFFBF81610D23BCC86",
- "legacy_metadata_key": "2678599DEC25F30C897A2C36F3F1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C5A83670BFA0E319D7052CB662D1E093",
- "derived_salt_first_section_no_de": "9572EB134A6D6443153F45BA6D381719",
- "derived_salt_first_section_third_de": "F78D0B4F568928E27B30A7681DCC926B",
- "section_salt": "217339DF7BCB0A653F78BB5404C8BF9B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BCA9EAA873466699FF56B846",
- "extended_signed_metadata_key_hmac_key": "55814384C91434F1BA3BDFFD1427213726777E8469B46B82FDCD73C9CAA708FB",
- "extended_signed_section_aes_key": "24850292882866D4E1ADDD9975C0F9D5",
- "extended_unsigned_metadata_key_hmac_key": "49589D0AD3D42EAEE2A6BA545C3685AA13F9CD7FF8BECF9B94BEFCB7A7400E39",
- "extended_unsigned_section_aes_key": "D13D88ABE912A5C13077F05195940DD0",
- "extended_unsigned_section_mic_hmac_key": "D31CCDD93DF704FEDF4AD56C4E3BFAFF8F3D249D9CBC2B6E3097672B7BAFB7AA",
- "key_seed": "79EEA4D22DC1CD7E376BEF311E04AF6F8D906CE4C2A229C48069881882813B27",
- "legacy_ldt_key": "7A888869E0C0965343D41B85DC3AA0AD92E842A818554738CA0AEF5E939E068B6A408EC83E841CDA047F0C2D75FE5E7599D0A08983192FB1231B04977F243074",
- "legacy_metadata_iv": "EC4B49BFB8A8EFB8B02A7C3A",
- "legacy_metadata_key_hmac_key": "D2AF89463FC6988CA55EA6F943CA1D570F0666609A14CB85A5DF409C8D4FBA62"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DB78",
- "expanded_salt": "221D255B98999B3AC05D0B5B68297FB4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "17CB2DDA70F5C129039DD9C6A287A295",
- "legacy_metadata_key": "AE1C6901980307F7D140B26DF09B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E824E6730E348EC4E053816B5CD73BFC",
- "derived_salt_first_section_no_de": "74A531B2294FD2D175840698095E588A",
- "derived_salt_first_section_third_de": "5AB82E604DEDA4E4BC0660877E60958B",
- "section_salt": "1FCF7D33706253A01BE1D472373AF844"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "19BD98967671508358A8844F",
- "extended_signed_metadata_key_hmac_key": "5BBE4746A684EFEAAFAABCCD84986318DCABE58C63D659FC1D150081F55E6275",
- "extended_signed_section_aes_key": "ADBB724ECF5DD6CE41E5002509242935",
- "extended_unsigned_metadata_key_hmac_key": "29F9DEB82A55FE13E0E7D1E7B78C19A2FE9EF6A941545D62580425AD9EE72C37",
- "extended_unsigned_section_aes_key": "15D5AC6D16DC15B3B9BE9DB755EB0C48",
- "extended_unsigned_section_mic_hmac_key": "3FF8BF407A281A0B4E80CB95D974387ABA6D5884627F6A362CBAF05F476AF642",
- "key_seed": "14A8FDAFE9837EE79A7DC27AC79AC32F840D45C627EB036B7D895EB1CDF90238",
- "legacy_ldt_key": "6AB9C15C86DE1FECDE9CD4B903582E5FE6CC80B1F7DFE81772902164865244884A3391A2C7505A7A916133960AD48633E9A209858DB927F00D858E70D7E0CE39",
- "legacy_metadata_iv": "8171098E8F54229537F39369",
- "legacy_metadata_key_hmac_key": "0F256BDD56B6E40D82CB5C64E87E58D13FD858AB64F262A8BBD0F94B0D8D15F3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8F1C",
- "expanded_salt": "42C7F60536788F806A134CF33CA77EE3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D39CD535418302FAE8964B70CBD88234",
- "legacy_metadata_key": "0E01861150D977CF1007112152AA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B0AE7918F552C3317004D09E68F8EE46",
- "derived_salt_first_section_no_de": "DFD4EAC36BE36501560ED6D21C3B7D0B",
- "derived_salt_first_section_third_de": "B65E8D41DB6AFD05B01772DD5235D3D1",
- "section_salt": "1B1821D6C50F7C44F18E32B29DE9E96F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D109765ADC51B8D15D15EFDE",
- "extended_signed_metadata_key_hmac_key": "E40B2A002D130D6992BD4CE12BA42BE3B21223B1DDEB2B64D333C4D144663478",
- "extended_signed_section_aes_key": "C1D7416B06A875E6AA7BA97505A5C95D",
- "extended_unsigned_metadata_key_hmac_key": "7ABF136BCCA9DB28909107E32C85A5F4C340881185D8AA9406D7AFC7287271D3",
- "extended_unsigned_section_aes_key": "6E110445D33743CF730C7ABBA2A4B881",
- "extended_unsigned_section_mic_hmac_key": "57A9D6E72E03E36A210E43753C3A53D8497C86C80E288295EB54FEFDBCB5D0AE",
- "key_seed": "A346B0E9EC41276E8E171E8640A7CE7B056036DAE88D7AD4A0BD1A38715EA905",
- "legacy_ldt_key": "4C9AC3C7C4A913A7CB8A1A7542FC127A565E50824229D45E5F4892F1CEAF2C854992351527447FF7039C18DCB7CB490268A18823C9BA20C4279BBBDF41F62924",
- "legacy_metadata_iv": "51CE731B3215B05B6CC4FD9A",
- "legacy_metadata_key_hmac_key": "03B43E747BD39C4005E5622C9858E25691CFD7724FE5EE71E47D2938B8BE43CD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8F31",
- "expanded_salt": "FEED2C70B908A26109A3E69A82FA7B46"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AF0AA5C3CE87DE5D555CEFAAEC31AFCC",
- "legacy_metadata_key": "AE3B227B0C4DD18B921ABDBFA347"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2D3727569F08D2E61F0C276B2B559D8A",
- "derived_salt_first_section_no_de": "77FD1F5A6EDD2745500D6D9470BB9045",
- "derived_salt_first_section_third_de": "BF21B8156D9BA1344649F355E496FC37",
- "section_salt": "8B5A73A1F58D32F230ECFD78DE6158C2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "26B15DF60D1BF6E48C58B679",
- "extended_signed_metadata_key_hmac_key": "0C64F5436B45427924BB7BA559E222759061DD7643E8CB2F3970347DE949DACE",
- "extended_signed_section_aes_key": "060DAEF25320C279F37941C6E1BFD52B",
- "extended_unsigned_metadata_key_hmac_key": "C30C1C3A43C8EFF351054E242A4CD0B52975E1488B5E819EDF48F4DB07591F1C",
- "extended_unsigned_section_aes_key": "6ED789FF7D53B31E097D8346B961BFBC",
- "extended_unsigned_section_mic_hmac_key": "1D1C3BA5A1D4647D95EC7F50CDF1608050DCD41E233A4883FDF02268AB64780B",
- "key_seed": "96ACB0FE9A770E7300D622C9B4DD0585C811D92B438A0F75CDA56BCF76623585",
- "legacy_ldt_key": "94B85C17AF1FF025B71D215953B48D2E08D250AAB46CB3BB4213854295A553EDFF49B5447BEDD55DB9DA0B760529FA677738BB85A2BC65AD4DCEEF6BB556985B",
- "legacy_metadata_iv": "E7E2C9790F047E834427E2DE",
- "legacy_metadata_key_hmac_key": "997068B1C0EE77C4C08769A0D10D599EB015CF16C9A1D6773632CE405350B79F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0395",
- "expanded_salt": "9DE4B37DB2B2AABDB675F2D45D5D19CD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E5E82694954C79AEEBACC8BA590CD156",
- "legacy_metadata_key": "218C92CB542D55B8F49EC740BF55"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E094AC4073BB5748C447DDD5C5163E72",
- "derived_salt_first_section_no_de": "B6C5B399277FD9C6E03B1406400DE3D7",
- "derived_salt_first_section_third_de": "50DC477A1568CB6C470EAD9B47385E2A",
- "section_salt": "5DB0EC56C766D0663005F27A3EF4550A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CF025D1F19CF44FB243F0401",
- "extended_signed_metadata_key_hmac_key": "09FD69E3ECC61CD4F27E553709ED21B4CF66C4DD9F1113D5B55F39F033E8609C",
- "extended_signed_section_aes_key": "FB76609C1F6ED5D27BDEE9969F851881",
- "extended_unsigned_metadata_key_hmac_key": "48C305A6C81DD96531A495C4989F372E80A01EC9285FC0FF28A18D20D2D50CCE",
- "extended_unsigned_section_aes_key": "0DBAC3575B2EF29545B9191A1A326EF9",
- "extended_unsigned_section_mic_hmac_key": "46B9760F2D930FABD9581E7B19C7840AFE9B81D0FAA0EAFD04F044F844FFAF91",
- "key_seed": "5162DC0F642048FC6FC561C85FE6C041EE20A984D83AC8F9818F71CABEA395CF",
- "legacy_ldt_key": "22BF58B3D1D5ACFA37A407BDCFB0376945AB2F6629133D68D6C6CE8AA4F7E65DB245C8961A23CD4970C82A56E55CD5CE4AD300021C5B25418A4FF814342CE181",
- "legacy_metadata_iv": "E5930B6DCE9109839876405C",
- "legacy_metadata_key_hmac_key": "7544962C246D2FBC05DCC4909D3CCC178838F0BFF494772627F76CF80B74E48B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7FFE",
- "expanded_salt": "AB3029583E941316B279157B8D19DFC0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "36D490B6EF3A89CF97288EF6BA78F90B",
- "legacy_metadata_key": "2D00E9D117E2DB7EF618C57C9108"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "00EC063DAE6C3EA3F8DB672E3558649B",
- "derived_salt_first_section_no_de": "3FB72DBCFBB28B2617CB3397F9865173",
- "derived_salt_first_section_third_de": "293F6CCB829807506A975B5063296345",
- "section_salt": "D062958BAD850E7DF4D66E15768009D6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BAF0AE753E511152A5B1F81C",
- "extended_signed_metadata_key_hmac_key": "076601BEE831F77521D8E0D6F0F223F248482CE6213DC257CA4BEC56C3416068",
- "extended_signed_section_aes_key": "17A5F0BA497E37DDB53D35DF1F6D6243",
- "extended_unsigned_metadata_key_hmac_key": "9C476FDE27A894482CD03A05B94C6D57D45E553623DA29805C8E3312802EC94B",
- "extended_unsigned_section_aes_key": "69A4A19908B67EC4FB9CBD7587F7322B",
- "extended_unsigned_section_mic_hmac_key": "65C1241C3415939968A5EE3655C44974E82790F6E95EE67F08A6DDEF8E389FC7",
- "key_seed": "3535DF327D86EEF98EBADD02D4E238F4C209DC5EFE1B6C82908189EC876AE534",
- "legacy_ldt_key": "EE8E1C0C36307274F49FB2DFB354050D1D9BA0A748D82FDDCD45792005406C4D346DAC9DA43837F8130FE8494E20A53FAEBFA09E8786AE28A810E1898EE808FA",
- "legacy_metadata_iv": "40BD0F991DB8B2AF27A3F420",
- "legacy_metadata_key_hmac_key": "9F7758D8220B07070131286A1D765384ED3468072569D564E9B7B2B0E92B2BA6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2AD6",
- "expanded_salt": "5420077471456FFDE17A57C73006C14D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C03FC8BFC6D3C3955A1672073C98953F",
- "legacy_metadata_key": "5A91FC2B0AD783FD44B9362B2645"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B6770F342985F02E60F9F4E9B5AAF5C8",
- "derived_salt_first_section_no_de": "DAD2951D2713385FD9291B2C901B5E66",
- "derived_salt_first_section_third_de": "32706274E92B75F1293FE5483B50133B",
- "section_salt": "E87E22746B9DEC77564151BE54278085"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C2396C8EFB3C6E9AB7FEB3C8",
- "extended_signed_metadata_key_hmac_key": "34114CDE9D1951E0BD8340190F0BDC35BC90836114E57350F564AE978014AF85",
- "extended_signed_section_aes_key": "ED719504FDA2B9192ECA5EDF327C0340",
- "extended_unsigned_metadata_key_hmac_key": "7A6BDE2530F4B2F4420C584E2385C8DB19810DD650566FF2C56B1AF301D55B46",
- "extended_unsigned_section_aes_key": "2616E4EED5F6F6687B07A7DDFAFEDB9F",
- "extended_unsigned_section_mic_hmac_key": "C5A0DE2649273D93E2BE3A9ECA33446F2633EF9895CB792B57B982A937CCC624",
- "key_seed": "AEC5F53E41A00B019EDE571BC9571E6ADB9560614EEC99D7292F02841652D79A",
- "legacy_ldt_key": "AC90C42081BB88D6D66EAB4DCB485F29A422BCA824F3D7AEA099C7D095837E4FEA3EAD3B5D53691D054539D1A7E0CC20DB51B962A30C9C2961E43B06F9EB724E",
- "legacy_metadata_iv": "0842384682374FE0A0A8D622",
- "legacy_metadata_key_hmac_key": "BD207C929FE51FA61958E76BB04DA3F3465A64356C7E36B484972A726A1990FE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1790",
- "expanded_salt": "19F1591668F7214F7BFA38151997B8A1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4C51B813D960A71CEAE1DB2F048392F3",
- "legacy_metadata_key": "8B9335599D575BD98840E0606AC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5292419A29A37CBB3900B8374D2F362C",
- "derived_salt_first_section_no_de": "3EB5022279F6D2D6D3DDE07EB1763145",
- "derived_salt_first_section_third_de": "34520174ADB8CF470FEE296F5C158A20",
- "section_salt": "FFB42703E564344FBC2474D23542CA31"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EE42C8999B4A4D7D8A324DB0",
- "extended_signed_metadata_key_hmac_key": "D1740F1C4475B49887ACBAA4853EFC8A64F87E2921816A6519090F2AB1060991",
- "extended_signed_section_aes_key": "5DD6BB6B9991B7D702C59168A53FDDA0",
- "extended_unsigned_metadata_key_hmac_key": "3EA1C78349FE12EA8E9664C8D86E0AFCB5DC6A0EC7433DC85E730800CC8896EC",
- "extended_unsigned_section_aes_key": "1CDFDD172859D3AE3BE73EA5BEA19F3B",
- "extended_unsigned_section_mic_hmac_key": "D9FF3F1D52ED5BFCCCDC5C56D797B74A48E5D9FCCFD7F485AFF6E10A503A29C5",
- "key_seed": "34D9B17E20EF7D050AE61BE40CF37998712977EC1748C26944A9B8864F15FADA",
- "legacy_ldt_key": "66DDA90EB849F94E8D5262E3A96A163244AF16D4AAF009EF05AB0D07B021A41388CC7CCD00A07A74A76D9D92CC309870AC1B3B4D9588C30C360F334377E5A0FB",
- "legacy_metadata_iv": "EF6DFC36EF6B01FBF9B6079E",
- "legacy_metadata_key_hmac_key": "612A1940AB17F952ADB6F99969A56D966075FB346DF1451A0E53CD389FE351CE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7E0E",
- "expanded_salt": "EE21200920721CB54522326F505BFF50"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DD3E36475DC9B97EFA4B9E0E73E32362",
- "legacy_metadata_key": "A948307588549233417402BC3340"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8591B2F3AB37420A13384EC6A4337820",
- "derived_salt_first_section_no_de": "B999951B8870D9B9E15599B4858CA0C3",
- "derived_salt_first_section_third_de": "75D613BFDFF2F99EB25CEE83087054AE",
- "section_salt": "7C4D152315F221C3E66B5985F73A0D4E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "82F37A965D18136C14FFF03E",
- "extended_signed_metadata_key_hmac_key": "38B56579BF3F5920042AB28EC9D07789511E67C5B4638D7BA572D42BD45083D5",
- "extended_signed_section_aes_key": "5538A21EFACB7FE328E0EF7BE493DE41",
- "extended_unsigned_metadata_key_hmac_key": "F1DE0A18B2677419119082229BD0458694851C2C1234A0F8CAE3A2EEA57391FC",
- "extended_unsigned_section_aes_key": "E8232F3854E002F270B019A13AE44E82",
- "extended_unsigned_section_mic_hmac_key": "644C9E8A6D436FCF7F28F79B2BC1C4F31D54EE8C03E0E0BF76AC96817CCD3EE9",
- "key_seed": "2099184AC54DAB964D5DF4605C4A6E17E79F7AEE81C63219E3EC37F1C7647F01",
- "legacy_ldt_key": "424CC2A4F249DA45203D7E15EDD798344CBC482DFB084A74E70F035D915D78176378C843BBA9B32C4459B797A83D9BD84897A95AD171BB902A03A300F3E9DDFC",
- "legacy_metadata_iv": "0BF0A428FAB2BAF472637D70",
- "legacy_metadata_key_hmac_key": "44BB9CD97239D051728EC0DC6DF7B163334CA6029439E773505D7B9A318AF7CF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "16B0",
- "expanded_salt": "865FF144F76045179B3AC45B06EE4C38"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3CD039B4F1D0F4900AA0B6E1A3568322",
- "legacy_metadata_key": "46A3C00CF881B8BF4D79C43AAA0F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "50217B221667E9355279A0FAEBC929FB",
- "derived_salt_first_section_no_de": "F5E4973ED92966CD672ACDA7F8E45BF3",
- "derived_salt_first_section_third_de": "18C98E45F5079581C6EE80460A8BA936",
- "section_salt": "2A33C690E4564882FB40415EE6B701A0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "17073EE115E63E3D1DF5F4E2",
- "extended_signed_metadata_key_hmac_key": "FB6127F1D1FBA8FE748DC9ED922796BB5E94EB9D2ECD3F6B4EF4A3607EF92083",
- "extended_signed_section_aes_key": "94DC0B0C62238DA9CCF6F0071693BCE9",
- "extended_unsigned_metadata_key_hmac_key": "A55CA64FF2F3507E74D063C3B3119079F1A4449B5D8CAF04EF39BDC9294D2A27",
- "extended_unsigned_section_aes_key": "655234EB55A85401053B35D8FA0D710F",
- "extended_unsigned_section_mic_hmac_key": "DD89751C7AF3CE815CFCD9FA00840001E9A7EDBBAA2C71D89F07E5E91B1BABBF",
- "key_seed": "18C93CC4CFC413645B1AF539552B6536EE96B7B2EA233FE0DB9D2804BE30E84E",
- "legacy_ldt_key": "AFA25B6E7BF158A2F2CDFC447382BFDACCBB393C5B48D0F6EC2366B8DE2F056370FBD8A4013A77EC866F48D0133CC21DBD386B9F7E1C70E44E834D67D7875C33",
- "legacy_metadata_iv": "E5A3168F10EB4519724E8D0E",
- "legacy_metadata_key_hmac_key": "AD37FCBFAF0D47B346F627AFED93F59EE418EE5CA3E5392A09736CE193E289F7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "17C4",
- "expanded_salt": "4AAAFB5EB45906DE56A8ACB6F22E6F6A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F76B45489EE77F852CDE378DC53A8B3A",
- "legacy_metadata_key": "48C2F0644947D3C041F22B68ED45"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ABC64E02E8E9DFCDF850AAEB1F30DF5C",
- "derived_salt_first_section_no_de": "F84D019935FFAFF76DD460B7BFFA0581",
- "derived_salt_first_section_third_de": "CF3154491375E915E67A1EFFEE1A4B39",
- "section_salt": "5EDDFCC1902AEA3B3D5DB237B279B9DC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9BD1E91BC113A329AA98F7AB",
- "extended_signed_metadata_key_hmac_key": "75EFD6F88FDD14ADDA98A5CC7CC3C127E3AE692E4578B60F782F0808D4301ED5",
- "extended_signed_section_aes_key": "734595EA02D165980D9895218CAFDD4A",
- "extended_unsigned_metadata_key_hmac_key": "70792DAC6963CFFE282C80F9142E8433470757F5DC0361E4CF167C32C633C2E8",
- "extended_unsigned_section_aes_key": "9518DD5F2F1A3942D07BCCC1F56184FB",
- "extended_unsigned_section_mic_hmac_key": "B13983AC070AB7C1A6BBB748AE025D1B35CE07A99A36E5DACCB1BE9200DC819C",
- "key_seed": "D1C2021D461A33D291A5E49CDA0C72D783562AB2A632F7D2357C98DB7BCED62B",
- "legacy_ldt_key": "5A176D04A4C513A8349C2B29045594C4CEB2E895ACCA4B101C24DFD58C926867FD2D5AD8611EE3663D4BC9C066309BC1BEA716B37D34CAF85D4D7692BFB68ADA",
- "legacy_metadata_iv": "01CB37B54448E531DE0EB846",
- "legacy_metadata_key_hmac_key": "935F9483CE0DF74873C0B06BBE6A4F23BECDAB0B9E5E33685F01AB475A3F0855"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1256",
- "expanded_salt": "1313B7F99FF38CFAC306FAF0CFFCB04D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1F9DD83E58873005D10C6BF3FDD78C1B",
- "legacy_metadata_key": "A44ACA92556C33AF0B295267CA8A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CAA67414EB848FFA0E5BF97EE6C3052E",
- "derived_salt_first_section_no_de": "D6F3630E11C88A83F807FA31345DB748",
- "derived_salt_first_section_third_de": "11FBE0489D434677EE1C2E84824CE73B",
- "section_salt": "2B1E62DE4221DA812E99363168D7FA77"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7A4C0BA202F3DF96E1847BE5",
- "extended_signed_metadata_key_hmac_key": "92F3B99828830A1DF88297C510B863079D320B460F36645A9281051CC3E30D8A",
- "extended_signed_section_aes_key": "878D72D6802B9292201EC04520E6588C",
- "extended_unsigned_metadata_key_hmac_key": "3FA55CA11285A6AE0B104809DBE2402C55277CCFCF09D1B7A1490E715115D19E",
- "extended_unsigned_section_aes_key": "5F2A79385B562673C8C34B6E622AA8A2",
- "extended_unsigned_section_mic_hmac_key": "E2404D7F9BC405DBA8857DAFB561D8D884BBC4BBAAC48AE297FF6D96E2D4119D",
- "key_seed": "8DDB2A36A0307F509FB18DCDC9FE88A6C313889403EF026889F99699BDDFA000",
- "legacy_ldt_key": "9FFE4964409DA906EF1CCD7CA730FEFA98304A8023BE960DF61415129CB828567D088FDECB1756E0FE354C886AB78437A680675588E160066FE160E8CF50F363",
- "legacy_metadata_iv": "3DFAA27D0B2C93D96A1F2E01",
- "legacy_metadata_key_hmac_key": "CAE6EB7C1503CD7FC00EC1A6AF72779555B4D13B8125A5FE50AF690FC145CD8E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "288F",
- "expanded_salt": "963BFA464B039E3671DB0FAF20323797"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F9AC904267B218AA4595758C9FAD4D69",
- "legacy_metadata_key": "66CAF680BCB82CD95AEC58703961"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C2A8B4AF1646A15553BC721C51B0631D",
- "derived_salt_first_section_no_de": "EA7A9172B18C9AD0B8E070D50AED2224",
- "derived_salt_first_section_third_de": "8EB112B29BF33B32BDA5893695D5833C",
- "section_salt": "A73FEA8AA6764ABB2384D28770BA25CA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BB6C22AFAF7035D9A7512FE0",
- "extended_signed_metadata_key_hmac_key": "962051E5ED19D58CC2EC6B5BD2D142CDF473823DD985F151E8E7315E3F1CE590",
- "extended_signed_section_aes_key": "EBD47CEC076B145988F5FD6BF64DACF4",
- "extended_unsigned_metadata_key_hmac_key": "CA52E084C0034DAA4157901DA8AE6EFF22E666C5945F7A59066AEA27982EF264",
- "extended_unsigned_section_aes_key": "8E4ABE4D730BCC00A3657C9853DFD198",
- "extended_unsigned_section_mic_hmac_key": "534B90AEED109353F7F8126E4B0DDA20EB191D98F195FB9B40B2E3D5198C9C2B",
- "key_seed": "3A2B53D48A44AE0145362D273A4ED93F5C03407CD05AA6F90582F8D7D691F6D9",
- "legacy_ldt_key": "A7C16FB019D17FE180E53C35DE3069C2BB9661CC0CC5FE5CE74CE227185D4421030D6B4605ACE5EB6C6FBD35D77C0E88399B9FED518EE85508DF08F0EB417F56",
- "legacy_metadata_iv": "9E1426500AA1CB7ACDC2BFFB",
- "legacy_metadata_key_hmac_key": "CB489F515E5FCD642CABC67A4CECA9020F096F3336FA4320ECFE54DCFB0B7983"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7B6B",
- "expanded_salt": "9959170FE67AE991961EC58A588E900D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5349F12E5637D79B8B9CE1700CEB506C",
- "legacy_metadata_key": "7DB95285167701D36C1531A23BA6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B28DD34B6501DD4F28A3C022BD8604FE",
- "derived_salt_first_section_no_de": "8A262C28A4166B432DFE618BA7870833",
- "derived_salt_first_section_third_de": "E307DCD3A917CC4D39BB1E392F35CB58",
- "section_salt": "D5DF78BF1EC8DD96097147118CA8D92E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4B9F375C178ED68D7317E8E9",
- "extended_signed_metadata_key_hmac_key": "15A518C871CC78D0AB1B023A2AFD263B7238729832A061232BBCF695D09DDC7E",
- "extended_signed_section_aes_key": "9E5EC7E9BB3A0BAFAD97E6F94E55A28D",
- "extended_unsigned_metadata_key_hmac_key": "DE499E78CD61D3E83DB09105B3F995C28044A6A8B8295454EE6B9551CAF8B82F",
- "extended_unsigned_section_aes_key": "2853B4757742A969AEF1E77D233D8367",
- "extended_unsigned_section_mic_hmac_key": "A4BDB4B41BA0107116C6B4EE4B3C203462E0B7865C353C761A9CAFCB23F06CAE",
- "key_seed": "C78456655B5A2287B920F92F7282BCFBBEAD6BB3C83F3980BFC64EE99DA20B3B",
- "legacy_ldt_key": "6379C45D8880D2EC46AFF1E19F064C79CC637044860309DDCC86AB216142BD33BCA428C425C75852A2276AE944FACB2E32C2C18909E6DB87175AA9422F3C2EC8",
- "legacy_metadata_iv": "91D876EBC516CE0F81B780E9",
- "legacy_metadata_key_hmac_key": "C83E710A498A5F1A71A1754253FDCA30A37561B7EBF91D00A4AF9BAA8CB56CDC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EDAF",
- "expanded_salt": "2F49D95F6222094771802F45572C5913"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BFAC26A44D2461E140E7C800CB724EB8",
- "legacy_metadata_key": "A7F027DEDB7131664DBA0A24DD07"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "17519D6B36A47F882064D1C74FEB1DD5",
- "derived_salt_first_section_no_de": "2C59F05700FD95F2A426240BA8C784E2",
- "derived_salt_first_section_third_de": "512532ADF76197453F0E3A22243D9253",
- "section_salt": "0F8A39D529E532A9A6BCEE4643CEA558"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "78AECA5B3DF0C4A4D46C9A73",
- "extended_signed_metadata_key_hmac_key": "F19735375A7E374272FA9172159E4DE1229B8AC21D4263F1F49D4C450C74CF46",
- "extended_signed_section_aes_key": "5E68E37F21ABF1CB97DC33C17883442C",
- "extended_unsigned_metadata_key_hmac_key": "2CD0EFA8A219FA621587D79D5209E7C584C18D5F82632413AD7C6137B45C274A",
- "extended_unsigned_section_aes_key": "A5FA31C8C7D2A7B8478744D1071A6CE7",
- "extended_unsigned_section_mic_hmac_key": "D2B85D3FB0C59EBA916E1F911B5651349ED26C4EACA26F46274C43967C22AA62",
- "key_seed": "812D21AB79DF61EDD6ADA44390BD5D037CECE14ACD8B0E958CAA4AEFD61277F6",
- "legacy_ldt_key": "F1625D0174C8E2F0185D065082DED64D6E48ABCC38A4085ADCEA9F008DAF95619712DF9FC1C8954C1E37C61F4985DBC08E8F344468A62B69BBEEC218949108A3",
- "legacy_metadata_iv": "529D2E0A16F305FBF7E6D924",
- "legacy_metadata_key_hmac_key": "65749BA26F1597EA2154B95DFEFB04050477262AB5E2BA705CBC4C0E0F02EEF1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FE3E",
- "expanded_salt": "63BBFD233379E9033152F1F3DE5A4C3E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4F709E0CACEEFD67BF547D25C57F14EC",
- "legacy_metadata_key": "182C4751AA8AB5567C5888810EB9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3844AE4B58ACAF513AF8EA885D535202",
- "derived_salt_first_section_no_de": "318D718620E83DD01CF298610BF41121",
- "derived_salt_first_section_third_de": "CF6C2991A0A1512EE51373A82CC56D18",
- "section_salt": "523625B81D9F85C62F49F507E6C41A68"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2F2E7A192367BCBFBFFB335E",
- "extended_signed_metadata_key_hmac_key": "90885577643BBE71365DD50F042DA41DC29BD21D4CBA6480612A994625E57836",
- "extended_signed_section_aes_key": "18C62960FEC6E4925FA8F4DEEF0B2163",
- "extended_unsigned_metadata_key_hmac_key": "4C69A4AD722208B7EF631AFA648D05F6D1FC94FB630CFE9449A5E3C5A3CACDDA",
- "extended_unsigned_section_aes_key": "5584F0569DFEB2BDB9092BC53C1BCE03",
- "extended_unsigned_section_mic_hmac_key": "C4B1937010E5919C9B423DF10C132E8A95951432ADB0A057DB1AC75E8C038F66",
- "key_seed": "CBD367369AE34B7E1B259CE90BB347E9BD120ED1753B0CE638DEEF42110A4ECA",
- "legacy_ldt_key": "7C93994C0D7C424FCF4F3C7F10FC7D4FAC5748213C505EE935C3F3EF21E9F523E7B6222837DC0A959340A7F7674CF724FBBA8E9EF96C2AEC3BE2039FD1AF534C",
- "legacy_metadata_iv": "D864473206D3937D1FCB9FE1",
- "legacy_metadata_key_hmac_key": "1F68AFBB377E1F57533F7EBDE72A7811F3CE997F6996DC447CC76D18C1ABF143"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CBB2",
- "expanded_salt": "02755CE502ACDABD1D09C9D25CFA0B0C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F3A55632346528A6363AFB4D02F1477C",
- "legacy_metadata_key": "1B9E3626D8323FAB9486F8A4B9AE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2A8AD4152A3F0848D209BAD4CDA17DDF",
- "derived_salt_first_section_no_de": "C7B4DFFD2036A41BD8B7D66335CB6D26",
- "derived_salt_first_section_third_de": "6D167EC488B8DE58CDBF1B8092A272E9",
- "section_salt": "5F6C385368E446ADA54CDAA30C36036E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5213D13858408FC82EA7D3EC",
- "extended_signed_metadata_key_hmac_key": "72DAD2656A0C6F046C3242F8B5E8D4D7532DF82A0C0BCA35D1219C7917D7A117",
- "extended_signed_section_aes_key": "B54650A760E75B066E5DD655CA62D9F2",
- "extended_unsigned_metadata_key_hmac_key": "E1117D4E476788CEE971A4182D160C21599B6F64490529D2B4FF09DA99943ACE",
- "extended_unsigned_section_aes_key": "ABEEDBC3DB087B9A8855F8B59E6E9DE9",
- "extended_unsigned_section_mic_hmac_key": "D072ADC65E1F5D1061AAE4894686B656BB09978F9542F0EFF21258B25FCBB667",
- "key_seed": "EFBC7FA12B65DED095082CA14B4B623132F11BCC711164F8FF6E2985133CC98A",
- "legacy_ldt_key": "4871CB31B8F268C038ACE58E42FDEB5572708E79F3859E47B68E37832E68699745370FF1E57A7E9D78F296B3EE97E2C9BC31DD7822EDBB27E0678527E3B92A7D",
- "legacy_metadata_iv": "C532F73F2CAB2D280D5F2B77",
- "legacy_metadata_key_hmac_key": "39B7808A91B37C8C38E7D3C28855FAF4BDC763EB4A7475B08BFB45DC83A3C8A1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2802",
- "expanded_salt": "EE54F574E60932F1CBB06CC67C07AAB6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "990134228E7A7D6976C8568B26B855AB",
- "legacy_metadata_key": "9324B6220877D250B0A89F55E90B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F6EB6F69DDDF35DF674A2BEB648CFC63",
- "derived_salt_first_section_no_de": "6ADEB133C1394AC41910B6F933D75ACB",
- "derived_salt_first_section_third_de": "4580ECE4803E3D825FC0A9C0CA9CE175",
- "section_salt": "4E7AE9F1BAB8C78B270C136B0CB7CDA9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7964DFB9B9FBA98A4A1D77E8",
- "extended_signed_metadata_key_hmac_key": "0E0B5100941EB22384BA2EF2F4EAAA6DB76C930037CA723C941C580314764BA1",
- "extended_signed_section_aes_key": "8B4199B072BAEB526EB3D74A48770D6A",
- "extended_unsigned_metadata_key_hmac_key": "15C243DBE1E434A16FB72FC6B913542AFF52B16D83938139B19E1F7E207D72FF",
- "extended_unsigned_section_aes_key": "CF5128F56748157CD983F37DF6C49474",
- "extended_unsigned_section_mic_hmac_key": "A422961CECF6120BC5A2B88AB3DE41628F19ABC03C39E4FD2A21ED849D5928F4",
- "key_seed": "3EFE1FC73EB44D57BF5A7B7E932D199698DBF7E664285A35085B4FAB26CB14F5",
- "legacy_ldt_key": "CB7B7C1AC48E8E9E02CFEC896F6872EEA02E5DB3001F9B9CB27F5BB3A5EC4EC8E38388F5D2273B4FDC42B9DD50CEF4BEB2DB78ED8033A6565B28DD3E286492B9",
- "legacy_metadata_iv": "076F3018EFEDA16D71CACB65",
- "legacy_metadata_key_hmac_key": "A86092EA6BD113AE92C50387A4929A6DC6F7DF244555BECE7C17D70E0F21971A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F041",
- "expanded_salt": "80988AA4CF7FF13EB5A22F97BC5A8CAC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9230FC200CCCA290D8AB4379B47500D0",
- "legacy_metadata_key": "C9589A26C645E459D8DC494F8D96"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7835BE473D4326E354254A8528B18291",
- "derived_salt_first_section_no_de": "911EF13BE4528BDE6B83B472D05BAAE5",
- "derived_salt_first_section_third_de": "002702F2E24C18C8B3E5E7F304CC9129",
- "section_salt": "9B6DBDF544A09034F0C643F7A9A319A7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D6BCADFF187D21404F52BBDC",
- "extended_signed_metadata_key_hmac_key": "7F405AE8424698EF9D05C55AF6B044AD846C9323C19EFC4A88B86C5031191300",
- "extended_signed_section_aes_key": "4C958033062D02A896DB0506C2EF082D",
- "extended_unsigned_metadata_key_hmac_key": "6A2A46EFB24D7C700FBFDF1165F833DBF0098DE6AA45B9B8D220FA7DD0E52B73",
- "extended_unsigned_section_aes_key": "4CCFDB2C28156634A098FB1F8FE551F6",
- "extended_unsigned_section_mic_hmac_key": "2C6453B0B073FA489642BA759CA06C93C0AC04616A2C99751720E7BDC709094B",
- "key_seed": "EA4AF8993F0221B17642F7CB95A4C9375912230A8403FE184DA1BA906C01B72E",
- "legacy_ldt_key": "FCC8C286125060863AE5EB55E095683D490B50547C30AF24ECAAC6CC0AEF8CB5593B0F2445AB722AB882CB5C76521229C38DD65610C6B7F91917C54632BF9709",
- "legacy_metadata_iv": "B3CD5170DCF166BB86F095B1",
- "legacy_metadata_key_hmac_key": "66803132B4FD5FF85ECD632335E2F37260F6CDF62597A2520F6A9643DBC5EBC5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FB49",
- "expanded_salt": "29426DB9DC10A148492D45734C7E8CA6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FCDF8E421C0CB0CB1DC62555335310EA",
- "legacy_metadata_key": "8F0E5DDE843555F11101374B8613"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7399C0BA9B7B02120F3D7F083EE5E435",
- "derived_salt_first_section_no_de": "D0A616E7898130A51141DC369C09F00C",
- "derived_salt_first_section_third_de": "A73F19A4FB1A7B12F3EC5BD89543B616",
- "section_salt": "D41D0432B830F386C408BC52A9FE8D83"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B80FF10F959B4E449FE0225A",
- "extended_signed_metadata_key_hmac_key": "637F547B9035854302E8DC719F5B5857FCC61FD0ECDA4ECB085EBE9775309DA4",
- "extended_signed_section_aes_key": "0BD7F0EC2A690CEC1E67DB19937748BB",
- "extended_unsigned_metadata_key_hmac_key": "678F19CAF12E867A3D6BEBEFD56CEE1EAD48CA40CE0826668668F337D2FD1094",
- "extended_unsigned_section_aes_key": "E814E54DEDD359851D108950B03AA40D",
- "extended_unsigned_section_mic_hmac_key": "893B9044E1B14F17F9B7E7969CA40A6F198FCE5AF76A600BB188CCDFEC53D259",
- "key_seed": "8D126F3BACD4C3A151013D4C0803A45113CDFD81B55D6A06B3A338AA7F9C97B3",
- "legacy_ldt_key": "EA4D3FA0ADED8ED56D4C73B90F3BB38EA59817033A94DFB9F81DB2FF50618BE33061FC35DE7C4B8CA140A60FC9F6B919C0A21E50E2A20390D8FEB08C495BD702",
- "legacy_metadata_iv": "BEBBAC7288A479EDFCB38CD9",
- "legacy_metadata_key_hmac_key": "9AEEB784575B66F7421E928D73CECBD87DA32BAC825BE89AD14DB4235CC1AC15"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1A7C",
- "expanded_salt": "82850756512FE231C3DC259B7733CB65"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3B316EE77557A2B1A93F63AE6F13F004",
- "legacy_metadata_key": "860272D0D80BAF43A7B6921662AC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "39A2573A67AF28194FE07467D5364BC8",
- "derived_salt_first_section_no_de": "6982CF1841BFA4FF2F830A7036EB90B3",
- "derived_salt_first_section_third_de": "3972F8208E7443A258F4FBF6A1DF9FEF",
- "section_salt": "445B4383935A29BC4F690B1CDA4B72D0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9BFC6F36ED7D314A2B56DACC",
- "extended_signed_metadata_key_hmac_key": "F85E535FC87D7CA79351A97840BB8D911A6B68B74E88EFF8F0C1569ACC052558",
- "extended_signed_section_aes_key": "A85F79CBC7604B88A585E92E7B06678E",
- "extended_unsigned_metadata_key_hmac_key": "16AECAEA50CBAC337ADEDB0E4D54EF3E2FB1AAB07CA9CBA8368B59EC97263AA2",
- "extended_unsigned_section_aes_key": "F1D25D98DE571BDAA91CDCD877A487F5",
- "extended_unsigned_section_mic_hmac_key": "9953C708F40DC3B2BEDAB0DE26E2F5077481C31D3E135F3E67D5EDA9C5FCF7D7",
- "key_seed": "77477F98D6E1D466CB72D6566A93871A24A5BC667B8E0313F2C000D005598E75",
- "legacy_ldt_key": "5AFF95C21A87D3821575ED3189CCA751A9D8F2D7E29599FD238260E8A67EC3FF35E6738EF81E4CF7A829B6B554EC8F81FFF7B5686A9EA5124A46FEE500E8AD12",
- "legacy_metadata_iv": "FD759F7708D747DC28288390",
- "legacy_metadata_key_hmac_key": "24A2A9600C96E8BEAC5B2677396E7A5502E8CF3F0155D7C36AE26D945E479CE8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DFAC",
- "expanded_salt": "6708F11BFC50DCCBDAC2F32463EDB851"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E6A3539E8ECD401BC9E2CE9FFB934E50",
- "legacy_metadata_key": "8D5432D294441240C62D1DC46771"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7C08A5586166E69C1805A12EC1EB6655",
- "derived_salt_first_section_no_de": "D080479C5312243A064C5D251C2803F9",
- "derived_salt_first_section_third_de": "980BF06F97332892BFF296DAEADEB24F",
- "section_salt": "F7F27BC621361C4C097BC1AB8CB9DB91"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "86AF536A3C4E7F9E5C3DCFFE",
- "extended_signed_metadata_key_hmac_key": "F8A1CF1912F29B2F0AE8F4F039ACAA21C398A24A8D5EC0B7011A32717C0A19E4",
- "extended_signed_section_aes_key": "735261345AF661EF61FEE4713F7DC634",
- "extended_unsigned_metadata_key_hmac_key": "B88681950EB9346A9C8DCD8E7C0AFF1C7F38ED177125BB0BFA29DC1EF933B1FF",
- "extended_unsigned_section_aes_key": "DE03392422AF42DF70796A22D1FB86F4",
- "extended_unsigned_section_mic_hmac_key": "6C2738D8238D40362AFFFB35064BA7F9FD0D43C972AF37B86BB729425DA77388",
- "key_seed": "D2C81B78618CC9B2EEE9F880C045C9CE22D2FD14B9634F354C4FB606A0B320DD",
- "legacy_ldt_key": "46F8B1F3C3D7E2A5E2E1DBB7972BE00EC4057FAF91EEF1A9C7CDA3D0F8EC4C108EE6EA4ECD147D8463887B158EB11F3E7702CDC375F7DC024EFB26B04CFD9553",
- "legacy_metadata_iv": "8E7E283192DEE56C2AF67E84",
- "legacy_metadata_key_hmac_key": "855B49B88B0530E8C927B9C889952044769B2F885B393DBE7B59403DAF8A90B9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BC6A",
- "expanded_salt": "C4DD48082E9D7D6B4833BAD907C95946"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "794B9C874572DC5CC8106E70E7220511",
- "legacy_metadata_key": "7C4BCE8BBC6CA1BE330673FC8F6A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F2B8578C41EC48AC2B6D978512EB5791",
- "derived_salt_first_section_no_de": "39D9EAAEE81A166725CAFE90AC753869",
- "derived_salt_first_section_third_de": "F052DA461CF33CDBC5AB46D9A0A9CD6E",
- "section_salt": "E6B8B2FF3F380068726E1AF5E23FFEAE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CAB18A42241E73ABF5CE3275",
- "extended_signed_metadata_key_hmac_key": "AB9C3E3A5DF318C5D9B982F400937E96C1489C5DF3C42E76A872BBC15287371F",
- "extended_signed_section_aes_key": "7ABBC1BDB5A96768835C09DA1E2CCD20",
- "extended_unsigned_metadata_key_hmac_key": "CAC763345E49282AA56F70FC7FB035D083DB24C8BB74572B58A5B4B1D56F5CDB",
- "extended_unsigned_section_aes_key": "CF7740B0638C73E07127469C90802ADE",
- "extended_unsigned_section_mic_hmac_key": "7B6664546123442E60332E5527F47A5486CC28507DA37AE0C4054B9CA3AF3228",
- "key_seed": "35C349A3B7A930441A7D93FB31711DDD4CB03C5116A779DBB21F5A4DC3EB118F",
- "legacy_ldt_key": "587AAB08E74217E6A2386D9218895D698AC6336C6BCF77646444EA0BDD1F7136C4DD9A8DB2B328DD3D55294F7A340DD79DA5EF327DEAFE6373A57D8F9A3B652C",
- "legacy_metadata_iv": "9D0338AFF7F5CEF6EA505934",
- "legacy_metadata_key_hmac_key": "8595552D9D05ABA434C48BE04F4FF869CB374A9CC2EB49AA001821FAB4CBA24D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DEC6",
- "expanded_salt": "84F690ABBF4B2A4BC95233D94ED4C058"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EAEA7F3A5A857C760CAE2956919C6514",
- "legacy_metadata_key": "3DCA390EFDBD1EEB8B2567F19FE2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D0C2B0C5CFCAE295D676671FED786B1C",
- "derived_salt_first_section_no_de": "94370557F8BFDE42B293CE439C5D0EC6",
- "derived_salt_first_section_third_de": "ACBF03AB1C5169453A64533BB8FE689A",
- "section_salt": "E83C479BB3E4971B70EC24A2A7BB27D6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D3B6DC62F2088FC1FD2CC2D1",
- "extended_signed_metadata_key_hmac_key": "6C5BEC07A6A70E1C8D3C4D2A2A7D61EBB2944432CEF7905C1926243850DC51C8",
- "extended_signed_section_aes_key": "7FA0166F573C25CB612AB7D311C279AD",
- "extended_unsigned_metadata_key_hmac_key": "548675976A40F9AC61727CFA590C280A50C924C16ADD59E7468A304C77243447",
- "extended_unsigned_section_aes_key": "F36D4BB55FC8374CA6DC029047AC85E0",
- "extended_unsigned_section_mic_hmac_key": "378946B7E485F511C1B9F03DDB59B76969151972416AA5DD24456A4FEC3090C0",
- "key_seed": "950AB34E4E434F1C54DB76584366C66D39CE747481F88BDA2E4542D4F7F5DBBB",
- "legacy_ldt_key": "090938578D8FEF2BD3CD6577B7B52AE131942C092F402D6FE9DC471FA2F8D967F9E63543381216906633F4474DA618FA9EFF3C0D93D12764950FF475768E6658",
- "legacy_metadata_iv": "438F9E8E193927096D286E62",
- "legacy_metadata_key_hmac_key": "EDE37D7B17DC78D95C9CF84B6C1BCC5258AA5C553CBEEDAD7E0C2ACD9AE44066"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1026",
- "expanded_salt": "696EA45A29E84171FDF0EBA547D7EA10"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EE1F5E8E242749B02697EFB4649B984B",
- "legacy_metadata_key": "E641ECECFD3F00A5FAF45B22DD38"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3716C56F74151B101781582A0F20482A",
- "derived_salt_first_section_no_de": "28962296EE667B5CB4888BC48E78D2D2",
- "derived_salt_first_section_third_de": "43A48C2DED18DBE7F8CCBB48AB4B6573",
- "section_salt": "C32CB577B6145DD16838122B0FE3AA90"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B472C20F44E6AD558FB98194",
- "extended_signed_metadata_key_hmac_key": "38435EFE81C9853D89867AC7A0DEB08524E3CB85627DECCADC618EB0055CADCE",
- "extended_signed_section_aes_key": "79D2C77665867928795C0C811E614851",
- "extended_unsigned_metadata_key_hmac_key": "A9E5528034535F158503EA14C956D3DFC463492D8BC8DF0A2491F405CA3ECDBF",
- "extended_unsigned_section_aes_key": "568DB5F480FB4ADA95D8FB358B3080EA",
- "extended_unsigned_section_mic_hmac_key": "CBC764B7088655F6DCB53D9F21A4C2F549402B8526E4DFE1CCDFE91D33D2A3E1",
- "key_seed": "5B51B8A183A4843DC00DEEE8893B61C402A9CB349F510CD37323AFD4BE556B30",
- "legacy_ldt_key": "797301F61F1FDA094FF8A07C529DD302703536131686B5A591BC4D69D8DA8CD33B06CC0E6BBFDA19346ECA1EEE9BC210FFA7DEC76AFD2A0BC3CD9174F9402DDF",
- "legacy_metadata_iv": "34597754816F7CA7506E309D",
- "legacy_metadata_key_hmac_key": "8FB3098933B3088E8B83432132381102E92EC019332CF8D3059CFAF52326D0DF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B27E",
- "expanded_salt": "871239D9C5A2101CA8BDF937CD361166"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D5729316A6AC298D0A6BD7C7F150E977",
- "legacy_metadata_key": "74876CFE57AFC7E61A80D725D9D9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "028D2B5FFC263DBAC66EBF1A6B1B27F2",
- "derived_salt_first_section_no_de": "DA1E1B7D594757EB66AAAB2590A22F08",
- "derived_salt_first_section_third_de": "DECD577CBB03E2868C52984851596DC4",
- "section_salt": "716C1901B12829667E969E5DBFA80F86"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BF01C105C4E7D253667BC4F4",
- "extended_signed_metadata_key_hmac_key": "A4666D8B4E64734A548EF531BA622439CAD391BE12A0C4636F077970CC1F0A87",
- "extended_signed_section_aes_key": "CA29302926E533BF2BB32CC0A37911F0",
- "extended_unsigned_metadata_key_hmac_key": "ECD182AF0F39D3151839C53C5EA9206C3EEC1E28501DA3CF425D93A899FEE43E",
- "extended_unsigned_section_aes_key": "131331AF31B65C8F3925EA2F0190B9F8",
- "extended_unsigned_section_mic_hmac_key": "E96D8233A2694185B4BF1168DA2F0D97A7A8303CA4AC440112C668FC71C4D85B",
- "key_seed": "AB61343CBC4F8968CD8D174A9066A9FE280E6EC7E44CBE5796F3F75A5AB657DB",
- "legacy_ldt_key": "8828599034E435DEC38F747485822A594103FF44A1B17E72AF80113B573F5409785C9D9AA1DBB4B886E6CA374239A35160D353079AE4F4DDAC5AD1F5F6CA169D",
- "legacy_metadata_iv": "AEFEADB3653913910339AD4E",
- "legacy_metadata_key_hmac_key": "F86A57BB247985DC382A6CB5A82F2769D6169C2361EDCDC3FE4F092BE0A7D69F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B026",
- "expanded_salt": "B99701B77425E7C3D680C7A08548A5ED"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "89457131480419A3904FF46E3DE9EF2D",
- "legacy_metadata_key": "7B0C58F556000FD31403CC27F28A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "311418D496198E0DC3D00D1CA06F0E76",
- "derived_salt_first_section_no_de": "F6F0D0279C7FE347A3E446997B3AA1F9",
- "derived_salt_first_section_third_de": "A5E82C8EBA7E6EBA3B883CF595BDF260",
- "section_salt": "3E793664D60CEE430DBB33701C5B417D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "92A099F3B64004F79BE4D2CD",
- "extended_signed_metadata_key_hmac_key": "7798BF86E6BE9270BFD37F6D9E0EC75FCBBE684861FCEBEB3075CE2B27999259",
- "extended_signed_section_aes_key": "50D6A3B3C875E4BFF08EB90E3BDF40E3",
- "extended_unsigned_metadata_key_hmac_key": "6424BA2B00841230622824FB8BB4E494A247E0AA97949271F3C014C233ACAF45",
- "extended_unsigned_section_aes_key": "67CA6B9E635CD41660A35B86CB219FB8",
- "extended_unsigned_section_mic_hmac_key": "FF897F402E546ACFBBB5E1E8BE4BD9E84512A1B28ED1896A55B20CCAC64B5399",
- "key_seed": "C9A6C953AFA14828B388451E5E9E67B9F81A616CD74F5775E81E56E695F5FCFA",
- "legacy_ldt_key": "A73CEBC3EBCB8805E206E9D8F7EB70C6054707D9D48D6A9CA8B57298C8A49237A58A7D4F3410740313D19A287B251BBB8B4F5286C7D9206C861CB319F6469287",
- "legacy_metadata_iv": "81AC1644CCF4CF02B1F2D10C",
- "legacy_metadata_key_hmac_key": "12B9E3E4A46113165EE44AA33A38ECCF3625429424952059609E49393AD73B67"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2913",
- "expanded_salt": "C23ED4617E6385F09ABB61490620C399"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "58083950EDBA67A5C03A246E5598EB80",
- "legacy_metadata_key": "CA0FE8512773B3368DF5710009EE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "60382F073CD4ACFEB8C8759BD0A59BE9",
- "derived_salt_first_section_no_de": "58630E197CA613570A41085EF2A28E9F",
- "derived_salt_first_section_third_de": "9A0E768AC0C674F7DFA899AD8EBBCFA9",
- "section_salt": "A868D3478728CCB6F81F45F94F488214"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5D2B268B3A7D3EB8B76895AE",
- "extended_signed_metadata_key_hmac_key": "D2DDD99B55B3A8138C856B399C6D329A6D534EFD323695080278B0FED4EFA2C5",
- "extended_signed_section_aes_key": "116DE25AB19179C3BB1442D7B01F6973",
- "extended_unsigned_metadata_key_hmac_key": "4FFE080E4E13AB6744ECDC4491D82D0C0BD9412BC33055EF37DC359B4EEA1E98",
- "extended_unsigned_section_aes_key": "63BDBAA0B9ACE3718535EE00C152374E",
- "extended_unsigned_section_mic_hmac_key": "BCCAC6A867F5031568F486F9A3C826A463D5E5AFD36C72AAD0FB5B6FF4EAC856",
- "key_seed": "4D76C223F9F867C68B312CA2BA9C7E28941717FBA588AE113E5940E5640E3DA9",
- "legacy_ldt_key": "5AA04C145E14705F456F6F05FE7A34B0E30564D426881E13EF507C33AC5433CB9D8B9EFDF8AE06E0E7DD0B3829675A3DBFEB9B7F336A0F3D62CFD8426A25E987",
- "legacy_metadata_iv": "0FCE0B05C5E03F37D27E5385",
- "legacy_metadata_key_hmac_key": "F3CBC3284E51CA08402AD679EA4BB73706E2966269D4E88933303E2F600672B4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E6BD",
- "expanded_salt": "39B728F113CBC3147D3A97BEFDA72E0C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9EED3EA70F3F958DE0951C41C871926B",
- "legacy_metadata_key": "5A7359656CE2D623BFF3F71A8C25"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AC5C0CEF2AEB4CD3026EA2F3A3D20CF2",
- "derived_salt_first_section_no_de": "DB8B897C45175839E1C4D34156CD49EE",
- "derived_salt_first_section_third_de": "4E16E42FBE064A302291D80ADCA47DC2",
- "section_salt": "4A41BD2AD2FDDF367E1749BE64AEF0EE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FF4A04B2FF5A695D74F6864D",
- "extended_signed_metadata_key_hmac_key": "828FCD6D1C5CEC4BDAE40ABFE2F5E81C1E163170AFE77DEA8619FFC5DA10BDD4",
- "extended_signed_section_aes_key": "E6CC58D1E5E73AF800FBBD44E8E2F85A",
- "extended_unsigned_metadata_key_hmac_key": "D096CE6C40E9C486A119C715515AA58DDB9B989013AC624BB3CF909BC09C8F40",
- "extended_unsigned_section_aes_key": "104D0FA97DBFDC29768D8824F0A20489",
- "extended_unsigned_section_mic_hmac_key": "5210D99995EB9830434BEB2F1075989DF441E8A14AB630D4340150C50B23A054",
- "key_seed": "17A2B4316780C3988CF8BB986631AF9D8FDD8F2DB5188AC2859C0F725FBE9F90",
- "legacy_ldt_key": "4D60A73DF309993431E12D6B8E5E546C93E169B23B66FF99FF0C1EBB5D3B2E379BF0049D857C256A78F505D933C86F33D158E98D3864C4F4A89E5B3F0B5B360B",
- "legacy_metadata_iv": "2DA377BC667378E146AAC39F",
- "legacy_metadata_key_hmac_key": "B3AA1EA1CCC5B3AA80D51B6E53A0984FF471B6BB9B0EA209584023FAB49BF41C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C3E4",
- "expanded_salt": "83DE4A5CA78AA5769D3DA47D3DBF7023"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F363F8B8A629E463413F208B1C224A63",
- "legacy_metadata_key": "1B86E6AD9A3815DED0A7BC61CB7C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AF03D57D583AAEDC1FB18F718F523B33",
- "derived_salt_first_section_no_de": "852BFAB36999382EC14307AB8201334C",
- "derived_salt_first_section_third_de": "1D1784189FE72DD02E0E35F1FE427FF1",
- "section_salt": "CD05E81A76332D6977D81E96C524F619"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "406B4F7CFB77098D92354426",
- "extended_signed_metadata_key_hmac_key": "17B000262998475AF28D24BF474A036A4337D65969258740842CC4044E97081F",
- "extended_signed_section_aes_key": "724DA290CAAAC51342E065072BF1FA38",
- "extended_unsigned_metadata_key_hmac_key": "E9A5CFCBDEDE253F48736220BEF44F278DEAD4321EF29CFADBEBA38922626B30",
- "extended_unsigned_section_aes_key": "929F364677321A8DE1142DBE36F4446C",
- "extended_unsigned_section_mic_hmac_key": "881C5D6C6F39C01B7B6FA346C57548E96567F6D84A49F001FCDC41C36FE0815C",
- "key_seed": "5651FB3BC1073AE7DAFCF24DD9BA4360D46E3FEE3535C8D4118F6DCFC2D15E0F",
- "legacy_ldt_key": "342AF9D6297E7328AABC8DC6BC9D6110D9631A459EB7BC4597EB20E0867DD1A4940884B49548C0B95B92864A447D43550E213AB3539B6878870F77023DFC31D7",
- "legacy_metadata_iv": "02E985D4F0C0466FEF4C63AA",
- "legacy_metadata_key_hmac_key": "462C53F80A1490D02F15203EF7FD6CF5D1A5AB60BAEEB1799B531C38791E29B6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6A8B",
- "expanded_salt": "F193918C3221B6FD76E6DDDF54F67B05"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2E3838A8F5F09F81AB4016E5AE6A55CB",
- "legacy_metadata_key": "C65CB9FD8427C9E863A334B9698B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4B856876F84928ACF8C204F248D1CDB0",
- "derived_salt_first_section_no_de": "BFDE6AA7284D4F15A074F5C64D1E07C4",
- "derived_salt_first_section_third_de": "BCA2D3E6937B736549A16178329E63E5",
- "section_salt": "C3BFDCA9722E69FF20AE48664D3C019F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AE7D97BA237EA01CA7FF60EE",
- "extended_signed_metadata_key_hmac_key": "4547AE772B9E6E827D5742FD2422B5584C1887C875A2617A5D032A30AA3626E1",
- "extended_signed_section_aes_key": "B0A1869DC9B1819E250798B113DB970B",
- "extended_unsigned_metadata_key_hmac_key": "87BDC083181E71739940A4D950897025DF0D0FEC0F4C4441A833B4A70DDC168E",
- "extended_unsigned_section_aes_key": "E67C68C55A8D392E3EE2AA52E8041336",
- "extended_unsigned_section_mic_hmac_key": "867A5FBE5D81EA8C14DDB7C1F858177D9C5B03FF45F3C437B769BDA5EC3B95C7",
- "key_seed": "609656AE460A5F90FF1C70CF1435DA20B4C444712F9E991E85FDFA28942A142A",
- "legacy_ldt_key": "8539CDC1CDC9536CF4A6571F63D2E9BA11C219A1AA13F7CA9E1534C00A333ADFE11D1EC54F83B728F2AD192DAD21E4AD0C21EABD8FDC9CB309359A8421DB189C",
- "legacy_metadata_iv": "1114A847B20FD8CAE8DF180E",
- "legacy_metadata_key_hmac_key": "D818F5C45EEC5EC11D5C1C74C11492236F683BF62ECD0EACFB4FBEC6A46A51C3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2B7D",
- "expanded_salt": "5DA4C51365500EB6E057476D9D0719C5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A4365BB9C6574E65D96B9641B03F531C",
- "legacy_metadata_key": "147F3D5C90A6EC46A7D2CF435021"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3E914C8F76B8A533632C946D2360D4F9",
- "derived_salt_first_section_no_de": "CEAB736EC940F6B74DE64799A0398C50",
- "derived_salt_first_section_third_de": "32DA2BA8F9260FA4099C32CDC0FC1E50",
- "section_salt": "5FBACE14F875DAC01968634B969DF1C8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1DD987CD7348BF0A918398A1",
- "extended_signed_metadata_key_hmac_key": "AA52DB0C503E496378E56C05B2B2206344B214FBF2E79C91A2DB51BEDA8A7638",
- "extended_signed_section_aes_key": "A5750B00FEC74837FF4CBACA97450537",
- "extended_unsigned_metadata_key_hmac_key": "7DD3278B67C98FD1603AA865425830D9A5AC2A702C4653C05CD1AE0B5994DA20",
- "extended_unsigned_section_aes_key": "51BD08319E8D81FED138B2F761AA3847",
- "extended_unsigned_section_mic_hmac_key": "3F628487D6EDEA4A08FF9876AD0950BEFAAFE2A6820DFBB8C9536162B2560068",
- "key_seed": "08640F9893C660C5DF4933F78610700E98F6FD74B955792BE94E8573A7E86A40",
- "legacy_ldt_key": "80ABFC9A423A6393350596C613650479FC99A16E12183DAFE06C02C99B380CCEEABEAAF843ED27A6FB21DA80DAE0D177B25899F26AF4588647909D305C929538",
- "legacy_metadata_iv": "02C4419DA169165AC9491179",
- "legacy_metadata_key_hmac_key": "64B87BB6DEA172C0D35279F57E3F7B4A4ADBAAA298CB554F8E8BC056E5E4F2AF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3A02",
- "expanded_salt": "F08B2DF517B15FDCD7E9145B2C2391DD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2436762DF223763A270C2E778A9B00A3",
- "legacy_metadata_key": "06E1A67D74D53CF3D3617A99C909"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BE62C97274A2EC9E5C45B7F45150D984",
- "derived_salt_first_section_no_de": "65CC47ED1010DE7B08E6B7B2186A2EA7",
- "derived_salt_first_section_third_de": "83D49107459381FA000DEFD67BF4A595",
- "section_salt": "114138DF36C76083854BB714B4C8B964"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "78EB8C89201379F1BCC737AC",
- "extended_signed_metadata_key_hmac_key": "C47F51CE59832723252FAFC26C843B2CB0CD9EB5E22DE369020FB8C9BB907328",
- "extended_signed_section_aes_key": "D4B500B3D22E8ECDCA283D4D2BB26C14",
- "extended_unsigned_metadata_key_hmac_key": "1D9C6BC5E60865FBF3789761E1C1E74010F2BED2B868B8C00B9F55252D23E6DC",
- "extended_unsigned_section_aes_key": "BDB51DCEE4EDA1938B9ACD7553DD49FE",
- "extended_unsigned_section_mic_hmac_key": "2C7CC3DE0665F7E59AD4991368BA29B91AFF516B0428C6305942CFBFCF065D66",
- "key_seed": "A0118357EF249868020E8C81757D86E97FD62BEB68576D7E5CA420647E7D7019",
- "legacy_ldt_key": "BD7D26781A075ACD64AE5B8C1A5CD124858D6136D11354573D619598BE0C7533C65DA52834DE8D75509572E2175AB71ADD50C05A8CC8B750C7E12F78EA9B17F7",
- "legacy_metadata_iv": "E51EA8BFF4324396BA1A98E5",
- "legacy_metadata_key_hmac_key": "CC2C1B4F71712A9AFDA63DC06BED63F5FE6B3A5561AD5DFD8C2A15EA8D62BB0B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5FE5",
- "expanded_salt": "A35897426202EEA906D7F9D1D5A4596E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BE23115AD13E4358F7707DD2F9B426A7",
- "legacy_metadata_key": "CAD581EE89C5F36E8FDBECB016D9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2002EDBCB3089BACBB1447889497F231",
- "derived_salt_first_section_no_de": "6718C91262B7644B34121321FE34D059",
- "derived_salt_first_section_third_de": "B8497BFFE868DF6CA1C73BEA31CBEB8F",
- "section_salt": "16221B29A67EA657B961ADDEE2CEEC8A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "641A7F8357985D8DBDC43BBB",
- "extended_signed_metadata_key_hmac_key": "2EA28D6D1AECF10C8692A3234CDEBA084BD50970021ADA86C6EDFC2ECA0B5495",
- "extended_signed_section_aes_key": "1DB1823D4C95544A0A32DBAD077D3F90",
- "extended_unsigned_metadata_key_hmac_key": "D02DF1235E0FE49F7F679B429A8A13122D4A84B159FB7A90E3BF2229E1A4E93F",
- "extended_unsigned_section_aes_key": "2EA6B2E84B1F8E1E47BCECD61A177E4B",
- "extended_unsigned_section_mic_hmac_key": "47EC402584AC9022A77E5241DFD69738E87864F69E9652EB836C5D823A09D749",
- "key_seed": "5000D0712D33EE8EC2DB8110BBDDC8469EE3ADD7D82C98F2F091C9685A4A799D",
- "legacy_ldt_key": "9963EC6436D6EB90114FD1D57EC773BFBF5DFA09C4A89A6C8C00A07A962F8593FF2C78CDEE6CD17913693D07E982F852546B5E6E3D99049E39289A9B7C223AE6",
- "legacy_metadata_iv": "3F8F7AD5CE5A4743305D0AF5",
- "legacy_metadata_key_hmac_key": "6832DC6A58D286521A5DDFC7EEDD1CD8A2B734D82382F79006970C07E9A3CC93"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1011",
- "expanded_salt": "250D521D406B75EF76E1CB854CC5D828"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B5082D332D8CE51F38248C80A31F7AE1",
- "legacy_metadata_key": "62E3393E99936FF1D7A68CD1B6AB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6A5CAC06C3C6F0F0DFADCC5A2E59A77C",
- "derived_salt_first_section_no_de": "D913A00EB54D4D0B01C5BA43B041E142",
- "derived_salt_first_section_third_de": "2BA039DB590B099D5A1170E8A85D040B",
- "section_salt": "8992F9CA3600EC381A690FBEE062816C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6189E05837AF51CC37C918B7",
- "extended_signed_metadata_key_hmac_key": "5C0C92085B7549C5A6136659340A198D651DB03050EC8811D00B5D0B963DEBC6",
- "extended_signed_section_aes_key": "16C38218A1182B2CE570ABBD25084EAD",
- "extended_unsigned_metadata_key_hmac_key": "63004B356DADDE609C647C7486E0B9F1624F68AE15435F9F2B46A93D321983D0",
- "extended_unsigned_section_aes_key": "350F753E5E31AB508187D3331CF9FAE3",
- "extended_unsigned_section_mic_hmac_key": "C4C1CE7686F32CAD2D9D6ABAE8A9AEC7C6C718F76A553CFB34EE1CC581A17EF7",
- "key_seed": "4611690670848CE8F2C62E7BEB3A54DBC84F0550AB42E984D5FDD2412218457C",
- "legacy_ldt_key": "DF6FC6324E479BF85F3B419374DE331DA237DB97315A256B98A629CBAE5167E96F7ABA5661C79AB6C0AD3524656E9884D6CDC3BD0023619CA4E6F40F1116BD19",
- "legacy_metadata_iv": "98BCD77DB924C59470F547CD",
- "legacy_metadata_key_hmac_key": "10402241F9311A179ACC2E7A718346879474355DBCC8E2ADEA340706E6FFD94E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2ED0",
- "expanded_salt": "88377459398FA405F25049B12AD8E9B6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3817B56690A9CDBD2A3321A44F30533A",
- "legacy_metadata_key": "1155E9DFAB7999A1ACEF85717401"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BA1755C87AC87BEC02E74EC6E7A82689",
- "derived_salt_first_section_no_de": "8DD0C8BE0C8B0B6E7BDE0408ABAAF580",
- "derived_salt_first_section_third_de": "892746704469A93F10FEC4E67A2C9A67",
- "section_salt": "5F7D61760528B3A902777218050A8C85"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A9536028561A0CEB6112312D",
- "extended_signed_metadata_key_hmac_key": "8152A749887F3184BD5FF5A5E82DEA31A4AB48FDA34968077D1B1E417A206AC2",
- "extended_signed_section_aes_key": "E2C29CC2B00EC124359701CBDD23B9AA",
- "extended_unsigned_metadata_key_hmac_key": "E32579B2EC94A9032925D4DE0FB74DF83489482E85860095781DAA3F0FB2724C",
- "extended_unsigned_section_aes_key": "49E4D331855C2B6C92B1C48D010C0397",
- "extended_unsigned_section_mic_hmac_key": "ACAAEBDF9D5659C01BA562B72F40F000EDF04B8A639F76762EDAC49E88A4264F",
- "key_seed": "16BE28D4330D6922814EB6A8360FD06EF44142E26FEB5D83679EA8B805B259C3",
- "legacy_ldt_key": "75BA1F88E602FA44D636C0F47BD0EB49FE9080171702AFEB85C0B4CA28DF2C451C8D60803357D6F18C2E74D54E8359DEAFF006CDD0471E735C52EACC3620283B",
- "legacy_metadata_iv": "1CDC569DD8FC6923BF8D078D",
- "legacy_metadata_key_hmac_key": "DECD584529F1D47D17BF360223F80E177A445B1B8EC5E85A20E89BBA85A20587"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2FD7",
- "expanded_salt": "B2D6AA6767CEDC3789317AFAD5AD803D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "46092D4423BDB123A6DD96734E9214DF",
- "legacy_metadata_key": "1DE96707D88455FA5E9491D0B9C2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "909E27C6DEFFE8ECE40F9198230CB41C",
- "derived_salt_first_section_no_de": "AB10AD34850FD5F89F343AEDA9650E16",
- "derived_salt_first_section_third_de": "93032A03FF30CC0082D6C37D2F33E2A9",
- "section_salt": "852775E2105AB1CBF9414BF256FE343E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "64709C8BE8753046B893CF2F",
- "extended_signed_metadata_key_hmac_key": "F1ACD2190F0A3F73AEEFF9771B90FCCA3E878AF8834B0682295CF11A7D9549D1",
- "extended_signed_section_aes_key": "0F4539850B51F81BCD53ADF6DC15853D",
- "extended_unsigned_metadata_key_hmac_key": "7D73036C24F964F67DBC9CE9AB6D1DF3285BA08CD48D17750A869BC1B92D79CD",
- "extended_unsigned_section_aes_key": "258D31A2B30619605290F1C97530D0C1",
- "extended_unsigned_section_mic_hmac_key": "1A60FB2332A3F1158824AAA20ED8347F0F53077C75070DD66BDBBD06468FCA67",
- "key_seed": "8A00236CD6EFA10CC8476755E2ECB18E5C68FAF7CA015D130E327233F8ADBA63",
- "legacy_ldt_key": "08DF7D42ACA53F8EC157E39A9A61412BA3E45846A64E612BB52F4158ED19440668FD70EC0875989303339F3EF533350DA95A075796D5C888416B963237FC0B16",
- "legacy_metadata_iv": "B8FEEAA9A6D6591E3C2FF1CE",
- "legacy_metadata_key_hmac_key": "C28EB555FBCA1E29F417BF4098C91BD978C553DA305D8636B7F0CF61E4847801"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "991B",
- "expanded_salt": "BD5FB4EA088670866B6F5F7C1A3B2EFE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2E5F16F4FADC1D356AF1DC43193CD712",
- "legacy_metadata_key": "50C67774E39CFF18D2E1A3B8B802"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "34D77718975EE507E061DAA330E55ECC",
- "derived_salt_first_section_no_de": "39327852E2D21E03787FE1B10B450C00",
- "derived_salt_first_section_third_de": "17178575F195E41C9B2EC7205E7E3288",
- "section_salt": "C8B1A7A527D12554D9E518D8DDC25933"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0D71C4776114C70D0C4E7206",
- "extended_signed_metadata_key_hmac_key": "C50C9A73D7BC3CDFEE1AEFB365BC1B8245441B2173FE91E7073258F605693D92",
- "extended_signed_section_aes_key": "9E89AE618D4E56082D62C24264AC53A3",
- "extended_unsigned_metadata_key_hmac_key": "DEEA8BCEBF2120F939E664F8A718B88D42CCCBAC9CF1076771BA0CE357A3D5C2",
- "extended_unsigned_section_aes_key": "6711779AAA6AF9BE46CA7AAAC318A106",
- "extended_unsigned_section_mic_hmac_key": "7E763E1AE4A3406ECED8A0ED2E5EE81CD9549439B53064314FD3A4D12AE5DD61",
- "key_seed": "F5D56F4BFA50B80280C5B2E5F8E5C39A9DC2F0FCDA2EBB0CDF52831C57B12CA4",
- "legacy_ldt_key": "E3B1726B4524E36452AEDB95F9F794CC59472390A672E950F8AFAA84036C0C007FE4AF5D467D15594B6A0F227DAE1D1B816BBC67292103127CFDF3A95783BA51",
- "legacy_metadata_iv": "1AF15112A0984CA0C94F909C",
- "legacy_metadata_key_hmac_key": "AE5B84AC3B276B00D53D241C3006A74161B10ED62394D853FDD49C9C20E7B0D2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "88F1",
- "expanded_salt": "9E2480796A397E3EE958B6A09385A6EC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E7AEDD293C467C192A5DF787B8A1F3C1",
- "legacy_metadata_key": "9A36D02BEAB1A06DC0FB47E5C857"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0BBC8454618C74D1A3A0F9E78FC7AD64",
- "derived_salt_first_section_no_de": "55775BB2B65D90A6D197BFC7B74364B4",
- "derived_salt_first_section_third_de": "E36058031741DA5ED6503BF76EA76F01",
- "section_salt": "99973E469ACC66B5ACDB5A6EB6A1A263"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E44390E36F61CC2DD1D2DD3C",
- "extended_signed_metadata_key_hmac_key": "A84D758326CB720FC261466A0C1B20CFEA4AFB3E970D89DA290C98B1A64DA202",
- "extended_signed_section_aes_key": "9559DDD2C0F6BE6F6668FBD40163BC43",
- "extended_unsigned_metadata_key_hmac_key": "19D4A1824C975EFA66133E57CCB47337978191DD0AD97A2A9873CD606611EDF5",
- "extended_unsigned_section_aes_key": "B813E105E74987252F18362A793494ED",
- "extended_unsigned_section_mic_hmac_key": "6195764C400F49F89676784C0EC3DF302BEAACFE1386856D2BD3F51E9581982B",
- "key_seed": "CB2632E4DF1EEC259BFD230C89E7B4EDA463638AD0A57E4026E16879E1B6D6F7",
- "legacy_ldt_key": "1A1910B45B12723AABA0244BF5A0C8DDEF6FF4F4ADD89BB678030C8311EA19538E1D4F40F2433D724AB3D38667769A46AB4C4216ED3CDFD0C18BB92907C3D545",
- "legacy_metadata_iv": "86FDDBCF7322BDF5B6634BA4",
- "legacy_metadata_key_hmac_key": "86A985D47A0525EB5257B57D89933AA8EF1419323D2EDC92D1D88DA03EBEBFC9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "45D5",
- "expanded_salt": "517175A6A9F6570D501BCBB053EB3D72"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3015EC3D29709BD65FC9C66F964A1E8A",
- "legacy_metadata_key": "45692647930BBCB3782D93EED0D4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CB04F5D1BA7F7833A7E9C664937698A3",
- "derived_salt_first_section_no_de": "2410ACA0FE740B3CF290F62286B6DA9F",
- "derived_salt_first_section_third_de": "8D6F1784EF0D461D2E6882DA198A83B3",
- "section_salt": "42353C3BD2FB05F33D849E6CC88183FF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EC2C7A1B928B97EAB9C8F239",
- "extended_signed_metadata_key_hmac_key": "E893EF2813AF7510238E95BC8CBC8155F18541FD2CCA2385B33AD7B95E4D61BF",
- "extended_signed_section_aes_key": "D284149C0DEC05C5ED81A6ABE257D73C",
- "extended_unsigned_metadata_key_hmac_key": "8C7CE093027FF59E1BB1724D9842A627EB1D96A93462CFA95124A18E84345D6E",
- "extended_unsigned_section_aes_key": "49CDEFFA17DBBFE5BD1865D8501E48C3",
- "extended_unsigned_section_mic_hmac_key": "71A075146AF8CEA2574771E98BAAB67F4BF698F9DDABA942269A611F2C8E7601",
- "key_seed": "69AF2BD99880E8CD3EF85E4F185FC050BE3EEB7403B868AA8D2D04BA3A96ADD9",
- "legacy_ldt_key": "7E63C2154F37B5E7EBB48694C60FFBEE845BE0F0B65E5D64BB9E7050827849081C0783D90819B69F9E2D85B640946AB8AF5C4EDF321EA822FE76A50910310C70",
- "legacy_metadata_iv": "412A5E8403ECF1B6C1C90FFB",
- "legacy_metadata_key_hmac_key": "6D1194EE46178348B576FDA7DD1BBA30C8A6E0FC1CD2885B1110FF62E89B442C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AF10",
- "expanded_salt": "1E05BE12E00B99BBF2DF382CD9CF3E0D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AECC89345401A2DB1E1598698F82152F",
- "legacy_metadata_key": "4A8FA15178D7B99AF20B8AE77354"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2656CB5626D61E58157DF8C13DDBDB4C",
- "derived_salt_first_section_no_de": "41E7F1F00D4104EBE5C2B9DA4CCDD631",
- "derived_salt_first_section_third_de": "4E74444E87C058577A710CD84937F5C3",
- "section_salt": "8DF724B60B65381252B3A116100DA353"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "655A85D849071EA5268E1B4F",
- "extended_signed_metadata_key_hmac_key": "6C67A4F3DD791A0703DDBC60A75EF91665ADC76C92E63A15BABBB2AA0E9AF802",
- "extended_signed_section_aes_key": "90BB70AB088CA7C26E8D0148930D3E1C",
- "extended_unsigned_metadata_key_hmac_key": "1624FFF8697B1124D5AC4992E24E2BEA2B4FACBFE2961E25FB21330B2968C878",
- "extended_unsigned_section_aes_key": "BC732F00D198F0CC9882F94614E8AA81",
- "extended_unsigned_section_mic_hmac_key": "4C5CA1F414A5A98F23069691707CF76E159EA889CB0661784745814DE038A4AF",
- "key_seed": "45A15913CD7DC94D8C6C65ADE96A30CD0582981060C3FE8F56DE39D99ACE2A2A",
- "legacy_ldt_key": "372361A6D7FC64C1D1526F4613D18EF6CCEEC047C3064B3318F7AA979A11187CA1D474439986D0A63F8782C96E56282CDCB46106A43876D09A8BE53A0660F11B",
- "legacy_metadata_iv": "BB2946978691961C45C9BB02",
- "legacy_metadata_key_hmac_key": "ED5E80D3BF80EAD78B565EA695B1867C75404AADD52FE1496C4ADE5E023BC7E3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EA32",
- "expanded_salt": "41B7ECF23E5996AAF31BC72EFE993A25"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FAD714A30CD2054DB7DEA6273FFF6685",
- "legacy_metadata_key": "7D2A1502A5C092BDE633677D4349"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5DF10341AD38B9696B11E72C34597702",
- "derived_salt_first_section_no_de": "A0E0B4C45DC67E04118BF22208A99EB4",
- "derived_salt_first_section_third_de": "72CFB58BA3966EB5B29E88738CB1C0AD",
- "section_salt": "22FC6DF9467B950394BFD713DC169A4A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E7AF8906B054DBB5D65BF4B8",
- "extended_signed_metadata_key_hmac_key": "E3C09D668A680D15136986531D4D8FF90DD27325AEFC60E12908C4F6F6A80C4A",
- "extended_signed_section_aes_key": "F440434598FFF253ED90C17442823421",
- "extended_unsigned_metadata_key_hmac_key": "FD3FAB5929FD8B8C6FD29F2DF1710894CEA0B01753293DF654E02E1E83622A2A",
- "extended_unsigned_section_aes_key": "F1DE281A4494B14FAF523A71137DFA8A",
- "extended_unsigned_section_mic_hmac_key": "A3EEDA1EEAB1D765189605741968667F0BD4CE9CE70F5338FA524A533290B27B",
- "key_seed": "AEA547399DC33AFF20783BD55EC21C4C91F9C9592557F45C575800867F16AA92",
- "legacy_ldt_key": "49D0C7136CBBBBCFE13248F9591A8324D85895FACEE97965C13140C99D0A93D45144DC50765D6DDCAEA5987AC41A2EED54ADC6C2371CABE23899C95D68A4AEA1",
- "legacy_metadata_iv": "D7D5BE431C0B035EDDDF3356",
- "legacy_metadata_key_hmac_key": "16FFC0E14128D073C2D06A0B2B93847ADC03CADE94A9C795E47E5E194C376DF9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "825D",
- "expanded_salt": "BB7806CEC80F399B0BAC4332C0F14B13"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EDE1B479ECD684483B7FE197AC3367F2",
- "legacy_metadata_key": "2087665EAF906E62D684AAAA9B48"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "138F645DB6ED77D3EB16DC4F59D7B79B",
- "derived_salt_first_section_no_de": "FD989A7D25F7C6171E25419594809D50",
- "derived_salt_first_section_third_de": "B94C5040D410F07BE463781B4DF403DB",
- "section_salt": "FCBB77E91A26927DAFFC57DC35421507"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B891CDB2351433197D76B43D",
- "extended_signed_metadata_key_hmac_key": "360804531989F6CD6E3689DB076D07C77946792CC2F096D9E43DA02F9BAA50F3",
- "extended_signed_section_aes_key": "03B2A5E5127DD992D868311758124AC5",
- "extended_unsigned_metadata_key_hmac_key": "F269EBBBA45473C1F84C785E478DAC0FF50FCAA62CFFA8A781FD33527CC88804",
- "extended_unsigned_section_aes_key": "1EF369DB995C4B746EECE17EE5241658",
- "extended_unsigned_section_mic_hmac_key": "EA1EF2C3A3EEED1D6E2E1BEF3285D6C810586390C7680A24638CC6204B9EE34F",
- "key_seed": "8313D2A247AC2DE871866680CF5528B66C0CB702126D17E97CA189599D31A13C",
- "legacy_ldt_key": "3375829A65656F739842FF579B46F06AC41534AC839DC460763F2B266BA5DB4C45A8A1852E6C991A8ACD611BE76D87776FC40AD3AC48722F759B50D3E15CCB23",
- "legacy_metadata_iv": "EA638E5AACA0E7BBE4A5BC62",
- "legacy_metadata_key_hmac_key": "150B2CFED9CA96362A38AE59BAEB70EAEBDD8903D313AA48280B4AAB4B03C674"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6722",
- "expanded_salt": "97E5CF338B52A4A7B3492BF44F3367DA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4A5A0D43D93F8C341B3B2482688A236B",
- "legacy_metadata_key": "42EFA4D9EC1CA2306660F078398E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "79846045BD006A2CFDCC228EB1F7D8A9",
- "derived_salt_first_section_no_de": "1A0D53508A6FC67CF6585973E2A9651A",
- "derived_salt_first_section_third_de": "74C10B06B064AFD4A08492B801A54233",
- "section_salt": "A4BACEE1C6408D4D375A4074D74A335B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D235FF3A1A108772CA12F802",
- "extended_signed_metadata_key_hmac_key": "A5385F12BCE27C78E077A33C8CF327BCC081482B7E257AB17E8DD62C49AC862A",
- "extended_signed_section_aes_key": "7335890CE3EE6E764B5863263D3296BD",
- "extended_unsigned_metadata_key_hmac_key": "2F2C2392F827DBF2C4001F75633F367EAD87412C9F5F6EE1DA03EF1023E3F1C3",
- "extended_unsigned_section_aes_key": "C5CF3E86A38FFCC1D8950BFF1DD6A12C",
- "extended_unsigned_section_mic_hmac_key": "EA59F9C8BE835B7A324689939CA1B4836B121D0BEDC3E5C52019C71316A550E1",
- "key_seed": "7A92E2B8EBE3AF631EDB39640FB02E84A45CE1BCFC15FD34D0F925988AD013B8",
- "legacy_ldt_key": "8E6C8B076D19336B7E90963116C7152F0578CAFA16FA6423FBB5EBCD0B76A0FB78E350F6E709D0EA732D4324BE16350A72BCB13BA160EF3CCAC80BABC39E9245",
- "legacy_metadata_iv": "99E07F31A55178317201196B",
- "legacy_metadata_key_hmac_key": "245C5EBDCA5A46C504B63ED5D6510FAA23B658C2FFFBAA4908FE23BE0984DD16"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6FC9",
- "expanded_salt": "7E8A8ABEC6D280953556794B0C5D040D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A40F814921CA8EBCEFF4EB23F50BD52D",
- "legacy_metadata_key": "A4C16F65E3F9B286955B13C8633F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "33CE8D6761C51CC24C1630EF54DD2A7B",
- "derived_salt_first_section_no_de": "A15CE35BD4A8F1344F43483DEE5941CB",
- "derived_salt_first_section_third_de": "E72192B6D7C7D9A2159FC0B89B62C42D",
- "section_salt": "943A70526C9B31C204F06A090621D4ED"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7A8CE2C183E2B359B766DC3A",
- "extended_signed_metadata_key_hmac_key": "1266C52CB2F5EA605FD180EB3872A9BE85D7710E0D58ADD6EE139E170D708555",
- "extended_signed_section_aes_key": "B6389C4002F390DA3BF3ADD3211ADF13",
- "extended_unsigned_metadata_key_hmac_key": "F2DBD98DAE72943CF08D3E8588D98E1BF23A91D2244FF461A1E3588674DE4EC3",
- "extended_unsigned_section_aes_key": "5166A9962C9ADD0328AE8384CBE9C912",
- "extended_unsigned_section_mic_hmac_key": "B78530212786D2A15D05DDC925569D6A33C1E75588A23F509D692079AA04A9F3",
- "key_seed": "CC93923904405446B0743662838A9442333B059C1485EB5D23E66EB23180D924",
- "legacy_ldt_key": "0D5417FA6899F3AD94EEBC74D010161A70F1C1EE4EB43CBA56EB12767BC43DB20C3ADE141FDDDF905406DAD640A6682EBC266459A8DE41B2DDDDA2A37E6917D2",
- "legacy_metadata_iv": "C69002F2BB24FF0731BDD0AB",
- "legacy_metadata_key_hmac_key": "6E984C059815C2D45BD20829E4B9C339B431A8A74DA2B78324624AB89D4861B0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E139",
- "expanded_salt": "1C7B83F683A143193A8FB665E72B7D49"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "211A024DC1D6AB977025393692CE4411",
- "legacy_metadata_key": "9D13C08438562124E1ECF4025F5F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "984E770941B72BD507B6ED30BD3DF34F",
- "derived_salt_first_section_no_de": "6F8AB4FEACB02D22A0436AB281298099",
- "derived_salt_first_section_third_de": "3F8D026A99AE6EF1FFC791CC08D454A6",
- "section_salt": "F1866D944DE32F0F2FD97E5A1B6E2723"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E1AD1BBE967C8BA7ABFACBA1",
- "extended_signed_metadata_key_hmac_key": "FAC08DF46D00EE50D01F4E8E805D0C41E30574CD496F49815F4EE1D40EA4DB13",
- "extended_signed_section_aes_key": "FC7F8E7F77A37DF9A6E414A9C52C0467",
- "extended_unsigned_metadata_key_hmac_key": "2FB9E506D6F8946277439F959FA8E81C134CE443CFEFA153F8B16E85AFFEFB66",
- "extended_unsigned_section_aes_key": "07CB1937B084D51281F469AAF1386497",
- "extended_unsigned_section_mic_hmac_key": "8C6D263DF41443FA9C2AEF6639D09844A90D78620F081D80ADEDD7B516999A53",
- "key_seed": "3DC233F95FFEE2EB7B55573A664405ABF34999ECDA3D9966E50522893F11808D",
- "legacy_ldt_key": "1D4A8FEE0B349F84BE819221577FB25B84159FAFD2D1E4EC63DB770E355BB936E9C2B2702A81B7A2707D60207663C9661A50D1A931A9DB45834F5D6B3C4E0588",
- "legacy_metadata_iv": "039D2A8AC691CF7DCDB46AAA",
- "legacy_metadata_key_hmac_key": "A472A634A22463D85A41152F67794F769DCE2C7A6141EDE3A554CEF1717A483A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B46F",
- "expanded_salt": "1A59EDAB60C5DCF490D62190470799E9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "52E8EBD47F571577047BDE567E28B66B",
- "legacy_metadata_key": "A80D30766BD7D18AC8B020D87903"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2A6A9DE60533E4A56BD119BC1DDB0966",
- "derived_salt_first_section_no_de": "147673CE46059A733CD9088E6B8C114C",
- "derived_salt_first_section_third_de": "C75CE06106DCCA750198EF64D5D33040",
- "section_salt": "8433265B5CF933602996D454F394FF6A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0D4E2EC9059A51DF7E4A5E2A",
- "extended_signed_metadata_key_hmac_key": "42B785E5354F728C1917D51DDE28346C138F173A7936369D7E88BDBE39111107",
- "extended_signed_section_aes_key": "1D59D46AD66316D13436AC33F97738F8",
- "extended_unsigned_metadata_key_hmac_key": "2859B72E51172C205C55079453DAD030272D9903B1BD56C19CC4DBF8B51F7B21",
- "extended_unsigned_section_aes_key": "95B30299C468163D3C3F87286AB6EA75",
- "extended_unsigned_section_mic_hmac_key": "55903890F3DB7E9FF7938DA6DEBAB1B88043B7B6D6ED41F2C8BE15C566CB7CA7",
- "key_seed": "3610E9AA063892CFAE5B65B1C71E6D6EE334739BBDE8CAE77A71C01901054199",
- "legacy_ldt_key": "4B728C3FED023ABBBD0E1C9051842790280E63C0EADE18A840D7802BD654EFE663F8CE24E278AF517C70B34BA3D3495A7BA152FDAC89535269D95BB595C9F92B",
- "legacy_metadata_iv": "7290674EE6F16D37191BCA9D",
- "legacy_metadata_key_hmac_key": "3F8E19E266C3442A7A9CD61DFE4E6781967C1C2F49A0074BD7E3C37906607C28"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9E93",
- "expanded_salt": "5C3A819D5549C9F49E2C5139F69A140C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "77BF57D0784A38CD7B53A355509F42DD",
- "legacy_metadata_key": "B841F0E1491D3E05066B14368221"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "55BD4D9AD86973163035940F279C5531",
- "derived_salt_first_section_no_de": "745DCAB67888D01931EC407838F55269",
- "derived_salt_first_section_third_de": "BE6108EBE8314212AFD88686C62845D5",
- "section_salt": "92056C75C51E75D8FBC28BABE20DCC0D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A2E7E230C5FC4DE1EC444612",
- "extended_signed_metadata_key_hmac_key": "78CFEBD54E6FED851631ACEC61C14F07C28EE0A485AFF9F0C08E005B91B949D6",
- "extended_signed_section_aes_key": "6DD34736751C55F959C4A2A1A28B398A",
- "extended_unsigned_metadata_key_hmac_key": "643B256033A865443366EA7EAE685F06B606D9765AFFB666A5DAA4F27C02DCC6",
- "extended_unsigned_section_aes_key": "F6CF119B146F1AAC8A2D5C494B8D85B9",
- "extended_unsigned_section_mic_hmac_key": "D7F5571C73E8B534E268ED984CED665EFF8CA3E35F87DE134F3562EC312B03A4",
- "key_seed": "C5BC10F1784DD38557C032BEEB79BB37C06892DC9B3E034B487B05230FB6085B",
- "legacy_ldt_key": "3C6347D4E8C7A187480DE6AD61C59CF7B6BFFB15B0E81D0810FB8FAB42F454F9B7E8695B59B810E012AEB1E12E1FB8260A48C2C95DC5092F990B6027E230CD67",
- "legacy_metadata_iv": "816B28D8346C20F6E7E54E91",
- "legacy_metadata_key_hmac_key": "6B8021735F0B68E1823B03B592570775601B5BF479C5BB0BAF531C8B052B09FA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "225C",
- "expanded_salt": "F3975451CA4F219E6830BA876DBA4EC6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7900A735B5307BA76B6821EAA346517F",
- "legacy_metadata_key": "F0EF319B65FC94B3155AD26500C8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0E8AB630EFD0189EF178FE9344FB5468",
- "derived_salt_first_section_no_de": "CFAC07EE17854CBBF4D140D9B571D342",
- "derived_salt_first_section_third_de": "CC922A416F02674D93681E2EA125F460",
- "section_salt": "6B74EDBE3C059BE600A9DB67524B4FD1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2A1C2763266C88C8E45C5EDF",
- "extended_signed_metadata_key_hmac_key": "854AD70B6A5ECB324E0119B5EBD4DA7AB4AB9F0CCA6303D8D71021BF1A3E7D9C",
- "extended_signed_section_aes_key": "EF1D166C0F00EC8E3388001FC4837EBB",
- "extended_unsigned_metadata_key_hmac_key": "25C6ABD80B2FEE26D68F47E2CEC635B39EB39E855759C88C60164CC85A803B4A",
- "extended_unsigned_section_aes_key": "F7BA22274D57EA18F77E28281496F3EA",
- "extended_unsigned_section_mic_hmac_key": "320DF5FDB724AF20CEF044A6507A01EB5EB5CD7E295595E6E384AB0414683782",
- "key_seed": "783DF5A2EAF1FF3A6758C34459D28399C79AD984A53DAC50C8B6E8512695A81C",
- "legacy_ldt_key": "463A250EE4C789D05F4D1BD28EE7719AA5ADB1C849417EEFB6F07300CA627FC7FD3DB609EB0E128F8EF557F8F2C311883AF89A8A53174F8C09F71BD31F7AEA0D",
- "legacy_metadata_iv": "64B04CCB79830FBEB1081F03",
- "legacy_metadata_key_hmac_key": "7A99610F609A5F292F1E7EAE102A063DCBD4459E467BFDBEA0FCA6C5A1FB132D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "75B1",
- "expanded_salt": "3BA5D3158C3CD1F418F2E8B02DE952EE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "35C395A727DD54AD55CE11B84E92434E",
- "legacy_metadata_key": "A121CB6D8B4140CB4207108B1117"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "75A2CE723FFB652BE574D740C01A12E0",
- "derived_salt_first_section_no_de": "23F75219F5DD3924BAF5EB56D9B8A814",
- "derived_salt_first_section_third_de": "D25BF46FD8421DA3F5A8465C0352E615",
- "section_salt": "48816FDA5E2E7C177118677E4F7734A1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "82F43780508598B12A20747D",
- "extended_signed_metadata_key_hmac_key": "180BC4977A709B9F7E302C9411C2AEAF5A6818A8E014767E0750047F92505258",
- "extended_signed_section_aes_key": "AFB88302B7B7539A6C9B91FF56FE24D8",
- "extended_unsigned_metadata_key_hmac_key": "26EE85ED5860ED83ED9463B0838C4147B1962F06C868F376EB652842F753D3C7",
- "extended_unsigned_section_aes_key": "F8905C38C035307F5D4AA5A36066C9BF",
- "extended_unsigned_section_mic_hmac_key": "B7F09248C8603C1AB3B34A3E971838D8A17FC3348126C6F41AADC8B9E6DAADB6",
- "key_seed": "F624F5D7E18805A7E78FED5F8909570EC711111D76B7372835D8F950A8B18735",
- "legacy_ldt_key": "96D7D1F8275E542DBC3A5979939A60243E560C4463CB398CE6E3AF4B2ABD060AB53B1CA3093BEBE3150635FF3161661CE14DEEF513D917E6A45932A830AD5FEE",
- "legacy_metadata_iv": "90AADB527424777CF970458E",
- "legacy_metadata_key_hmac_key": "D62EAD76B49386310D1AE3916EBE21D9774AC3D7019096349CD49AF73EAD03D9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "393D",
- "expanded_salt": "49558BE20FFE0F20A1E14AB9D9BF993A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A0888EC92EAE923876A1D689A2AA2D8A",
- "legacy_metadata_key": "35B417B6075927598A2C6E7D1A6B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1FF693304ECF49421518374D047F76DF",
- "derived_salt_first_section_no_de": "7B16BCC1DE8DFD005B86E3C412994DF4",
- "derived_salt_first_section_third_de": "1945D641000AB46279BABC0AA5BC173A",
- "section_salt": "D4382ED1E681DC09B22188D3BE4E7952"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D50888E9BAC03B8BBE96E3F1",
- "extended_signed_metadata_key_hmac_key": "64F96EBA19A4C0E3431503BD188891776418C95783EFDC66705B26E4C84E3DDE",
- "extended_signed_section_aes_key": "5B9BE70822E0245880E2BB544E01A8F6",
- "extended_unsigned_metadata_key_hmac_key": "94BF9E04E48FBA29F339B542D182C45F910BA23BB4642CF6CEFBD9CBDA9E46BA",
- "extended_unsigned_section_aes_key": "5D73C5152D0521AD440F22D6A0C605DB",
- "extended_unsigned_section_mic_hmac_key": "217359C475008AAD68BD50DC69252A85C455C9E4E22B62BF0935697182B387EC",
- "key_seed": "786F08AFE11050FEB86F98B407F84753C69463A48D444D62579D8D1C0CFBB736",
- "legacy_ldt_key": "A4090E33A75F0EA0FA0B7EFB8C998D34E78127B34F696A90391DB368A32D87EDA90DC332097CF6B7E65C284F6109B8BB901C2E578922F672D6F2761972A8DCB6",
- "legacy_metadata_iv": "861831899BDDD13201C615DF",
- "legacy_metadata_key_hmac_key": "EDC3073653DCE623A72B07BF0C102F1156E21C4824642A47D86303DFE0B6D9B0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CA66",
- "expanded_salt": "9997254CFC412A7208F7D9BFF78C2F5F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AA8A1AFF88AABE322FB4860B449F7FA8",
- "legacy_metadata_key": "BD4610B149E8AD40967EAB2CABDF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C7267D1D06F614894544AE316E2562EB",
- "derived_salt_first_section_no_de": "1F8C0DA9E32884E5E7EB0531B19CED17",
- "derived_salt_first_section_third_de": "1B880DFEEDCA5DD72A4BB2943193E982",
- "section_salt": "449A212A43C0DBB5BBFEDE46D43904B2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F447AADDDA7825E17C1D8C2A",
- "extended_signed_metadata_key_hmac_key": "7D2D66FC5F14FF88109E5BEFE70E2FFE707457C753F909BA3F27E0BFDFA37697",
- "extended_signed_section_aes_key": "942EE8A42A74857CF242AD736F6031BF",
- "extended_unsigned_metadata_key_hmac_key": "78B00C02C454A640BE5050A4A2156046855B13A0A646F35F600F6927A8986ED7",
- "extended_unsigned_section_aes_key": "9E721A19735BD2D3536C645808E42B75",
- "extended_unsigned_section_mic_hmac_key": "205EC8A277995073B4A636EB6A32514883061C2C1E4A693784ABDE7E82328070",
- "key_seed": "E53871C5A62543F3887BE3FE9E789D51851480E359CA0E9370FA3A26588B913D",
- "legacy_ldt_key": "E5C5C6FC3C2ADC1E809BA0C97AF7EC05E08A267F4E54AA4750D929DD9C65E4C5AF878D40028CA252B355BC1144D03993F9C5DCCEEB11231629642368B10DD837",
- "legacy_metadata_iv": "ECE889D655978D0396317CFA",
- "legacy_metadata_key_hmac_key": "7614A78500E0DB40EE29148B1B51A9B9BD518DEF79820869082CEB2324EE3530"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9655",
- "expanded_salt": "DCDD520328546DB4B3BD1C29D5C6B11E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DDCE2065A7129B737879A97D1FD13BD9",
- "legacy_metadata_key": "99D8C3C563FB6915901FD54F172C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EB329F0EB3CB48C285F3075F52E41121",
- "derived_salt_first_section_no_de": "677629403F6A73F2F1A98FABDC7D14B4",
- "derived_salt_first_section_third_de": "B2509DE40ACD58393F66D57EA9EA0D72",
- "section_salt": "F2E0F3AF5C480C3545D236370989CF78"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "11ADB19FB0C37B502641AA97",
- "extended_signed_metadata_key_hmac_key": "48D3A4CB89074B60FE94CBC6DD32A1FF891240E10B83C9054E206035C2BF3920",
- "extended_signed_section_aes_key": "61F6D0CE629C8A8C2E96843EDD4BE159",
- "extended_unsigned_metadata_key_hmac_key": "E835FF7250E790A45337219F65CBE572B6011586426E93DBF5DFC3DCAADF88B0",
- "extended_unsigned_section_aes_key": "AAA888688EE3C31743EB56E92725EB9C",
- "extended_unsigned_section_mic_hmac_key": "70F2622696608A203C28BBED4B0F22AB24C888679E25FEDF1D8ED234DA283E52",
- "key_seed": "0BF8B16FE98261D760CFF1F0175FF6F4683D10059D0642C2274D13F02F158892",
- "legacy_ldt_key": "7F19DC585038071E517DA6C7C402F60ACB352CE71FFBA17645B0F80BC8642BBD6D21A113AC37A81D7E613A5CB3075694CD65E0A0CA3767503C8F57EF3FE8EC05",
- "legacy_metadata_iv": "5C4C59066E2D033A49396B19",
- "legacy_metadata_key_hmac_key": "48D8D3AF7E3A5C1AA2A547020DD46FC37901F9BE428397FCA0C9B970B924A22E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DE9A",
- "expanded_salt": "55F255772B9C6F1B2492F6AE4EE919A1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7AADA54389ACEBE2665B04A546F7BDCC",
- "legacy_metadata_key": "C55046EC1160F69CBB9CE83F2CFD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0498F5EF1968A89B08BC41FF0F630C37",
- "derived_salt_first_section_no_de": "9E6180B965F062B7FF495B2898DCB811",
- "derived_salt_first_section_third_de": "43EC166AE580B7C6C710CC0749ED3E68",
- "section_salt": "AA729258C1B976DE0334773CED7FF570"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1C364FB42BE66825B699F734",
- "extended_signed_metadata_key_hmac_key": "2C29E0402D09B438A13B6152511830F3FB07E11DA7557D396FB6A3419F6DF5A9",
- "extended_signed_section_aes_key": "26837EDB11A3A07E2BD748A26DFE7066",
- "extended_unsigned_metadata_key_hmac_key": "D56F34869D903A4C3C1E8E3627B4D5A8B31EF4CFC8EC3086D4B8705A01A9F39C",
- "extended_unsigned_section_aes_key": "ADC0ECCE2CFC1AF1B25A6529880C3398",
- "extended_unsigned_section_mic_hmac_key": "81BAD64B3022185671D2300BD53B14AFB105625C4FF23BFC98C1CD51F0230974",
- "key_seed": "8E282F5BF4A4AF42A266E29711C86A855FB35088AB74D021EAC09E554CC7E117",
- "legacy_ldt_key": "2DB3056F788BC971D8C10016894D1B3B3060A343A7B736DF7D55CA5FDEA6F85ECED583A94247151F5F5AFFB510E1F39875AA367B82D1047ACD765256759973AB",
- "legacy_metadata_iv": "15F3A78E7262F446D9422E46",
- "legacy_metadata_key_hmac_key": "0E7863D4653A818130760E1A38AFA331EF5A53696D61C7E74C5D270BB6E4C965"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D6E1",
- "expanded_salt": "C2E2095122911C0FDC7820D14BBE510C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5307629C846E0EC54443BDB3B2414E7C",
- "legacy_metadata_key": "ECAF1C92D64454584B2A1F133FC0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0DC89C6643B9D47BB7E26C7C5F195853",
- "derived_salt_first_section_no_de": "1B14620164386770FC3EDAF5CA3F8BA8",
- "derived_salt_first_section_third_de": "3058633DE53BD5DAC8412BDC9FBDD363",
- "section_salt": "CDC253C40B03CBC89A6587E47CCB6828"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E319F0DB067A7781A8D7E35A",
- "extended_signed_metadata_key_hmac_key": "028EBAD8C81C408ECC528607A2E92A3A94476DE482097D9F16769C3D086EEDA8",
- "extended_signed_section_aes_key": "EF8DDA3C956A8E2D9DDA68994492B18E",
- "extended_unsigned_metadata_key_hmac_key": "747B442C92292256FE046A370AE9D42ED6C99C9A25D9CE4117AE0109B8BD888D",
- "extended_unsigned_section_aes_key": "14DE61534D0A2DF11B8895AB99610BCF",
- "extended_unsigned_section_mic_hmac_key": "A699418D94D55B5F832F73B31208F97C7658E3623D281091C9F3063B37BBCE19",
- "key_seed": "413CA0A4120E69F36A9994A8526CC9ACA2FDC51DDEA9D90098068F986AE04C33",
- "legacy_ldt_key": "50971ECB7148C571D6F365B042D9A9A824947390C293B7222E87BB8AC47F4F32CB3616E6DC00495426BDD5B0E4232AA70D9BA77197E5F10EBFA6648F0EBCEC7B",
- "legacy_metadata_iv": "7C76CEC89066EE921DADFC0B",
- "legacy_metadata_key_hmac_key": "B66B5014D107E47896EA522FF0C1330AA470FFB74685AE87C409193FEA852A33"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "44FF",
- "expanded_salt": "4F004D3E1D8005A26BC2401D0E9C3190"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7890217A2A327FB3390A4855A4FAE2EE",
- "legacy_metadata_key": "B86E830662E5037135F37B258B4D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E510EA026F55C54BB4177F49CF0DD6FB",
- "derived_salt_first_section_no_de": "12A44B15EE9F01210066BD49D0F12786",
- "derived_salt_first_section_third_de": "6D77DC793167CD9C08082FBDCF709D91",
- "section_salt": "A0314333A8F7E39DA310B4A9C09333FB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "81C077DBE180B4B6845B2769",
- "extended_signed_metadata_key_hmac_key": "5445AD7D25DE40410E5C47EC24EEBC5F7E5E22148150F37A66FE1ED11461AB2D",
- "extended_signed_section_aes_key": "BBB2F3FF959324E710DAEF9E05242566",
- "extended_unsigned_metadata_key_hmac_key": "F995C9AD037883604F95B9467F95226886A328C9920F9EB824E819472C2764B2",
- "extended_unsigned_section_aes_key": "2CCB821FA863A0DF19B1E526FA3DDFBF",
- "extended_unsigned_section_mic_hmac_key": "30D811E2327B92BEC98D6E796F73CD70A7258E9366BB33C3FB8D41DDB89D8EBF",
- "key_seed": "597FA41D018FDAE930045FDA0A8EF388C557EC83F0BD4190D973C00FAD71A088",
- "legacy_ldt_key": "48AEEF094CA7FA440C5A3EAC50D594ACCD3032B2DD792EE36364F5292D232D258AA60F49B61D28EC94DC4D42955C029A5AB5286CDB564A06183CC60ACF441ED0",
- "legacy_metadata_iv": "9519A36B127BACAA99DDCBE3",
- "legacy_metadata_key_hmac_key": "1FA038008A34226091F23A6D62291532A3C97555C187C47A2B2EFD6012897094"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1913",
- "expanded_salt": "16262FE8C3976837A7CB2B7039505AAF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DFFC1EF8D2B99A7D8F9F8A68EDCF35F5",
- "legacy_metadata_key": "3AD76D52E303F0B58E7E2B8A6914"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FB515F0E4080788BAF7582598906313D",
- "derived_salt_first_section_no_de": "4426922C03540488B7F2B43702E09A79",
- "derived_salt_first_section_third_de": "F2948A39B57853167971D5F519F90277",
- "section_salt": "9C915B966317E56E41A8CC7E4AFCF5BA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D25C1FC54C783BB2537097B3",
- "extended_signed_metadata_key_hmac_key": "CE9AFC8233F6261AB59169F6A64849AE598A46FA0A0F4FAC507711F42D7FAD4A",
- "extended_signed_section_aes_key": "2FC0C7369DE8795A2D32B007A28A2ABD",
- "extended_unsigned_metadata_key_hmac_key": "6DB9AC02580619F1A7C4C3EA78DA23C70BE3F155766FF0D8C3CB483F8260FB8A",
- "extended_unsigned_section_aes_key": "C4830A877E7EA1BD7C25651449537762",
- "extended_unsigned_section_mic_hmac_key": "4EC25B14968546AEA93E5A11C941A633F307985DD2584D8CB0BA0C0D82005692",
- "key_seed": "829951F9C94FA2775428516882F0CA6C70AF2ACCCD582809CA572D24ADDA61A1",
- "legacy_ldt_key": "C94DF9818272ED02A79986450130F144F30BE86840CB11A158FEAEA3018DA24FA3F333C00D603EFD3365A2EE076F44D06F7B073EF8277CFC8170B818CBCE30AE",
- "legacy_metadata_iv": "FA33F510ED8596B4F72CB072",
- "legacy_metadata_key_hmac_key": "54BCD41F0BCBE6DC1196D40E729A0E44A88C83397D761E7011FAE881C2F71CF2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B73C",
- "expanded_salt": "0E5AA4FE2F20A6ED5804B637D449D62B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9C4E85123818F834F7531265349D158F",
- "legacy_metadata_key": "EB64E49265D3154CE2866B27B18A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2758DF1A0F3A9CBC87F393ADA97A1A74",
- "derived_salt_first_section_no_de": "2A7244C312DBC3D6F6BF37A074E20A09",
- "derived_salt_first_section_third_de": "93E609FC667A3EA0AA939E921A40402E",
- "section_salt": "0B5DB592107D7CE6026D589D5171277B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F5D36A734003F5B36CE79CAC",
- "extended_signed_metadata_key_hmac_key": "38FA1E9B2E4008D212B4C49BEC7233C65DD4C9389474699FDDD063BDA99A5BBD",
- "extended_signed_section_aes_key": "EC44755B6B480B4BB0C5DE2160185AA3",
- "extended_unsigned_metadata_key_hmac_key": "C907485D8D2498BBE3D71D652CF7865DD95916AEF8C56373818DF427379EC5A8",
- "extended_unsigned_section_aes_key": "65F3D7F045247F3BE1BE8D0DA6E07609",
- "extended_unsigned_section_mic_hmac_key": "A69CEEB5C64C2155DC096A84018140B388F5B199609C3480D298C1A9149038B9",
- "key_seed": "A335C67B08F7AFC6DD9374C4692331C982B12424EAF6B826306B96C2B25E0F0D",
- "legacy_ldt_key": "C2A1E0832B1AC9ACC67D5862F913DA64579E2088E2F2EE14ED6B069734658E90431FC940B45BC56B64D9D3808B73F1E97373D58C38767E359947B36AFA1EAFBA",
- "legacy_metadata_iv": "0CCC87402523F4F8D957B667",
- "legacy_metadata_key_hmac_key": "AC83D91F9C8955604A01201BA6B827C4C6D2AAAE04A18E0C3DF49F885A4E3307"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DE38",
- "expanded_salt": "B459EE5D4F1A9624EB3DE71324F71FD9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "63414BF4521C0716E9F7FBF47DAC5B30",
- "legacy_metadata_key": "BFC23E82535E2234995CB37A1E4A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B127AF9884493D77E74540DAA4C05225",
- "derived_salt_first_section_no_de": "E8983A040D334C43773A277FE3E2402D",
- "derived_salt_first_section_third_de": "12BC6718F24F46675D1714841AC76F1A",
- "section_salt": "CFCDD91F7B2E1AA0F0822B30E6B7E882"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E9EB9BB59E00AFB64DF3F8A9",
- "extended_signed_metadata_key_hmac_key": "1902B9D319FF56AD6667989EDF3BD0C35B40C948CBD86B569427BDA2585B3234",
- "extended_signed_section_aes_key": "479BE7BEE679511FB53DC5505DBF4858",
- "extended_unsigned_metadata_key_hmac_key": "479AEA71E7C797E0310B1F609D7F576C078D98F8E1833F36E98EC0E23F74DCDF",
- "extended_unsigned_section_aes_key": "D8FC91D35E01CB7F8B342132E25389B3",
- "extended_unsigned_section_mic_hmac_key": "B918E2489D856C050F6BE86D19994B81B8EDCF78F1D1E803E66AE2860EB8CC5D",
- "key_seed": "C291DEADED08A12A0F5C65D493C83F4835CCD86BDF7D795D61DA0CC9C88589D3",
- "legacy_ldt_key": "A95F2BCFA19CCF4D1009E7945E18B75B6D957B49DF025894D39A4A26629192963E43F32F5DA19217C6DF81C3DBA44E6BE9AB626149EAB6C8752A56C252A90782",
- "legacy_metadata_iv": "870E6F09E634C9A0317FF839",
- "legacy_metadata_key_hmac_key": "9019754989DF7DD836690638C0508BEBEB89BB46F3C6189835B717F3AD5EF1C9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F2B5",
- "expanded_salt": "9B1D35C8269230FAEF2D4605B085ACF4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B37A4C5F4473B734501230A4DF6B5850",
- "legacy_metadata_key": "FE7956C2C06AD4468D94A9C5C5B5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0F3C0A6F93A32DF3005759D316804701",
- "derived_salt_first_section_no_de": "E164E0DB90C83964BF555B081F770540",
- "derived_salt_first_section_third_de": "5234EAA385422577EFF7B4246763CDEC",
- "section_salt": "A2CD28D09BE393A656BDEEAB7398EB75"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "15F960D6A25F61B0FAC19DB7",
- "extended_signed_metadata_key_hmac_key": "5F6E061B18183BFDA3628945387F09136553A6091809B0E2824CB262FDDFA7AE",
- "extended_signed_section_aes_key": "45D0BFBA28D0B0600AC645A6CFA9B862",
- "extended_unsigned_metadata_key_hmac_key": "D4C700D4D7577AAC04B96C91845DD406162F63FDD5151ADE92625AD6686234ED",
- "extended_unsigned_section_aes_key": "285E5D345C1BDD1A3C5D688F9BFD6AC7",
- "extended_unsigned_section_mic_hmac_key": "6E76D5DF46064BE4D9004AB1AE9CA46444B9F2EEF0DB7D2E7A7FA38158AAD737",
- "key_seed": "24823351D760883EFD86B56C182C6A8B3CE4ED4474A9695968CD4317EAE34F2F",
- "legacy_ldt_key": "466D260991010388F149F25F73DBCB8F40EDA7B309D32AAC361D4AB4166C534BA0F6FA1AAFDF4F44C1E0CA753EFF885F61F5AC691B21DBCE4B50A04DB54A50C4",
- "legacy_metadata_iv": "BC387AC3277670320C5994B6",
- "legacy_metadata_key_hmac_key": "E1925A372F401DFEB8F0A451C7F3C1659A6DD31E7E66BE9A0855B23C2D076E12"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "192E",
- "expanded_salt": "B8F009B88F56DE38F23EC8FF5CFA9FF0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "73F36DAE91D2E6DD10CE801B1D513E50",
- "legacy_metadata_key": "9538AD7C7FE0A8099E8214A48409"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4BCD9A5124A392A3FB6610BD4B896910",
- "derived_salt_first_section_no_de": "0C07F7FD0EE529CF6DECFDD0B15FB818",
- "derived_salt_first_section_third_de": "5B487DD4C5A497D2529EF74AEDBDD902",
- "section_salt": "18146D1C6CF30C42BF4C28814BBECF83"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D2779E447226329BC38C4D94",
- "extended_signed_metadata_key_hmac_key": "1B69830D9318FD493E18C71157E88AE1DFF0A958E365D7271BAEACEA9BCB602D",
- "extended_signed_section_aes_key": "1750392460F99FD3C68EA47385F15153",
- "extended_unsigned_metadata_key_hmac_key": "83EC4B51EE3778BF5B466A72BCFB7AB24BC444E7DDA804530455A5B799F2367A",
- "extended_unsigned_section_aes_key": "D913CAF0FBA679E1970F02A49E26FBB2",
- "extended_unsigned_section_mic_hmac_key": "C411E47F3B360FBB6CEBFD97E09DFC6A1DB28CDA126ABA719879D6FCB4AC4F65",
- "key_seed": "4AE7F0DE3F419D595424546E57E8246F0E6039C9916201C1F67271B773519AB7",
- "legacy_ldt_key": "0795C6D43D57F9F459B0B9A68B28D5AA78E05BE56BF31153B84EE1D630B19F60CC0A9B64CA4C6413E1F4FFF614A673D636BA838E5A00F8B18416BA0F8A9BF528",
- "legacy_metadata_iv": "429912CE4CEA0729BB4731F0",
- "legacy_metadata_key_hmac_key": "8FC8DF53107227DA9F6B7EADA33E3E8382AA30117594BADAF7C6436EDCF2E128"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5928",
- "expanded_salt": "65F56FFB3FC0B36E43220A14D3C4FAF6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "515211338C7C638F3B769E3ECE5BD74A",
- "legacy_metadata_key": "8CD16FA6AE6EDADAA7341BDA440D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5C1AC324BB8116D319D5CCCC31017082",
- "derived_salt_first_section_no_de": "B556C9AD71E0843A1F1173FA818DB371",
- "derived_salt_first_section_third_de": "0BBAE54429AF447910C887ABE97BA297",
- "section_salt": "E051E13F02FD5587EBEBF26EE186DBD7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "06CF947314F3894D51CD544B",
- "extended_signed_metadata_key_hmac_key": "51A32A7503CADA1755D56FCA9C996DEB5FB627E386937DC322400E363D51BBDF",
- "extended_signed_section_aes_key": "4C1DB38BD2D03A9965910E92600A1C54",
- "extended_unsigned_metadata_key_hmac_key": "332A0E6969C7561674F661DF3521B43881F26561F33411A187C03E1F7D8F070F",
- "extended_unsigned_section_aes_key": "4B61327D08AEC345646314A452FC8AC3",
- "extended_unsigned_section_mic_hmac_key": "471C5F2BC129C72E6178B33E3976ECA34C6CEB7195CC72279164CD7FD6A311DD",
- "key_seed": "6544631C431B7FC2ED5A8AD5E60BF6307DA9F473812733AAE2E48FCE70E00794",
- "legacy_ldt_key": "588CEBA6D170CD8832F883B6AF7DECD1FF9B19A0EA5FB0A0876EEDD719B3C3E1CB698494739585C6D021A53361A1792E8B44FB493139689BC54238E006C86ACD",
- "legacy_metadata_iv": "2EDA0D941B70846CD6067241",
- "legacy_metadata_key_hmac_key": "FC978AD8BCD36BE7661F2414C0DE0677C13E19E1FD0526AA5537E7E585E9E198"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2040",
- "expanded_salt": "006605FB8F3537F2A85001FFFCEC63B7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "77701D4195C951F2CC1E90BC5BBB0F82",
- "legacy_metadata_key": "F8249F2B2A627F1C04C5BF4FCF70"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "11E5308B61FA36EB037D3E54F744D460",
- "derived_salt_first_section_no_de": "502671F13C60ED583524474C669D177A",
- "derived_salt_first_section_third_de": "A188503217F8D68BF004EDF1AE4CFAA7",
- "section_salt": "EA9D8EC03D944965940F8B212FE1A892"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "543C0F03A695E76EA198FCD1",
- "extended_signed_metadata_key_hmac_key": "02A2AFCB756ADAF13F8F573FF2D12C58D3AF97D98634FD0D1B5E34D36EE34CB9",
- "extended_signed_section_aes_key": "977E1EBE37B7EBA2FF66A90A1ECA9000",
- "extended_unsigned_metadata_key_hmac_key": "E524D89304AA423EE9ECBB9348F424E4C041EC6BDCB20AC127630980D9DE82E0",
- "extended_unsigned_section_aes_key": "96265E80332D653DA22097817080BB48",
- "extended_unsigned_section_mic_hmac_key": "29A93C57E47438F4369E20097498F5C0D8BF78540C64F62977711E5E87386061",
- "key_seed": "1048A33E286FA8DBC48DCFD5E7FD235EB655343EE82176F467C30EB613468124",
- "legacy_ldt_key": "2AD8AC364D8E03CA5A48742EB5E92AC4772B70187CF77241402DB51B6889BBF8772AFD4917B35B2EF5D5C05B2AE190F1C909A364D92868E5414B603312BA5E2D",
- "legacy_metadata_iv": "7EB28E8C15DBC5E47695453D",
- "legacy_metadata_key_hmac_key": "5113C9492F569C9694E529AEC95C43127931433B46796F3DE812897DBD3A1489"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DDAE",
- "expanded_salt": "6C9401BF193AA21D249D40C2DB2A8968"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E2CB9EA2F09DC10F3B461DED28299A81",
- "legacy_metadata_key": "416D542A46379752C3422EAF31EF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4021C3EB72E9A77B2774D942EA9DAFB4",
- "derived_salt_first_section_no_de": "5C0E0FCC9DA15FB6F972936D20A94086",
- "derived_salt_first_section_third_de": "F0C02C035E156312A5F1D948991E4FAA",
- "section_salt": "6C10EF386DBC9321BE3F42B124515E2F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3D49487899AFC0563529E0B0",
- "extended_signed_metadata_key_hmac_key": "20DAE947B9191CC72D04B6E39A2B463E35E7BBF9948C080B49647FF239774AA8",
- "extended_signed_section_aes_key": "7D011BFF32D4B6D32C16B7544333470E",
- "extended_unsigned_metadata_key_hmac_key": "FB65B7ECDF52F8578FB41641A84E34B6B17E9D4412380D15FD1C67778495DF46",
- "extended_unsigned_section_aes_key": "539249A4193E95218CAC31BB7DC9976C",
- "extended_unsigned_section_mic_hmac_key": "67B5739E6937E5C5A7DB4C14026621E190F7CC4BC772265BB6833D197EB8AD18",
- "key_seed": "DD60F7672071F1AFBFF7B348C8503A12F5BDC1743B903D879C8FB9E2D4F91FE7",
- "legacy_ldt_key": "8534A696E4C7DC3084CBFABA82A655F7957AA90F0A1D2ADBACEA6C9ABE582625C5693FAF3035C386017B79FB4A2AB8D11BEFE9C12E705839E8B6C756E63E8D2C",
- "legacy_metadata_iv": "11B88D164EA7F63680926E8D",
- "legacy_metadata_key_hmac_key": "14B2E6EBB89CC149298803F387321BC7C124F4F233B41933F03BD19EEC1159F8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3089",
- "expanded_salt": "4EDC20FB230DE0FF061945988F7DC759"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2ECE6264D88BA16FA5A0BDA393CF2369",
- "legacy_metadata_key": "A85B5C22A63480C9D850D0CA2606"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D6FCF043ADF8027C17361F77C1C3002A",
- "derived_salt_first_section_no_de": "D4D655E8957452CDF8472C832E1EC728",
- "derived_salt_first_section_third_de": "FD911042BDE533E3551DFA4A3843A51C",
- "section_salt": "CC3F433123AEA3EA4F6B5194DDA1E11F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ACF12E1FFD2BF838AD0491F4",
- "extended_signed_metadata_key_hmac_key": "93FB35A8C1239A3C172696EE81AD1F46B6C973FDDDA5DD9EB70AB3B23AD0E69A",
- "extended_signed_section_aes_key": "610999EE679A3CF09614AFEAC054FA49",
- "extended_unsigned_metadata_key_hmac_key": "A59EEBC39029E171CD95C0E7862B40A10A402D46342765A80A3FA3DA21C2371D",
- "extended_unsigned_section_aes_key": "26B527DA9033EF0456C43E68885A4271",
- "extended_unsigned_section_mic_hmac_key": "0F39A5602A67236A1AFCFF99341734B558863B2CA0E128D5672F9695FEC665C7",
- "key_seed": "BF9C07B98F18F5CC1417C6B1D9D5BB2D86FB7EA37C58E9BC20C71214E8D4A232",
- "legacy_ldt_key": "06E364308B6CDF1C4281E84A6C99EF252340952BB53A5C768ED59B8F9342817D8BB58C1A8F7C0A5F2ABCA8CBB6980DEFF8E4F452A758C8DD5AF087C176E6F037",
- "legacy_metadata_iv": "1F3345A98868ACF7C38CFD2A",
- "legacy_metadata_key_hmac_key": "46B9E6201B8F78D8298052DCFEDDED24101F28F51C34D1A7C06427FD7B6D86B1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1BA4",
- "expanded_salt": "3918E5F80F4F8AE1EFC3FB5D0E2ED149"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "42A872D76E347E38E33FAA86B2A589A6",
- "legacy_metadata_key": "006E2DFDC71A9C875990E192D68B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5F4F1EE74AB6DDDC77371B510E522A8B",
- "derived_salt_first_section_no_de": "0048DAB177167B086B10C9ABAD3D8F4E",
- "derived_salt_first_section_third_de": "5028C4EFBFE1FE76C2D4BA60B5D283E9",
- "section_salt": "D7E9B5C5986F1142F8FA771F8F33C582"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1B0866BA93DA919A1B3485D5",
- "extended_signed_metadata_key_hmac_key": "EB6E9A1A77CF1E8B8C5C76C2AB7B65100CE9C8E268C0187314CD8CEE1124784F",
- "extended_signed_section_aes_key": "8896822045DA956ADD30B396FA484517",
- "extended_unsigned_metadata_key_hmac_key": "EB0F49917E5277B407135F029308EA3297EBAB1821075C39FE9DDC950C6FBA34",
- "extended_unsigned_section_aes_key": "05EFC6E71A4BD0D958AB4FBDBDB72A5D",
- "extended_unsigned_section_mic_hmac_key": "D6F8824627429653F4179C06882D3C00EF44D118F1D340298C14CAA4140055F3",
- "key_seed": "4694D89072ACEB4BEF5AB3F9FA6E41C6D483AA294AAD17E677FA8F798AF1296C",
- "legacy_ldt_key": "DB95E4619D66871B13D89675D682A08D6C65BE30C295FE365D814D395BB1C0C731378525FFFDE36D40669AED566FD5AA6C93B6699A10603F3AE7C917C0373E6E",
- "legacy_metadata_iv": "18E9D8CFA8150255844690B6",
- "legacy_metadata_key_hmac_key": "8F9EBD50FF6807D9FD41D047CF04AA0E7B7B19C3A7E4BC93C927E38708D8B4DB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E4AD",
- "expanded_salt": "D1F3D5FCD2CEDBA2B63ABC458B64A088"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "13343BB596800021E811AC507D28BAE6",
- "legacy_metadata_key": "124C9D5D67779B470D7D9E2DA90E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BFBD6ECBB2F3F1CB26E80E0E4AA75611",
- "derived_salt_first_section_no_de": "F85A15B41C5291539AE27A453D228471",
- "derived_salt_first_section_third_de": "7FA9B2FE21C8B6CB1EA695EEA2DA09E9",
- "section_salt": "6190F14C0FEB95ED82F1B8518321B2F2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "086BBCF07D58A316878C7C8B",
- "extended_signed_metadata_key_hmac_key": "B194CDF67BA484238EBF47F5F860F0C4746E115F006999D8F1790B16FB24C2E3",
- "extended_signed_section_aes_key": "AE5086E34BEA33FBA04EFF28F8B8BC8A",
- "extended_unsigned_metadata_key_hmac_key": "5F92D58658F8F5D051CDFE89906A997825E373C77BA23416AC92E67DE4895851",
- "extended_unsigned_section_aes_key": "A633511AAECC061214470D8B2A829E23",
- "extended_unsigned_section_mic_hmac_key": "859EEA555BBD7953911422225EFD4BD36FA521A3A6B0CCEA62E8BC60F7EF8211",
- "key_seed": "C48F53EB106466FC846DD87CD5E1D97507A8D565951555A08DCF06B934637897",
- "legacy_ldt_key": "1A159B3C49569305FF8C1A0A4906C73360B0A4D6075914485D201FDE9C7B55240E4DB52E8D8AF6D1CE86D66148C9F8D18B08C9CD7E7764ECCF777CB2E58320EE",
- "legacy_metadata_iv": "39E5E2DFA7B184E949EE5C36",
- "legacy_metadata_key_hmac_key": "C0E9EAA255FB70C7DABCE2004FC28D519ADC74A4F2F5BCF7EE504D76E43A6FFB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D1EA",
- "expanded_salt": "7406D4CD7CCC50FDFBD1E99ED3632EDA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EBA9427F40FFBCA0D595458F045925A2",
- "legacy_metadata_key": "998F97E64C8C8169781E5D06EC88"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "90875CE70FE960C7C82D47CBDC3D925D",
- "derived_salt_first_section_no_de": "DC0439F4162ACEAB0DD1A6EF7CB4B2B2",
- "derived_salt_first_section_third_de": "02FB54DF1A26ACD718FE27C218AB4B59",
- "section_salt": "DE5CDFE412E471A1EE8A0E14D6C35C4F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6A8D09D793DEECA00142AD19",
- "extended_signed_metadata_key_hmac_key": "210C7F6293F76C6CA39F4C5EE06752ED6D3C5CD7370C4A8F7CE3050EAEFAFDEC",
- "extended_signed_section_aes_key": "6CC36DB5D6DEE5AED0FC1953EF1858B5",
- "extended_unsigned_metadata_key_hmac_key": "E6D8A9A8FDCDB248A44DF08EAC5B1E23B756DD31D26A033BCF8F6A06E6DDB7E7",
- "extended_unsigned_section_aes_key": "51E86EB53F2C1FCF5CCB5174E48A22A6",
- "extended_unsigned_section_mic_hmac_key": "BC359FB52E27D67FEB55F101E1B5AC1F0F102FEB94542FC78DE4FD064DB05438",
- "key_seed": "836274198149C2939EEA74BDF7AA737BD845CC01A88C5C4FC451AFB43E1FB1A9",
- "legacy_ldt_key": "E726D4F90C12E972C57DD5B47C809EE6C7838161DA1B5CD2AA5229565BBCE85D1C1FD0938EDA7A7F003A5FA4A5469B0664E24186985C5557AFEBA53B14533B7C",
- "legacy_metadata_iv": "6015C844416816DA08FE17F7",
- "legacy_metadata_key_hmac_key": "0EF308AFA74CF16069D890C606AF7E9A9557A704AE2CB15509AB1C72E8E1307D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8C74",
- "expanded_salt": "1986138245C79B83C611BFD178870308"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "349FBFFDFDABE33CBF53C2DFE0CDE235",
- "legacy_metadata_key": "10B762F01D85CA0EF9064E606681"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9CB20DA159E1EEFF901D0AB42FF818A4",
- "derived_salt_first_section_no_de": "D6C8C9E2D1A9ADC24F5F8D5B30E37C2A",
- "derived_salt_first_section_third_de": "3EB432648760846CD7B0BF30931B966C",
- "section_salt": "5C94D1D14CB8C4B132E353DA86D24187"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CF6947DB37DC5818A25B6C1A",
- "extended_signed_metadata_key_hmac_key": "A3F18F91AE5E6E0C3AA77651472F615AB07FC2AAD905DB49E60C7998AFB73DF2",
- "extended_signed_section_aes_key": "B35CBE36636D649823633D07F8C9C622",
- "extended_unsigned_metadata_key_hmac_key": "FAE739647D40B4826CB337628FDAE9A0A2F08B7ACE6264CC7B038D46D6B230D3",
- "extended_unsigned_section_aes_key": "C73D6C682979F5FF4432CAA4DA49285A",
- "extended_unsigned_section_mic_hmac_key": "E6586D72987579C628C5B5C4AD3FD59C4B962AADB15F037781085499B9CEB525",
- "key_seed": "B73CAC6EAA8DEB1603262B507049661C54E1CF9CBFCB3F450F9CC80EBA5B6E27",
- "legacy_ldt_key": "50BBD9DCA4D0C904888388BA5967037EF921E10D43EA3BCE1530FFC59DAF3469474DC0A6FEF8680FF155447E10DEC6593CE7D4809494D1C29D9B06E4539FB0E8",
- "legacy_metadata_iv": "F0A74A32D6E9A218345F7AE9",
- "legacy_metadata_key_hmac_key": "8C3F59D81E67E15814F7907EF7F766F75EAD361F9194A94A16A523052BDF0CC8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7CB0",
- "expanded_salt": "83F3B2F45B2857A382B8E5B6A926652B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B4110310A39E6BD68B1E7AE024978F47",
- "legacy_metadata_key": "F8AD874933E522025AE53B2243EC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "75EF461554179BF4473015240CE67C69",
- "derived_salt_first_section_no_de": "0391A588AFA15317A20F3568BE207BA2",
- "derived_salt_first_section_third_de": "0A63A9F5A3670E7E5967EBA63CF721A2",
- "section_salt": "9520E13F131D9B221A35CA5440CB1821"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FC364C0B8F27AFD1A8F2DC91",
- "extended_signed_metadata_key_hmac_key": "91158984364A5B9A7B5B0A8603A34577BFBA1E9316D77FDC505A21CB9DC1F5A1",
- "extended_signed_section_aes_key": "4EAA1E0D7DC906574B07A7E124240865",
- "extended_unsigned_metadata_key_hmac_key": "76554AA07EA5A03CC0A62F0CF97F2D8383F4B0B5BDE1B8021455055714EB328D",
- "extended_unsigned_section_aes_key": "439E5053B433EB1110E285BC52BABA0C",
- "extended_unsigned_section_mic_hmac_key": "928300EA75CF17EF91AD3A8B93F402CBFB555D5751709E35554DE27569929E85",
- "key_seed": "AEE692BF1A7FB87377D3606B4CC391A4D27B1FC212C794536F464ACD83400EDD",
- "legacy_ldt_key": "B7A3E8162EB404F1EE5364899B4214C29CD0DD97F51039D8EF65411AADC727CE08DE0754A1E00DD02D239ADE5EB986995F2751E6B3761BB642C16CC343717121",
- "legacy_metadata_iv": "C200AE9DE497289C3C247988",
- "legacy_metadata_key_hmac_key": "993B107D031763193695A37E0E359E687C29F8B9B1DEF79BCDDE59147A47DAC0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E320",
- "expanded_salt": "8BE1CD20569866BD42893342C108DCCB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CB5136F3505A6E4616ACFB729EE94385",
- "legacy_metadata_key": "B4BECA6143EDA509B64B9AD0F28D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "914E0FCD6725B84690692251E46B1A28",
- "derived_salt_first_section_no_de": "C95F257CF81098B6DB4A706C1971C142",
- "derived_salt_first_section_third_de": "E2DC1583EFCF8E18B06183BF04D127F3",
- "section_salt": "93DF255AD4C9508E7501BE8574459E9F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2C42D7C8C2A94129F593B2F5",
- "extended_signed_metadata_key_hmac_key": "D130CE66AD9DCD869652FE8A8A14417E957F9937B8B99A7AE6A87FA5FB52BA21",
- "extended_signed_section_aes_key": "B3FD7845ED06D45E17C236B0BC8FD73C",
- "extended_unsigned_metadata_key_hmac_key": "C6CD0CA99FFB62FF8F6E98E93F454C289AD15C29908EE42900C5129C883643E1",
- "extended_unsigned_section_aes_key": "F8B4CB82AD55F9DBF779B187E5733F07",
- "extended_unsigned_section_mic_hmac_key": "FFDA91FB434FACA5B4D1F5CA84999DBEB19A28001D0D7826457A37D54D1864E7",
- "key_seed": "989F441D581AFB2B9CA2F8A367EDD626D6B03BC7C5C416CC92EA0CEED39E6694",
- "legacy_ldt_key": "E2F070B875E14FAD62F717219C6AD59377016590AA9EEA457184A873147A713C7BB2B2E1E6072CF79052C7C915C014A87AB0F1BE7A622D080C5C09B16116A09E",
- "legacy_metadata_iv": "64F3D6110AE5AA7D13DAD13A",
- "legacy_metadata_key_hmac_key": "B3899AFA3DAC6777FFB8859227579E2E6905534A08F8A5C7125A0CEC86710D5B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BE5E",
- "expanded_salt": "4E7695F87A09736F441B540669D54478"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FC5C82B2687FABF140F3A28F2080DCFB",
- "legacy_metadata_key": "E96994A8D2F76BF530456E0B3491"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "604F0A349605D2D6A5819D2417545055",
- "derived_salt_first_section_no_de": "D568A4A9664E1A735B00D66A72F826E3",
- "derived_salt_first_section_third_de": "68DB408FE5B41FB777EA2AB4E0491B3D",
- "section_salt": "5A5E09A387EC1BE79B95E78B82807471"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8751C14587F7A7C0233C72BA",
- "extended_signed_metadata_key_hmac_key": "C7F6070251FCBBC71B6B0D4E7AF42BEBAA9C4E07B57DEB5B737A58FEC4CF322A",
- "extended_signed_section_aes_key": "C31C4BCFA729FA4CB58D317983713B39",
- "extended_unsigned_metadata_key_hmac_key": "363544416972C7226B115F69587A0D22668D68CEA46FF4E84783A282497DB1EE",
- "extended_unsigned_section_aes_key": "03E11E3512CC8921AB945A73A29ADFAC",
- "extended_unsigned_section_mic_hmac_key": "0B6BE9DE3C7986CA760996441FCF2F43E7975C878612DEE7E94AF64E7A284D7A",
- "key_seed": "719DFC55466E13E01D64D29ADEF68E4B186E4F7DDC97105797873D1072980648",
- "legacy_ldt_key": "C215EADD356FA1778A6E3041AE7B30800EF6AAD03D0D82A224EE6A10091A288951006C498E56B30E17114F8F274782AB4B8E833F733724D8A35A242779D1BCB1",
- "legacy_metadata_iv": "3818DEAB25EE2D8CA63F1C01",
- "legacy_metadata_key_hmac_key": "948C425942AA7688EC3CAC8DEEC3286CAA5B292D144B406CE742932E2DEB5EDB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A6FA",
- "expanded_salt": "90D9E8A2445DF5DFE96D7DCB49541792"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EE54D2BED6B9E5D421F44F9230D67459",
- "legacy_metadata_key": "5BBD807A5354E9D8335C02E069B2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "851FC3425B1AC40360B252B0E034CA1B",
- "derived_salt_first_section_no_de": "1330EED564D1433DB55DA199CA5E919B",
- "derived_salt_first_section_third_de": "1B3AF6F245D2D5A47BD00CF30BF52842",
- "section_salt": "73E01B1AEF2BF5AAF34AD6CE9B50A59D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8B9B58DD6FDE856090AAFA46",
- "extended_signed_metadata_key_hmac_key": "5894ADCA6141FC7B99688FFB79FE668F1E6933980BDB42545CBD94208765311D",
- "extended_signed_section_aes_key": "E6F63BEE884C93374B30B49DA2407FDB",
- "extended_unsigned_metadata_key_hmac_key": "A7E55228683839438BC211F2B1F66463694879AA7664B51A1F2E26D8FC7740AA",
- "extended_unsigned_section_aes_key": "069DF1047C10C556D3C07F7E3D71D0AA",
- "extended_unsigned_section_mic_hmac_key": "7429D3558FBE43CBB2A5C34BBECDEA03D25E96D3726083CAD1826DDDC0656F9F",
- "key_seed": "C66D22C39FEFB558CA653968D98B549AEDD2D399F3D23666467EBBE38F6880DF",
- "legacy_ldt_key": "C12E87410B617A95B217F416161822548B4F7DCFFD0601AC164E360F649F1047742D9A1F396D8D4E1175E4A808FACF797A36D2746214C491B9E448E8FA6B8D72",
- "legacy_metadata_iv": "311432B8FA2DC85503CA9200",
- "legacy_metadata_key_hmac_key": "7ACE7D91A48AC0378DAFC202826841B854BD65FA6FBA41CCF7133168D92444B2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1629",
- "expanded_salt": "2BD1C1BEE6B8F17CB4C160463956E105"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C0F909C385C883036B428DFB97B4887A",
- "legacy_metadata_key": "3330599739BB66760BF93AC4A74B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "17F31FB1A13FF2A61658CD64B2BB6C77",
- "derived_salt_first_section_no_de": "C8B3ADF9D59074710F79AD3B9A85C3A7",
- "derived_salt_first_section_third_de": "242B5929F66E04E6E87F67D99991C564",
- "section_salt": "F46D321B150BABF90817F6D3636768D4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AEF13E9B28E6EDF0EB1E9C16",
- "extended_signed_metadata_key_hmac_key": "985383D2E14210022B464EE6FB499DA2D7FFF64ADE75782A546EC01637E62D1D",
- "extended_signed_section_aes_key": "5CC81C3624D07D78C79D8CA4CF4EE149",
- "extended_unsigned_metadata_key_hmac_key": "9329A6DE7F3608AA18314083EABF351A83F6B9B0EC8AEFCFE5181683BF6E5247",
- "extended_unsigned_section_aes_key": "050C3764CEDE6733F1E9F08CFB4884E4",
- "extended_unsigned_section_mic_hmac_key": "61333FE5AFDE2C2318791D77EBEB0E6179F4033EB5AEF26BE505E7B0D530EF93",
- "key_seed": "49E2B12903D1E5508EA4DB0D149DCB47674F939B9ACC6B595B91C274222FF745",
- "legacy_ldt_key": "4EC5253EE82C1D94F0DD2CD1D2BD5D388F8E86BE92B8EEFD2599683699A2B980FD4698AA7D5C3D14F484F20DFE28EEDEC509C388AB4B19ACFEEAA635A949F622",
- "legacy_metadata_iv": "3EE3491FDC7D11382A931F84",
- "legacy_metadata_key_hmac_key": "F0B3A7D806AECAAF3D1A13286D80D7681A8DAF0DB2D4BE2DAA88131C99A75B7C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B876",
- "expanded_salt": "18117AD98C7EC3D918072727832C08A0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8B7261FA3BFC6A2B4FC0EB327FFFB0A6",
- "legacy_metadata_key": "268E6402B42BC588215FEF297E0B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A363B4BE09BDB93D662EE7B1EC3A87B3",
- "derived_salt_first_section_no_de": "9ED4F4F76B877B72CDCF69D155C54937",
- "derived_salt_first_section_third_de": "9723AD88E78FAA9EF4AF22E22B038F58",
- "section_salt": "2BA4BC4F72C8ECCF40C60FFB762C68D5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EED4B0EEC85F4B64280EDEE5",
- "extended_signed_metadata_key_hmac_key": "B440975D43C180EFD44973F37B82D5987414F6FAADE8B17DC743AF07FA147D2F",
- "extended_signed_section_aes_key": "1AD1606DB22F8FDAF525E0EE6823F695",
- "extended_unsigned_metadata_key_hmac_key": "FF8564ABAE96BC8A723BC07C2686FAE0E89A723A86906E48F8F15F41C080BD20",
- "extended_unsigned_section_aes_key": "7346567957F88ADC8C1D68D76743DDFF",
- "extended_unsigned_section_mic_hmac_key": "38C893EEB80A2F54A81230B66E3FCD6AEC2CA4EC22A165A5ED01BFC589DEEC03",
- "key_seed": "E5D65A004C6ADFB28635C6D7CBBACAAF3E8CD007E3C3E68A3E9CBDE1DA206170",
- "legacy_ldt_key": "4710498B78D51AAA0E022E3523489639F582FB0F19D8E679D37887B8ABCC926D8F72CD8CC9C93FD10236927E999F8C86A5D1220D5397109C96FA79215D95B5EC",
- "legacy_metadata_iv": "28574EF03CF83A4C1C447F86",
- "legacy_metadata_key_hmac_key": "C2281F3B0D48BC4ACE29543BC2ECB549275DAD32C89DC7452E59DEB82954635B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5126",
- "expanded_salt": "2B8AFA2FD1DDFF3A0BCD60FFC994F476"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6953ABD464910558DA47CAE121D5F1AD",
- "legacy_metadata_key": "EE60C491B63077A9D9319A85A3CE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8BAE6C7AEE693D2AFEBD43ADA1E0940D",
- "derived_salt_first_section_no_de": "2AA79878442792FA2919B5602D17734C",
- "derived_salt_first_section_third_de": "31012D4652572F61AA1BF42A5F1A74DA",
- "section_salt": "EB6CD681EE1AFDD8E39F6D2AA8563F04"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "85320C4DD4DC1C8357241364",
- "extended_signed_metadata_key_hmac_key": "FE044F6FE9EEA773C9DC9E4A51848988AEEE7A19E1DB00B852A3FACEA722EFBE",
- "extended_signed_section_aes_key": "2EBB27A70088E591BFBA23C88F3FC2AE",
- "extended_unsigned_metadata_key_hmac_key": "C1589744DBCC6FD44121006DBC02911F0D55A8127FD00E292ED0C40005273098",
- "extended_unsigned_section_aes_key": "475DC0CE946D03C02E4E9070C4303E65",
- "extended_unsigned_section_mic_hmac_key": "C889F05AC89363B833AAD38DB1AD491BDC52A23DABAF887A9CFA0207F260F8C3",
- "key_seed": "C1C969BE62E82D2858C2E1E9A2D57F48826882D93E0E42F046E008ABC0CCADFD",
- "legacy_ldt_key": "48D19129E8D0D79055363F7F86424D9E1D4C8D63C8E9DB228E6E7D5A3835DFBBA0619036D2ED4BAE9244C9CE0D86CAC2F05BA14BD66D6270E92342DBB7271D12",
- "legacy_metadata_iv": "F1449A49D6A0BF9F1B932A5D",
- "legacy_metadata_key_hmac_key": "F0E98938069C9DF6DC06068C67F85F52A57BD9229E38EE415DE82BC4602B311B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "72CF",
- "expanded_salt": "DDEF5EC476F6E7366EF2C3CD400616C1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CF9790F8A9CD37870632A42B2583AD7B",
- "legacy_metadata_key": "1390B5D30CA0EDB76C8FCC2361AD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D30D1D523D8036BECDEB960CD96E51A1",
- "derived_salt_first_section_no_de": "DD153F85900181B118D7A58FB4C8A237",
- "derived_salt_first_section_third_de": "7C7E645C19F79C63259A34B8AF6FF594",
- "section_salt": "DEA5997195147DFBA62DC1BBC2B1C635"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "077CCDA9CFF774203EE54DAC",
- "extended_signed_metadata_key_hmac_key": "39D9EDC93A298A394C6A4D620A60577C9A5893E0ECA3B88143867B9D7D886CAA",
- "extended_signed_section_aes_key": "81AEA1395D1D8295FA213710390BB55C",
- "extended_unsigned_metadata_key_hmac_key": "FAF8D07A114DEDFE7BA11FE88F670810C52040DD6EBC2DAFC1250A9CB9E07A4E",
- "extended_unsigned_section_aes_key": "0A9DC5B5C9D5D28D06022BA073BB633D",
- "extended_unsigned_section_mic_hmac_key": "18A2E0C71133C8022989F41157AB9D3738B06388CA295CAB669B4C0EC69A2648",
- "key_seed": "9F5C506809346F6134B0FF31AB0CEF054506B087043E52FAD03F52F22CBC7112",
- "legacy_ldt_key": "CBE5B60999FF3E87537ABC615D11D9BDB62C1967254E98D2782A93B9774D016C0702B5223102DB4BDEEDEB0A0B529DA6182B1AAA880D3D3ED41591F8B860C09E",
- "legacy_metadata_iv": "8C88C8691E042CEBA0222321",
- "legacy_metadata_key_hmac_key": "8CF893B6FF90FA26DF7753F99F61EA111C3C932DCC22F02A56D26B825036A268"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FA44",
- "expanded_salt": "7F53DE575BD9F674D06F0152289BF71C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "64B06EF2715416FE1D120FB914755015",
- "legacy_metadata_key": "51378E80AB4C0FB1918F9AA41F3C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "863AFA41D1076842DD86BD72F843E19A",
- "derived_salt_first_section_no_de": "2EB79542613A4F5AE64B5DDA12EC6977",
- "derived_salt_first_section_third_de": "CAC47A2782C23CD838B2D338AC47A50F",
- "section_salt": "766342D2041F78979B6387C792B2437B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7C198FD7CBFAA81065702BD9",
- "extended_signed_metadata_key_hmac_key": "E9E27EB0563F47A5D588E35832C77B857E3BEC8BDF28A92FC7D20F730DBDEF25",
- "extended_signed_section_aes_key": "66A38411919D8AC9B72BDECC24CCC6CE",
- "extended_unsigned_metadata_key_hmac_key": "B1F4B880B7197622932BDE88131957A749C616B96342AC31688CC5C5B5B23E2D",
- "extended_unsigned_section_aes_key": "1B1A1D4DBD759E7FE8E2C94015F746F1",
- "extended_unsigned_section_mic_hmac_key": "B5B1FB46C2953FC1F719B7796BF30BB69F688C11031AF29A7A8755455A3F376B",
- "key_seed": "A0AC82197874D2D894DA99035C0C931A196E3C91CD1744212424DB3A9AA3A59D",
- "legacy_ldt_key": "B6D0DB515920A727D165A9A0DE458CCD743BD699EDD7C62496473A797682C668A79C72BC4A4320E7C3B6950CA239BF2BF017D8C4DC587DE5C149F97E22D73B68",
- "legacy_metadata_iv": "786F10DBC4E04F2462837B34",
- "legacy_metadata_key_hmac_key": "637054DCC8BB0C0418CFF18D001DC28F956CC218704F371C35D1A61FB821709C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "30A6",
- "expanded_salt": "0DD06FC6D1558BE0364EE2BA84541560"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FA046B8315FCBE878CE58534423BF4E9",
- "legacy_metadata_key": "550E163EF818DF08820D0FB7F2DE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F2EA6DE4B8A2A1A47FE28CF8E940D73D",
- "derived_salt_first_section_no_de": "6D7500DF478B26CF96B9CC3E277F5A7C",
- "derived_salt_first_section_third_de": "51A3FF0F01232777B3166AD0D21C6AAC",
- "section_salt": "C9EDB8EC67F3810C5A9529620D1458A0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "73A6C7F974AE43B63FEE223B",
- "extended_signed_metadata_key_hmac_key": "8DD249D3B34FEFE85B4D7DA6BDE1571DF011354B8219A8BE86C7870A6A8DE978",
- "extended_signed_section_aes_key": "D101A8E64FB2D66005EF9B6EA42933D1",
- "extended_unsigned_metadata_key_hmac_key": "80FCAF7BACFD28FAA9CBC82A95D1F95D88A5AD789DB1FB1167B5F036CEA11BDD",
- "extended_unsigned_section_aes_key": "E7673D90678B9A31A4AF213DADF44A2D",
- "extended_unsigned_section_mic_hmac_key": "4F91C512EF86B6B1CDE0167B0E306C8852C85A3B0EE3A100681CE51E91D36795",
- "key_seed": "46DA197BE99484F77A302CC95A16EBF1969C01FCE1B5A48FFB28C70D4FA37B9F",
- "legacy_ldt_key": "B8AB5D65A02A7FB6B01FC0F75D6B1FF127186ED6E84AB82320DD154574F83BAD37D756683D7EFAA34AA185A7736D34CD417D016F2AF61EA1A32634D93A2179CC",
- "legacy_metadata_iv": "AF161E7597357C9CEE171578",
- "legacy_metadata_key_hmac_key": "56AD664B5C6A3D5BEF7D1F6C4201D66D7EBD530E2A992BAB78BC580778A48D0F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9A7F",
- "expanded_salt": "CC6AED983EC48351B45F85D8A73C306C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0DB19A13BFD944CB468629D79B4F6283",
- "legacy_metadata_key": "6C6049B80FD4F9A28ACAAC5B7A37"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9DEF458DD6CAC125D874BC0C2AF5F56F",
- "derived_salt_first_section_no_de": "5CCB03BD45DAF3A15401104E2261CB29",
- "derived_salt_first_section_third_de": "638F61A4301EA839E18F9A7672C2A19E",
- "section_salt": "AE19783EE213382F5FD209BBD8A49429"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4BB1E6D13E8A5A21E9776E4B",
- "extended_signed_metadata_key_hmac_key": "02EF059B21B4AC14F060D5FBBC0E70127C777395F8EE48124E890858575DFB95",
- "extended_signed_section_aes_key": "708234C297A6289DEEE3CD29EA420557",
- "extended_unsigned_metadata_key_hmac_key": "75DABA6F07844B7F38E739EB7720A81015D8F35B8AAD1657ED7CF67F62B5E494",
- "extended_unsigned_section_aes_key": "82ED6607B4E0A43C497210D9EA652482",
- "extended_unsigned_section_mic_hmac_key": "B14B5EDFB00826B1737F186412DF463145C281C6E5A7C7E39383F38955AF539E",
- "key_seed": "C7A23CF891CBC16A069E0B862EA928CA4461C9E190DAA11961EF8383B48EF79F",
- "legacy_ldt_key": "E706BB7AE9EAFC9893DA4978AB0C4166D73A468B9A989712D01AA152238143798D191C28E014CB332A778F2D171EDC6C3E215E4FE3165B44FCB0986A07E5644B",
- "legacy_metadata_iv": "431476ABC1A666D307268EBE",
- "legacy_metadata_key_hmac_key": "2FB403E2FBBB1AD77893B93B19EEFDB25F0B8C1A2AE8D5C5BED443FE5CF6D09D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "43B0",
- "expanded_salt": "75CBC89D483F5E5A6F2ABA31055E3DFA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EF047A199777A2B3F0BFB95807423BA0",
- "legacy_metadata_key": "0FA3E4E4673723FD0A82FC6F46AD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "862412717CA26CE43767868CEBED1228",
- "derived_salt_first_section_no_de": "6DD6009F53B489CC558B7A682976C19E",
- "derived_salt_first_section_third_de": "D46D16DBA65A7BF375A68EECF33BBBB3",
- "section_salt": "FA831DCAEA0F98329E52E1916751AD8A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "62234EECDE80F27EA557FD81",
- "extended_signed_metadata_key_hmac_key": "F41EA28227BDBF436E3061B28E8ABF5824E110AE5602DBF23FC47EC10C667FA7",
- "extended_signed_section_aes_key": "3B3E1DB970DB6D2A6603A3D6B1DA1486",
- "extended_unsigned_metadata_key_hmac_key": "1651833D6A20B0BE3CD67F80ED44F7D71A952D0EBF4D4957477A8397A07544A3",
- "extended_unsigned_section_aes_key": "8227F97D87AECF39AB1297A574EDD2F6",
- "extended_unsigned_section_mic_hmac_key": "FCEA04AECA33149E634F82BABB9AF082A8F6AE18B952CD331580A29439F53E77",
- "key_seed": "2DD514605A69BDF837882957F69E3285863F17097F671415D2D026939BCAB142",
- "legacy_ldt_key": "370D03D51376064981799FD80DB7E65658B05B030E87C92A81428BC98ECD0E057AB7B13A64D6EE71E1060E5FCC1B6DC7141D00471591C6386EEB3BFD5CDFACB2",
- "legacy_metadata_iv": "AC68308AE1D1A5C37A1E7C1C",
- "legacy_metadata_key_hmac_key": "3085556CE19E41AF69285B0EB20D6DCD8232222ADF4924DC76B1A7D33DCAD2DB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C2D4",
- "expanded_salt": "98C79169C86359773A21562709ED5D3D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "57109596E983C200F37DA207A2491542",
- "legacy_metadata_key": "4AECAEA239E73FE980773FDD3416"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "69A9D4B9748B2F5B8D5E6EE423FD1DAD",
- "derived_salt_first_section_no_de": "47C3B3C47F01DE93EBE890E0261D3AEE",
- "derived_salt_first_section_third_de": "545E02813A3D57376A1D0360E5DCAB07",
- "section_salt": "BFAB3C8BCC8E1A9CFF2228844D7CBBB9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F6DAA2E7A8F204EA9685CC75",
- "extended_signed_metadata_key_hmac_key": "AB10E941860A23935DAF4C3B04C92AE2DD535492E6F682F0EE27DE704A0D56F4",
- "extended_signed_section_aes_key": "4DB564C4C242DBDAA5B56E0175D61F70",
- "extended_unsigned_metadata_key_hmac_key": "93BC59B6EB68F5D7ACE6143D4674761070EC647C498F59194CEB9AE6A8D42C74",
- "extended_unsigned_section_aes_key": "C65BDD974813B5A4B4E35A49B65CFDDB",
- "extended_unsigned_section_mic_hmac_key": "927AB1F57C2305486C2B7FB102A46B9C3D84E6EC992C3BF08485276F1E03E164",
- "key_seed": "B90AFEEBD86A04E0D61EFDBBFD22EEF9C9BCE4852B7AD1D23095D31005B0C810",
- "legacy_ldt_key": "E39F9B15ABF8C5832FFD81BE3B93EDB7AECD1E6CDAB66ABD0F1123572E3E25F76C17DE473203FBC7E49EAE62AD269DC0496A19BFF999027ABC9DEC694C0D1AD4",
- "legacy_metadata_iv": "7EF4258E8A94B2FC77B0D229",
- "legacy_metadata_key_hmac_key": "B40B815E1016B2BEE79F4C372C8D56D76FDEEBDFC4CFD01BD087258EF9F07798"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B46C",
- "expanded_salt": "856C0C17502787879D5C3CDA5217E45E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C274798F065A70CF9FD9DB37CAAAFBF7",
- "legacy_metadata_key": "F3AF7412727F97F0FDD876AD7237"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C54E0E6B23A4C8407198A6499F6DB321",
- "derived_salt_first_section_no_de": "3D66F7A4BD866715A23AFDBD4F6F39AA",
- "derived_salt_first_section_third_de": "EBF290959C21438A969ADD9D7ECFA157",
- "section_salt": "F51996FF986E82D4812A8115365A1F72"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D7DC7D30B0A423C8A1AA235D",
- "extended_signed_metadata_key_hmac_key": "E86CFD5763331962C80A8B6485712722CB6AFE91F0BB877089DF3E7BC16EEAEA",
- "extended_signed_section_aes_key": "36A06578550A8FEB6589F0F5C20DDBCB",
- "extended_unsigned_metadata_key_hmac_key": "3482D390C6E091A3C6205D8764135CF9235269AA6C998B9BC2640CFA69A6F6C3",
- "extended_unsigned_section_aes_key": "50851DE1AD2A74E5BAE24E0D764CAD9C",
- "extended_unsigned_section_mic_hmac_key": "7D95E67704886DE8C39F7750775972B4E7249D41AE813CDDD65384AE129B58DF",
- "key_seed": "A78DAB5FF5F6CCE7A1FF2D66E01F759342835A84405574BEB27878668C9FFC47",
- "legacy_ldt_key": "F5BD6DB58315CC2ACBDFDA67BE18FE48F944615B232ACA4948A40AB29561639C8CB187BFFE1DEB6F9E9349B49780895BBB44CABAA295DA941BDC49F17B5F163E",
- "legacy_metadata_iv": "6FDB9F60D6EC543D8655138A",
- "legacy_metadata_key_hmac_key": "F8CA23B39944027A6DC0DF2639348299B586315E30621A0E55AAEDD3945B3182"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "633C",
- "expanded_salt": "494325D708AB5B2917A831A408FCD6AA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A2673FAC78033216DC34F33B450BE2D0",
- "legacy_metadata_key": "8AB7A159596779E694DA62A08E8A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BC37CCCF35C85FF452101C037C72A7CD",
- "derived_salt_first_section_no_de": "61044BC9118FCEA8B2C8253601567746",
- "derived_salt_first_section_third_de": "E9BC91844876AF18B3E25AC58703263C",
- "section_salt": "D154522174A780FF0E279E6B122D2A85"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "90B2621A61B3BD43936E228F",
- "extended_signed_metadata_key_hmac_key": "DA7F6D216981113F72E7151983B9A3235ADBE49E3744847842F0AC8CBACB1374",
- "extended_signed_section_aes_key": "D7B279392CAC9F0DD6921AE059E3BA82",
- "extended_unsigned_metadata_key_hmac_key": "2A3A9724F1897585AD70D6075B86F738F0081D764014CA07D74E5F288DB4C033",
- "extended_unsigned_section_aes_key": "9B5BE9D0D99BE150A8A78D9F0059005A",
- "extended_unsigned_section_mic_hmac_key": "000DF86CB3466794486DE5298181C59A9B470A514CEC5F811916FB2E9E36E87D",
- "key_seed": "E353287A6B6B8104E272241210449BA91202558CE8802464D167254EAC89958F",
- "legacy_ldt_key": "2B068CE5B56301F2EC65D685A6EC2F7485C77AB471B6E0EEC1C962206BBCD05EAE5A2EFA4ADCC42F5D77871A3103D70A1446F40FA79EF268A06983D77F47419B",
- "legacy_metadata_iv": "98463C219540E0F1A9D03204",
- "legacy_metadata_key_hmac_key": "20B7C6213E5D98CB6BB03350F7C4759BDBB83CC65C20248D5244461BCCE75D36"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BADA",
- "expanded_salt": "340F9A49FD164BEDA4CE8507DA614272"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9263E48FDFAD9C4B455D24C0ADBD3C77",
- "legacy_metadata_key": "F36F2B58B6BCC6A94E61BED6991A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "390C4E49F1B2A75E77FDBB0E42CC0DB6",
- "derived_salt_first_section_no_de": "0D7417024F3C7834582EB0FECAA51C2A",
- "derived_salt_first_section_third_de": "832CC04CF30C352D0A273A24E5726CE3",
- "section_salt": "DF03D470D868C862A0E3617935AEB06A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "18A5B654E8B87CCE3BA80FDA",
- "extended_signed_metadata_key_hmac_key": "208A71F7EBC9F2AE8A78A3031DBFB82BEE13D6CEC3E3A10595FD713155763C16",
- "extended_signed_section_aes_key": "43D8EC7374BB7F7322DB40E164971719",
- "extended_unsigned_metadata_key_hmac_key": "4650579F3ECB9B925BA908E0B46EC3EDADFA41BC7DFB57DC10E696245E170CAA",
- "extended_unsigned_section_aes_key": "72580BD174C77FF4AF6126791D36CFD9",
- "extended_unsigned_section_mic_hmac_key": "C297685B07A20087F25C4FB37C37428E996910D2E256E2F11DD6D2D7C3F7B205",
- "key_seed": "89E8BAD429140D9164027F0B5297BA530A699BEA1B88985F34177604FC0DA29F",
- "legacy_ldt_key": "7BBC3BBFC94C3AC69C124CB06E36D5C9A4927A82A885069023693500F49E02999A245674D243AAF6DCEFA070F17B165A6C1AD879EA204D6855CD714E9FC0F6F1",
- "legacy_metadata_iv": "32C7F23A28C1527DBF780726",
- "legacy_metadata_key_hmac_key": "FB2BC87C8162982F70905B77D3AE453141C63EAA6C8CE55DB7B6C241B265419A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "58B2",
- "expanded_salt": "4EB0FA57E827E1DC7300800876330E96"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1F6FAAA9B494198B343BF56215B947B2",
- "legacy_metadata_key": "69E33EB162C3488E8E44229C2178"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C1AFC0187D0D16783BEC40A05CE5B4F7",
- "derived_salt_first_section_no_de": "6098FA0F264816D1C4EE9EBAA56FA2AA",
- "derived_salt_first_section_third_de": "659F9323D093CFC14C25BFEEBCFD830A",
- "section_salt": "198B0FBA32987825821F3CAB6EE3CA54"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FCAE8E0085D7B7C07C155833",
- "extended_signed_metadata_key_hmac_key": "4DDB8D4486817A78AFFD736FAD3A7375A77964EBD2B9396CD608A5E7FD89062C",
- "extended_signed_section_aes_key": "DC590B350F6052C018B404687C617FB7",
- "extended_unsigned_metadata_key_hmac_key": "1883C1F7CDF17C1068D8D83CE5E3747274498508F0C8DD3EA7FE0CF3F2756A4A",
- "extended_unsigned_section_aes_key": "CABB17FF9E58FA042ACA3A7B54063096",
- "extended_unsigned_section_mic_hmac_key": "316E5FB7C67E92A611E584AD004910E2978E6101C3E0DB28AA32CD82C64D5AA3",
- "key_seed": "FE1A07747B667C44A275E8E1EADE806E0CCFF6B2DF03417E7E87AC56B9C8468E",
- "legacy_ldt_key": "B69562D73403C61FBB46C4A2BF418CA880E1C9C16F472C764B7882D1F9596EDADE0B3779E174DF2BBA6DEAF9CE0FE967D1A4A36D0207719E12625A4CB78FA3B6",
- "legacy_metadata_iv": "2D009555078027B2B6D180C8",
- "legacy_metadata_key_hmac_key": "9C1E9714854A0EA7FA9B5AF229F0D18D78D8A46696BCB9AEC7A3C188F28BF877"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BE49",
- "expanded_salt": "E7AEC5CC908529129EC97E97EB626634"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7FFE7185539BA82C5A80CC1B5BA407E6",
- "legacy_metadata_key": "014B5460C3F8C34E69F16480542E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0370CB555C350D011FD441D206A686F9",
- "derived_salt_first_section_no_de": "95BBFE3127A18CB6AA2D29E384D79639",
- "derived_salt_first_section_third_de": "CADA534D547EF25D8D03E2747D83CA2F",
- "section_salt": "98C74AC779A80CD9CF0335A18FFE53A4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "043FC45D7F4054BD5F228277",
- "extended_signed_metadata_key_hmac_key": "735453A75528AE7DF8EE9780ABD55A56A0FB026F04AFEA2692B8A74EF8436E4A",
- "extended_signed_section_aes_key": "3770E2763D27707656EDA9DBAFF9FBAB",
- "extended_unsigned_metadata_key_hmac_key": "B3C29573E15DFCE3658FD0CAD224B796CE7538819A3CAAC1B383E37E39FFEDB9",
- "extended_unsigned_section_aes_key": "A40D2DCB5F5712EC0E2C6C9D8F7CBACB",
- "extended_unsigned_section_mic_hmac_key": "9B7527EDFFF191337D89D876BF6DDDBA0DE058F01281A253733F7E22A43E3E5F",
- "key_seed": "05733212C2B84CCDAB0DFA3317DC31C848215CEE2DB0B3A919FF588DC40CD900",
- "legacy_ldt_key": "3A0608136AA98EA2283398FEDF7166C14388B0C47C5F65F2488C61FD8A860FDF344578132C97C7A5BD0BB2A02887F497F67A8139294455B8B87937F4C57231B1",
- "legacy_metadata_iv": "5B672820425C450C0EA00A50",
- "legacy_metadata_key_hmac_key": "ADE34070D960ACF3643B20DEFD379BA347BC1CCC7FB4990448FBA12EB7ADAE10"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4306",
- "expanded_salt": "BFC177C289C97EB7B14583A0250A20F7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "744FB6119209E8D831FF752F8034FAE2",
- "legacy_metadata_key": "1F8BD7BC99EB1FF5F00AD333F5DB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1B3B455175721C59B8F526958A7D1C77",
- "derived_salt_first_section_no_de": "B2FD002645A63B34D4E79DFB55813C4F",
- "derived_salt_first_section_third_de": "1E4B95AD61CAEE9C71DED4967A8BA0F5",
- "section_salt": "F8D8D9B79E58A86962FF6E8780EC55CB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "750CF6BD40746FDFA2A073D4",
- "extended_signed_metadata_key_hmac_key": "63F504B926D95EDBEEF940FB53AB1334EDE9C8D14DE6AC1D21818676A6430F42",
- "extended_signed_section_aes_key": "2D72A936FF333CA55E5692F311BB2464",
- "extended_unsigned_metadata_key_hmac_key": "CE3115957899F84A1A6A43442900B20D3C6764DA3962A452035B5611CA913926",
- "extended_unsigned_section_aes_key": "012B148495753D40EC92557A8F81DD1F",
- "extended_unsigned_section_mic_hmac_key": "634A007E36B26AB90BEFDE435B229B5D348BD3A244E29B7B2423B4B97379D1AF",
- "key_seed": "AA0B8F6E36A268A714BACACFE6EDDD8A8A939589449E47D7377AB048553898C7",
- "legacy_ldt_key": "D224B6C1367840083D85BDCCF71A7B2D4F70FB3A9A8BCD506ECEA188392F173E89EBBCF1A79B62C80B367CEA4C373FF59FB8E16A4310440E6411918302333775",
- "legacy_metadata_iv": "573C14B3B9E3006B9868C7D0",
- "legacy_metadata_key_hmac_key": "B63EC17880537318258E523E5A7236FC51B5501DE1B0C969D03AFC4835233E09"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ECCC",
- "expanded_salt": "F019D7A687CEA0A118D35BA4E23A5E51"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8195091124EC51DCE96CCC9BBA73BE10",
- "legacy_metadata_key": "6843CB5CBBD664E1725FACF59672"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "03A414D10F14F7FBC3BA5A332CAF8C38",
- "derived_salt_first_section_no_de": "8EBC708AD4B7A762DC9BE00AE1587840",
- "derived_salt_first_section_third_de": "7B8292B3436DCB7338B91B8C6907AD89",
- "section_salt": "A16F15FBE8012DC04AA2377C408CB2CB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "90246A8F570A234FC8FAFB6D",
- "extended_signed_metadata_key_hmac_key": "4113B9526BC6F4273D0DF57803CD31CFD584E0A22C47ED81E7314237E756D04E",
- "extended_signed_section_aes_key": "8438ED38FEC9D5D64DEEE4D16396B8F1",
- "extended_unsigned_metadata_key_hmac_key": "040AD00CE2F58AF30EC490314C48E08FB6FC6FD219921CEBDDE4BF1082449269",
- "extended_unsigned_section_aes_key": "D38989EE960BA2AC1E88274709CB51E5",
- "extended_unsigned_section_mic_hmac_key": "ACAD448C85013E6AEEC73C5C57F88F33E3739AEB6C01020CE91CBCF1FCD81F52",
- "key_seed": "576CCF501B3C837ECE4236734DA5132BDAD20F0BF208E862C8DF34019989F7FB",
- "legacy_ldt_key": "838B30BE098E8822CA57E931DA736C3A4DC72C6F2990354C4B42C10D719B9BDE8322C90D0B566D15C7B56870DC34348A19F78012CDED69A70469BD35075674F7",
- "legacy_metadata_iv": "7A7C93CA45BF1919126402EC",
- "legacy_metadata_key_hmac_key": "EDCED315DD883941ED6931A67EFC381CC394ABA916E88FF02DA5BAC47D61F519"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8E68",
- "expanded_salt": "D91F8F4FB375A1CF77C859E945A5E7E9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5D9F1241F805357AA7E49F393B0B393D",
- "legacy_metadata_key": "EEDE3EDB9DE73F43D7426C756633"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "54C47377924D4B59219233B9D271B281",
- "derived_salt_first_section_no_de": "5E98FFB8D7EA34A7A297631DAEFAFA37",
- "derived_salt_first_section_third_de": "2364EB8F2459DD2540189359FC120336",
- "section_salt": "AEBE172BE923729BC624A91E04855B93"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EB3C386EDE7AB9D80956907A",
- "extended_signed_metadata_key_hmac_key": "5C85F3C4003E058A725F02FCCB5867ACC70A637DEC739F442A63554382A4C737",
- "extended_signed_section_aes_key": "ADF5655739C09675AEFAF1F5DD0104B7",
- "extended_unsigned_metadata_key_hmac_key": "015C8CACC5B34FBD72C5F76BDBC1A07AB60952FB8DEFB39E87C4227143DED046",
- "extended_unsigned_section_aes_key": "4D9FDFC29913CA31785C7DB40D597CA8",
- "extended_unsigned_section_mic_hmac_key": "B2AD29373B6DB430E75A02205F9B3FC82D95F7841E06CFAFEF63439F2E5A9847",
- "key_seed": "996F1BB28F9CA3BCBA3D39D255A18946674FCD2AF863013B8871B10FF6498887",
- "legacy_ldt_key": "9D586B0854F403EDED4C873D81AB1346202DAA70891C8B2ACC2A2A75044F792880FD5DC4B28F86A199229B5734644E85645734DF2FBD90A53B816952357FFB7A",
- "legacy_metadata_iv": "E71FF79FB3654E617AEDB314",
- "legacy_metadata_key_hmac_key": "7DB7976965D74FF72352EE13790D58331996778E7696F56B7F7C535558BCF0ED"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8B63",
- "expanded_salt": "2BFE7D3D427A5F8665693CA4F8580EB6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "72000767BE1AA79CB9F630564E7672CE",
- "legacy_metadata_key": "3F7286FA7378D90431A161D9F9FA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3B5B3E89C3EDD385035BD593D1C1D259",
- "derived_salt_first_section_no_de": "5AB4E1DF9475A7CFC63F79CEE2B8CC6B",
- "derived_salt_first_section_third_de": "FAFC17134B2ABE062A083A1DE090B9DA",
- "section_salt": "70831F5E14EECDAD8D92733CF5F4FE68"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "34F974177DC97D3554E0D8B9",
- "extended_signed_metadata_key_hmac_key": "01CAEC892D66C2E777CBCEFCA92DF8273F553495FCF87B57962F94623D19B758",
- "extended_signed_section_aes_key": "9D2B486C1638AB5280648D3CD7B317D9",
- "extended_unsigned_metadata_key_hmac_key": "C7CC8444840A7E076A9844802E15FC3C38218C2A38B8AB834DA4402AC262D464",
- "extended_unsigned_section_aes_key": "B6F83BF808C7BA79D4646FE050C424B8",
- "extended_unsigned_section_mic_hmac_key": "48F41113BF70CD841F6DC2402C42AB8035400F202E2B6CFA44B4E560AA7E01DE",
- "key_seed": "543BB908743719FBC741F96498D72D2FE14A7ECBE4C133D2EB334FFD7C8911BE",
- "legacy_ldt_key": "1D8B5A7057689245099934E1B7976A1FD03DFDDF29B7D8E602C73983D8E455573A4A387D9232D2732B0F6D8F28BD27356CE31053F46535A456DEA97313E2A171",
- "legacy_metadata_iv": "2B9E97E5207EFB2562126137",
- "legacy_metadata_key_hmac_key": "91F689E917A732E6D3710694DDB8E9CA1AF099087516B1DA58245A72DA1046F4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CE88",
- "expanded_salt": "5C45615C22BB8F853C197C9A846A24A9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "89FDB284A31F6C8B16473F0790CC0433",
- "legacy_metadata_key": "17D04155C532B0DD1749D1858706"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4B2F9CD359DF4297BF068E5571DFA784",
- "derived_salt_first_section_no_de": "65F06F4CF72FFF0CC9F3CBE9BC095B7D",
- "derived_salt_first_section_third_de": "E9EBED3D52DCE91F1FCBD274DAC06EDE",
- "section_salt": "0DABAB5BE937C3AA1EB1506CBB1D9400"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EFFEABE84487E6C8BA30C502",
- "extended_signed_metadata_key_hmac_key": "130A7E098700FD312DEDB8A96E1C1FE2076EAA789D780C920EBAC5344664F9F4",
- "extended_signed_section_aes_key": "D6BFFCF4F5E5E5EEE5112DE06931F0CB",
- "extended_unsigned_metadata_key_hmac_key": "E1F2D826DC1FE6ED029DA2ECF997AB5F490BB918F064D140A8FFBC7D06AAD14B",
- "extended_unsigned_section_aes_key": "9042BE6BED4A973352DED10961BB719B",
- "extended_unsigned_section_mic_hmac_key": "F1E278D489771343169B22AED83D1376A8061D3C3D20FAAEC42F8560AAB0EBCE",
- "key_seed": "F0F12C7B69205CDC35EF83F1F7DCBA3E96C6B1383D6C6BDC63E703012DE04A55",
- "legacy_ldt_key": "4447C90253B5BB0BA829E1C14CBAD2358222758E6187ED04B8245C163B39C43AC88C8634AFE3D3A2F3D7774E200AB46384005B14FFB13C9F65447881F93B0CEB",
- "legacy_metadata_iv": "08318F842BC250607EC97358",
- "legacy_metadata_key_hmac_key": "87A1B6DBAF0E9A9A3A2ACF2B2299983AC0858D001282BC358F15A1431AA164F7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "557E",
- "expanded_salt": "12CB405095AF24CEACA3FDF37D48C536"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "167AB8A34B38BDF9FEABB2D59D331B81",
- "legacy_metadata_key": "CA6D73C1B3F7E82E5085384920C0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0BF65F2719B836A437824C85F5D14904",
- "derived_salt_first_section_no_de": "EBB14275575CDCD3718F9C51B94C5B44",
- "derived_salt_first_section_third_de": "CBF3B11B5F3A82E8E16D9A25ABF5A2F6",
- "section_salt": "1935199E8120DD7FAEE6683AFC7CF961"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EFCECE9D4E5D9B3DADE42EB0",
- "extended_signed_metadata_key_hmac_key": "B90A9CDC9C91022BD660AFCE130EDFBBD44D996F86D495CEAD73C9A7F7EC99E9",
- "extended_signed_section_aes_key": "628AB694715728E4C7C370FE04C6EAF9",
- "extended_unsigned_metadata_key_hmac_key": "6FD372A3C42D8CCAC29A083C1A21C741EFCA4B3F756D8B1E801E17ABAC5E0AFD",
- "extended_unsigned_section_aes_key": "C1E3C734800605643E3EC266326CE0BC",
- "extended_unsigned_section_mic_hmac_key": "C8417A10027FCC28083C83ED5FAD9D8FDEDE50061E90FFC62E6FA520429CC851",
- "key_seed": "1706FF8DEEAC5D236FB7CF075A183FD20E020E9D5F645D7613F4C0D3E703D2A8",
- "legacy_ldt_key": "D0EC02F93F4BB1DCD793902E248E8DA67A1F4F52D7666E0EAB1F747D0B2C0C2524FF3D00FD595E1BA00A6025C295D3EC7355BA0FE892B28B6336011FE4CDEBC1",
- "legacy_metadata_iv": "3D8745C03481FD6F1AC28D39",
- "legacy_metadata_key_hmac_key": "C52488069FACD0F4C1897DB9A2CC7F1D13C76534E168AC7C68C6DB2EAEEE2DAD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6A9B",
- "expanded_salt": "81B0A3958842B9C985D852DDB39A0DB1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E04C78D21B8ACDF98E96AFE74D4A78B9",
- "legacy_metadata_key": "21726A3459C24F458BD1D3A13AD1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7BA80D8B752D053038E06E3F78A181F1",
- "derived_salt_first_section_no_de": "51802FF9A5B901C9C759B57B30C500DF",
- "derived_salt_first_section_third_de": "12A1C32DC49CA8BC9855252C95B0A45A",
- "section_salt": "C3DE7037495E02FAF0E27D3A6C4CA56D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2061369F935CD3952034B7E4",
- "extended_signed_metadata_key_hmac_key": "1188AE8F3AB103CC266CD6B0034F877BD7BF4DDCCC3DF39B8DC0B26EFAA61528",
- "extended_signed_section_aes_key": "2B5BDEBCA6AA92C315DF170D5F1B824B",
- "extended_unsigned_metadata_key_hmac_key": "935AB963AA1B33259F95E817D4D010887388982CB8729129C435195C733DEB08",
- "extended_unsigned_section_aes_key": "93C1DE9AE32414588382D3B68A65EDF9",
- "extended_unsigned_section_mic_hmac_key": "110E1C763BD82286482D1BDC746FEB81AADB9E20AF6F27F4C598DFB695FE87F0",
- "key_seed": "DD34593A208F1715F66C0D3D9305D1C0086D4DB43654169A90A6A30FF3D6A2EC",
- "legacy_ldt_key": "8BC4993A0CCAE86482453473225A5946779B3418BBC11BF454BC8B743A713D2C5A5F82B2357855E470C79B67D313D75652424B75BC98F609F08C01936BA44040",
- "legacy_metadata_iv": "473E8E8E890DB6FC68A38286",
- "legacy_metadata_key_hmac_key": "C3996C893CB982155D588FBDF76A7D04672DBFF6B5DE60FA3C1BBD00C4FFD797"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6BE7",
- "expanded_salt": "902020771760D151B2C383C6DE9D765E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "102B10DA0BFB9093EBF40C4D6ED622DD",
- "legacy_metadata_key": "C59FADDAAAF5B05E9D3F3F5EF79C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A7EED14C57502DCE9903A78FA311834F",
- "derived_salt_first_section_no_de": "BAD558F31148B799C09D351B3AF4774F",
- "derived_salt_first_section_third_de": "A836FFC779CD0135BC7272FCCFBCED40",
- "section_salt": "1A4F073193A9B87E8A37CD4F58E89618"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6A612138DC767DD868257E1D",
- "extended_signed_metadata_key_hmac_key": "B8402A50FCDF4169AE9B67668C512A7108170BAF2A2A093A9D588CA7599E34A2",
- "extended_signed_section_aes_key": "9ECDCB109D33CB3FA90C81D52098AB28",
- "extended_unsigned_metadata_key_hmac_key": "4C35D8E857BFF17A82D1B3EBD0F7F8F9A7954FF49C50248DDC4821ABAEC999FC",
- "extended_unsigned_section_aes_key": "01F097F4E9DAD48075F39A6E3624C9E7",
- "extended_unsigned_section_mic_hmac_key": "D36E0BEB7CC29AE2A5B950AA6588D38B167D7E41C5764D5BC0FD95F9E9A7D7D9",
- "key_seed": "A4EAD16649A5B623BB945498F2885985F964249095B3CF02910AA5CF6B9D6C1D",
- "legacy_ldt_key": "D3BEABDEBE54BDBC1C2EA1781209BC85BEC8A883E9905836082580688A66B5A87513D174D165F88FA79D4249D4066F5008035D06F46FABC3DC294454026C4E66",
- "legacy_metadata_iv": "6173A07D6D69B3AFD59723EB",
- "legacy_metadata_key_hmac_key": "7D7676BE20FD360BEBA41C7F16D849078521C5C027F81539E4B382BE7220706A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6241",
- "expanded_salt": "E91CBFA69EE586578BD36601FCF0205A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "968639791BAA4BA978B5238448E30478",
- "legacy_metadata_key": "9AA6225C8268F2A13BEF0ADB57BF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DB649C536DDE7685291E0B4B82B73A0A",
- "derived_salt_first_section_no_de": "3963C046DB8BD79E88F0C4A5EE395E71",
- "derived_salt_first_section_third_de": "AC7B9B7423D79C185278DF0F53A964AE",
- "section_salt": "C09475A92EF79C8C0A81AA7FEA5B5953"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8DF84B2A5B5859A580EA23F3",
- "extended_signed_metadata_key_hmac_key": "8E7BC7949FBC76A92A4A2315C82DF5F89DE5F18967AABCBF33280096294060D1",
- "extended_signed_section_aes_key": "1E42E5BDA05E53A939B1DD7463E9FC9B",
- "extended_unsigned_metadata_key_hmac_key": "65A20716EE8C446E04A1A98E881D6DA513B1B9A378CA227A23F45E9BC568763D",
- "extended_unsigned_section_aes_key": "9027A87CC6369E50C0F82DA4907C89B7",
- "extended_unsigned_section_mic_hmac_key": "7531632816C54E16A4FB89DE939B15BA9C03F1CFCB9D215568C4C06EA2E3972D",
- "key_seed": "DA213F88A8DA178A70FE277A65BE6E906381731277EF3D1F56B7580E18A7B1B5",
- "legacy_ldt_key": "ACFD7621BD089362627796C902DE783274F748E3B80F88569F98C0FCB12A1725FB3E7E66420948E8056601241CA21A0F68BDBB5868EFBDF5098A2536E6190E0E",
- "legacy_metadata_iv": "E2BAE71CD43D82C35BDD0153",
- "legacy_metadata_key_hmac_key": "6655555A35FFF19A9D00288C2CA88463BF5A72D09E118F48E10C1E911C39D49A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8467",
- "expanded_salt": "46FE6687AB3D5C87CDBFB30F83F14314"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A2BB7666E5E296F2579B346078042A9D",
- "legacy_metadata_key": "658E3613DB96823A8BF32D2C7FD2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BBA9CAE5A58376BC2AEE442C66CCAE77",
- "derived_salt_first_section_no_de": "6BB1088051206AE840F3AE069B53BCD6",
- "derived_salt_first_section_third_de": "A6AE6C1D2DD71FE0E6298925BB1246ED",
- "section_salt": "E3E70C2029A05EB6D40119AD559DA720"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D7FCE1640E4D9B25890E30B4",
- "extended_signed_metadata_key_hmac_key": "1A43E7CF61801980D6A660E392E2356D7BFA4C5C5CF36228A5FB7A9F535B83F2",
- "extended_signed_section_aes_key": "64119A78E48221A58A23CEE1BB6B68EA",
- "extended_unsigned_metadata_key_hmac_key": "76E8616F848F4F7A162626F1B046B643B61FF880A6BBD964E5039B0F5FB170C2",
- "extended_unsigned_section_aes_key": "022E4067DF08F94F225720B120C6B5AD",
- "extended_unsigned_section_mic_hmac_key": "69D9F984232AD04F97A6D29538EA60E1CC944F32A8CB06E2962FA33A984108DB",
- "key_seed": "B15857EEA3ECE1C253AEAD956BCEC32981F2ECD75EA8AE9664835C4EEF493367",
- "legacy_ldt_key": "D5D1C2A6488686167E7200941A57288E496C27479E1755068AC701A2CB7B3A580473B7413896D4A14F60D3498188F2499BF52BE8D29AB862018A1C1CA692C40D",
- "legacy_metadata_iv": "A86EAEA474FFF9E9CFA99682",
- "legacy_metadata_key_hmac_key": "960263F778C326C2E5BE0555C48DF3EC252BEFFDD6A22E78BC1EB5A89702BE42"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B174",
- "expanded_salt": "D187AF34E8BF3C1DF8237F233D414A00"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "523106D4910EE3CF3BA8A61E000BF7BA",
- "legacy_metadata_key": "69D0B31DBD1700310E300EF36F41"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "929A270285C81B5B88CDD5E62BC174B8",
- "derived_salt_first_section_no_de": "461583F9C25DFF4048E9574FA6AE366F",
- "derived_salt_first_section_third_de": "5B1827CEA308F7B984EEFA2FEFCFEDB2",
- "section_salt": "138B5C309DC86A13FD938A5ACDACABCD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "47D90D9D7169CBE32C2B35D6",
- "extended_signed_metadata_key_hmac_key": "5DC605B7FD796216CC470EDB17D7AD6E1FEEF356EE2996CE27F56EA3671CB496",
- "extended_signed_section_aes_key": "F1D71C8FD16C28D7E4259412D5BCF01F",
- "extended_unsigned_metadata_key_hmac_key": "2BF6C0BBC24A47AB9E2B1C3ABB993743AE1D370FB649AB8C25959B6E5D3061BD",
- "extended_unsigned_section_aes_key": "81CBC12326CD1576A9D466861B215035",
- "extended_unsigned_section_mic_hmac_key": "6C2E228B47042C049E124F0C3D748EEC39A23AA0131B3A7EC10D4A252E4A1B65",
- "key_seed": "2311D6177A5E9A937EAA0FB3F2199476BDE733732D8B761A5B5EF3D26D082BB4",
- "legacy_ldt_key": "DD8B7101FDEF6C19DD1C9A5C26951C0ACA6B2020BBBD250A62D2AEF411F62EDC8955263738F48DFC27A8AB81B6F65583ED2EE1EF706F745B39D9D7CD507F8DC7",
- "legacy_metadata_iv": "F1232731CAE6DD2730589A91",
- "legacy_metadata_key_hmac_key": "FC769C0B0F48FA46003434F5BD31F627926B31FFEDB8A42318F98A903084BAA0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4B7D",
- "expanded_salt": "26569EEEC62406B505571DF14A0D9A79"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9D7827151F6FC56D5807FB09FE8DC4B2",
- "legacy_metadata_key": "B8661B5E66B2C713A55A2DCB231E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AE97DFCEB9BD9676E192959392CAAF11",
- "derived_salt_first_section_no_de": "DA05CE6450F0148C2292209587A8821C",
- "derived_salt_first_section_third_de": "49E6AEC0B54DFA1813D3FA59F3D5AFF0",
- "section_salt": "4B1C58714C2308D179CA05E112A23B62"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "184BFF33810460B48C290FBF",
- "extended_signed_metadata_key_hmac_key": "A40DBB84544C2ADE90CB6DB45033B45A5EC475071B4D45C241E731CBC6D5E199",
- "extended_signed_section_aes_key": "0C50FE5CEC5B174920E9581579A9BCFD",
- "extended_unsigned_metadata_key_hmac_key": "B85436C2BB177507B91ECBD89602EB156008CBEDA08C03881AA9138D9266AC52",
- "extended_unsigned_section_aes_key": "C038AC746927BEA6DC5CF9D5346085AC",
- "extended_unsigned_section_mic_hmac_key": "781A9A91173398DE59D9CC47094BF3B688E5AC634AEC1EC8069E1F389B3254B6",
- "key_seed": "F682B20FFD020810925175DB904C538EF6AF7346B5320423CDE47778CB7B933C",
- "legacy_ldt_key": "28D17D88D8D63A74BA2A1E0B640167921E59B7925737DDA025FCCC1FF1A585FAADDFB793443210511F068DD7CE8C066D0481B15E80066975AF6BA604836F76FE",
- "legacy_metadata_iv": "F1C6D49F7CB1740DCC030755",
- "legacy_metadata_key_hmac_key": "7126A7E04FB8765AFF671B9E8C1185DADEEA005F9BACAF392DDC7472F05971EB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8B44",
- "expanded_salt": "525359E205A64D020490280B4FCFB1C0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "93D96469FCC471E76FDB5F1B689A106C",
- "legacy_metadata_key": "C00D1F7DE1406ACCE9783A2F02B3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4FA607D5B73A8FDBD19B3AE337E99683",
- "derived_salt_first_section_no_de": "F8C7D430305DE36E492BE9EC4DB4D284",
- "derived_salt_first_section_third_de": "BBFF4CB4B23A4030FE80A7AA7D095ED5",
- "section_salt": "33EE9254949C5F35A73C8C445C44FB96"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2D4823E76E56228FF230845E",
- "extended_signed_metadata_key_hmac_key": "6E27B049174FC3F2CC82C2AC63C6A60316FD8A2F87140AF866447AC12E983C76",
- "extended_signed_section_aes_key": "483C9896853D796B2391601B4801F235",
- "extended_unsigned_metadata_key_hmac_key": "EE9657A47CE4FAB4E933E8C31FDEDA91765F1ED9E869AD6610BDD18F2865B847",
- "extended_unsigned_section_aes_key": "244C34075447A6E59F90A915920A08F0",
- "extended_unsigned_section_mic_hmac_key": "07773735DBBA084BDE90EB6B979E1DD645A11A40017D27D8D1E4221F31CF304E",
- "key_seed": "3BD4809DEA0A392E8DA645DEA68E96F8638B1844D8C189571C4C3737710ECF16",
- "legacy_ldt_key": "1CF83284791CA434995456267040FD8EC7085E7AEACA0C414798432E0FF70B9AD2F88B8AD1F92FA5FFB275E68C696B14743ED1D8A255F9548A746DE4CBC627F8",
- "legacy_metadata_iv": "87B5F376F2A217EF9111FCAF",
- "legacy_metadata_key_hmac_key": "023FB925FB2C1B56A63D40CDE8A8D6D0E480E27A8D320F4E0AEE4D7DB7FBC6B8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7FAA",
- "expanded_salt": "BE849D45ACA2286752CCAAE19EC2B8B7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "18988CFA292EE0B71CC6BD572BAD4F9F",
- "legacy_metadata_key": "2439848706F18EA3C4E6F5746F80"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E3F56C113C61831F03E055038C5091FC",
- "derived_salt_first_section_no_de": "AED00366A25AABE1A312A65C1B710547",
- "derived_salt_first_section_third_de": "FA70B644A7993C95C85F85A65DBD64BE",
- "section_salt": "7A28E1C8F7E5B2B64952EE912E9B210C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6B59D9A4E7F594A786E69C35",
- "extended_signed_metadata_key_hmac_key": "02ED38119A2EEE4A2050596DA22FB24A6DBF57D40067423CC09866CEC5A406CC",
- "extended_signed_section_aes_key": "9CBC54CC7B5912ABCF4DC5BA7C7A97FA",
- "extended_unsigned_metadata_key_hmac_key": "4AB4E268A14660CD1960D1AAC076818EC656A64B830FFCB02BCC0D11BCC8D42E",
- "extended_unsigned_section_aes_key": "3B0BE73C8FDD6E592839A3D5DB8CE270",
- "extended_unsigned_section_mic_hmac_key": "E10222C663A30FBDDD943AD124990010C830D1403710C3343584F7B7D2CD1816",
- "key_seed": "30CAE6F20699E3A34354B5F0A2BD3F720D4120DC0D67435D8617635A79DD522D",
- "legacy_ldt_key": "4F608FE6BC0C279897BE86C756FDBCA486B2533BA4FEF960E7A0B935FB093A1EDA14F982951EB0A420DF66C842A2E10269A7197B934C14288A919B16076927E3",
- "legacy_metadata_iv": "E183C6151CAD844850C90530",
- "legacy_metadata_key_hmac_key": "BD66522F8CE4BF8754175E16A0BAB8B7C08B1465E58F400B13C60014132EDB95"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6391",
- "expanded_salt": "D8E31B6C3EB3735AE052F32CE0B5A6AA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D461D0BE8C93F1D881200843EDE71165",
- "legacy_metadata_key": "D21F8F578CBFADE486D232DC933D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B7B5D306819AA19E9635F80178615BCD",
- "derived_salt_first_section_no_de": "1D1AC97F3AD140C4092910EC508AD667",
- "derived_salt_first_section_third_de": "ADF4743F43482953CC9946F76C9798DE",
- "section_salt": "E929D2EFBEF47465890F99031B9CBE52"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5AC7EEA2CA5A503AADC19E24",
- "extended_signed_metadata_key_hmac_key": "A194F4796967A493F6D28CFB769F58113D36694F71736BA6BC09ABEFD5DC9AD7",
- "extended_signed_section_aes_key": "1D4D85A9710DA9021A42C33B844D4F1F",
- "extended_unsigned_metadata_key_hmac_key": "D0DC552493D4ACD9606411EB141AD88F3C93964E6ABB335293A86CA69C4C5BB3",
- "extended_unsigned_section_aes_key": "62AD7D1E9242BD8782B7EF50A9C2BF23",
- "extended_unsigned_section_mic_hmac_key": "4CFAB88844352E05E475FEB98F5088909C1EC2BC47FFC1E710DED1D4D27B9B44",
- "key_seed": "DA9F37CF10C03C03817C913DDA72BD811E0A87D23E8E056E8F9A0C12A62C5C9E",
- "legacy_ldt_key": "F086B7A889DC0B4016F8ECB2965ECDE42E8E9B0E1F61CD2CC230C101EC1470989336DBCE8D5FE04223A079AD552929ACEFBE5E5850B0AE7F085F0FB1E70B9215",
- "legacy_metadata_iv": "A7B2115EE02E6793BF2DDD46",
- "legacy_metadata_key_hmac_key": "F5AE7DA3F0EA47500FDD369565C0AF9AEA3D56EC75EA76854D3E2BBFDDDA5692"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "496B",
- "expanded_salt": "145A372DAC6CFC172F5390B3D0541406"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1CE8954C2DB84D6EFB33F35BD6B06824",
- "legacy_metadata_key": "8B91BDFF15E7DCF1749D07E8D473"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8884705772D1E9DDDCD72D07766810CF",
- "derived_salt_first_section_no_de": "9CF6A4B3D3367D37ADC7917EB4865C9D",
- "derived_salt_first_section_third_de": "2E6D03F4AB4EADB536B842F3300A8BC6",
- "section_salt": "C4DB869C8539EEE3A5D734ACEF6E5AB5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EE759D917E1B04D43C1B0E7B",
- "extended_signed_metadata_key_hmac_key": "E23214515CBA65C45DB3A4454E4ABD7377D92F35C6A5F130C7A8B0829EF77A45",
- "extended_signed_section_aes_key": "5BB0821147FAA64716252355E456373C",
- "extended_unsigned_metadata_key_hmac_key": "32545FCFFB591020482D18C10513D4C2F8A8C017CE6152E7C875D547E0ECE0FF",
- "extended_unsigned_section_aes_key": "67F097CCD234E82BDEF368D2ADE5648F",
- "extended_unsigned_section_mic_hmac_key": "9CE59B6A2030121AF4117E708D7374391CDD2DF32F4BD6EF97E117A63208E290",
- "key_seed": "DC87FFEEFF13CD4525B14078B3D5B029D0C87BD10F654EEFC7AC3B73C118C642",
- "legacy_ldt_key": "4967696E4BB200CFAFCE08CF63012F84ADB1E74661D1CB7439229E27BEFF28FEB7776A681D813D91B6BE6574F274914B3D383574C37A103750D078B2A99A6236",
- "legacy_metadata_iv": "7E7FC097313E5E1CC8BDF21D",
- "legacy_metadata_key_hmac_key": "62A218BEEEED54B755919B9F8DADE5DE40885DBAB8F4742DF217E3BF0FC11EEB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2935",
- "expanded_salt": "654171AC317B7C9EF8CBA86BD0B65E1B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4A677550CFCFA3A3DB218CCCE29D4DEE",
- "legacy_metadata_key": "3B73816F8B0207472103821962A6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0953C1341B3395ACD10AF4FA0D195A72",
- "derived_salt_first_section_no_de": "A372A4A06822B615698D1DB85D99F452",
- "derived_salt_first_section_third_de": "7782E6AD4BACA568C9F19BFD45758EEB",
- "section_salt": "B1D19A1AA0B3C59F7A0FE8045E500BA6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C429C0839AA09AD4F6F79758",
- "extended_signed_metadata_key_hmac_key": "23F2356FAA33D00D08FC13152FBE1C59B390FF696818BC7F0682550D158E7956",
- "extended_signed_section_aes_key": "8CD6A4959B1873F1D9D7D4C3D0BFC6D4",
- "extended_unsigned_metadata_key_hmac_key": "746A073BB72A98D246C287216DA2F0E5CF349BE153776FF7F3B051596FF68881",
- "extended_unsigned_section_aes_key": "CE653ED48B060B1FBC5533F7A7B28B35",
- "extended_unsigned_section_mic_hmac_key": "41DED9ED9EF28B1EF4D97A64E256D5B7F22DC3BD21961F0B58AB966A58C5C2EF",
- "key_seed": "02572BE66D0993C678294FD4A3020C844AA3F2FF4A346F2A18C38FC4D7D45380",
- "legacy_ldt_key": "C918E193FD1EE5BB828729F045BAF245DB5A8D980BE51255820ED08BA007CC2CE339E05501E14D546BDEFC72768CC08FD0B87D547803C8B2A0818A7900A1D839",
- "legacy_metadata_iv": "4BEDD0A36AD7AEE9B66671B3",
- "legacy_metadata_key_hmac_key": "3C33984F585304995A2E65E2D1DC3BBC08D206092574B9BBBDD796CB02129993"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1D98",
- "expanded_salt": "A5DC700420350B3107AC615A0685B607"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "098107FA65CDDB9019959BF18B9CDB8F",
- "legacy_metadata_key": "D6E2E96E164DFE43D73C57E01DF9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A27868E79C9805942649673A5092B970",
- "derived_salt_first_section_no_de": "F2FD2AC34FF32E1475D3BD30F0838092",
- "derived_salt_first_section_third_de": "55D1D3191143A0E0B2D97716A5913B04",
- "section_salt": "2CFEB0C28526596970C1C3E389FC9538"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "086E14B15AAA950E9FEA0812",
- "extended_signed_metadata_key_hmac_key": "8E2519CD01D20BF713ACEAF0932574A35FB8BEF1918737AC69B608D74E178533",
- "extended_signed_section_aes_key": "C1275AA9971DA6D8B7672A68D8CE7569",
- "extended_unsigned_metadata_key_hmac_key": "CF447FBF1387AA42F0CF3B97B34167590378396192ABD1B7444A6187ADCF5F79",
- "extended_unsigned_section_aes_key": "94637E481EDBED46334711842D162775",
- "extended_unsigned_section_mic_hmac_key": "3BEB72EC285E416CBB8405896078395DBBB77792513123E5B7A9F5886AA0AB86",
- "key_seed": "6E8CBDD6053D0D0775C7207ED8C6F0F02E838EE78F0F2E291A1BF5A9C02285D7",
- "legacy_ldt_key": "F9B55DF70A565E25F96B6E14C736B557C7D7C570594A88D71772F1C48A7801BFA46519BFBED0BD1C29930CA58AD5BCDDD108141B7F516BEEB2B4AD1E55621B32",
- "legacy_metadata_iv": "ED5B10F3623AEB103CC2DF65",
- "legacy_metadata_key_hmac_key": "B84FE92A2C1B572F0579287FD0508983ADE9561844640F5E92688A9354EFB402"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5C1B",
- "expanded_salt": "D930DC9BBAD81244A89C6981CA988E70"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DD221CBC3B6FB1BBAB7790447382B2C5",
- "legacy_metadata_key": "6159E261B440AD89375524B9B93E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "517B5016B5A76FF24E9627D5C60DD9E7",
- "derived_salt_first_section_no_de": "E40267032A72428AB74D066B9D6E47EE",
- "derived_salt_first_section_third_de": "690733ED967058B0382C7D2FDDDEF0A8",
- "section_salt": "0B968F45D8E3750BF4CE41E042C65B5F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E3FD46576325A56CA5ACFC34",
- "extended_signed_metadata_key_hmac_key": "332CE1E91DE5EC27EF5A08004469EF7289730A0CD8CADF59E46773AF4B433F22",
- "extended_signed_section_aes_key": "18F1EA6E55A9E684EED00F54F6536C4D",
- "extended_unsigned_metadata_key_hmac_key": "36A336C152EF9112E452962DC49B4D30FE3878F4007A16BE6AF12398A33C49AE",
- "extended_unsigned_section_aes_key": "C9BC6EAF541582F5896448DAA759701F",
- "extended_unsigned_section_mic_hmac_key": "D105D8CA71D10A7D9650E15890ECD82AC5B02438334D13B6F27BC4B91293AF97",
- "key_seed": "F1F0649AEF91A18CBEDA665938267AD684829347F15F1A4BE85185E82E822A2A",
- "legacy_ldt_key": "BEA450AC3F5AC67877C1D2321FEF03065AA1DC685288C6CFF3CBEFB996BFF05A498D8A16B111ECB47E840FADBD090686F230F075FDBAACC3B2E5324D6CC057C3",
- "legacy_metadata_iv": "AE38E019A0B2933FD352FD9D",
- "legacy_metadata_key_hmac_key": "04D3A2B18B27611F3C389637C35E2BE054394AE2466CEBBB1FED77769BC68987"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6DC8",
- "expanded_salt": "023C21A41947557115F497957A51B0A8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "30E642B85563FBA753CA63D027C2E4DF",
- "legacy_metadata_key": "B29B8BC40D82E09AEFFBDF15D392"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A1EF3DB42C50E8ABF2227D24E14D4F3E",
- "derived_salt_first_section_no_de": "51A33810A289E51E9B5A5738325C8AF3",
- "derived_salt_first_section_third_de": "47933340C6711ABF242AC2CB5E9E4F6A",
- "section_salt": "2499EE1E6C6DD8EC7AC5A82F4E0D6FD7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E50C3B7224D0D78E24532582",
- "extended_signed_metadata_key_hmac_key": "06E2D4E8EF5532786308C98D9B442172BD123F844AA67D2901B39417457CAC72",
- "extended_signed_section_aes_key": "687DB4645921470A032CC8E6C3D589A2",
- "extended_unsigned_metadata_key_hmac_key": "DED25ED478AC476E83AD13A0E9DAF4DCDDEF34C8C15EB68D6F66EA0DE10E8950",
- "extended_unsigned_section_aes_key": "FE5BF5BA5E6E978D737055EACBDA45C3",
- "extended_unsigned_section_mic_hmac_key": "BE9428646D61FF9C235537D28E9EB3593271D6620A772B2EC1647ABB0AEC2ECE",
- "key_seed": "E7EA2663BC73E5E0F66940E042DBC62DC096759ED3510DF281E3DC0745602881",
- "legacy_ldt_key": "D0EC9EBC257C0A61560B71AD01AECFAE2E312A03EB38BFADC2391DF041323041B06D3276EF8AC09BCA2D0E57269D2363B8FCC0722237848B7D70C74646BF4C59",
- "legacy_metadata_iv": "890CA0D23EED2CCDBFB81F41",
- "legacy_metadata_key_hmac_key": "085BD57448699F9F5640546E6CF2425C163B655ADC61611DCC3DC11F7C74AACB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F805",
- "expanded_salt": "8A1194E15DBF210987309E036CFD1CD5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EEA0C71CA9100C750318BBA28677C629",
- "legacy_metadata_key": "15AAB11214E05C3207FB4AFE2C8E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5FD14DD8250372BE881EE4EACF777708",
- "derived_salt_first_section_no_de": "17ADD9C0A8DF775FE48EAD3A2FA10E1A",
- "derived_salt_first_section_third_de": "78978441470E182636E7425EA2CA5B7D",
- "section_salt": "E80BC80217FF5C96B06A3B52F1E50B2E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E62F91F27280B80C9300D3E7",
- "extended_signed_metadata_key_hmac_key": "A2147D9D873C12209C4344F021BE8A959168A2945A1ADD10789A1F4D4A218761",
- "extended_signed_section_aes_key": "4DE324C201F9E7E5D117D54080A66244",
- "extended_unsigned_metadata_key_hmac_key": "DFB09C975AD8D54EE675A129AFF48A32B0B720036947F0B46F1A361998C68381",
- "extended_unsigned_section_aes_key": "36C74C9E2A8F9978843EB4559124B54D",
- "extended_unsigned_section_mic_hmac_key": "E5BBD6A8BA752D6F054AB18DF4DD944141B0766101ABA0CEE58B8C2D3C16E85C",
- "key_seed": "7E8AAC45126DD57C16ADFDB0361D5301BC05B0B317BEB7232DB7805753E66603",
- "legacy_ldt_key": "CB1382933EE6EDBA0F2F075EA36B8334AD913D9685BECC84B2D759E7F8B238B34C0744900B9DB758699C2BE80BB5092C3EB3019C01BFCD4AACD3CB1E01154F15",
- "legacy_metadata_iv": "145913986009352F7756B463",
- "legacy_metadata_key_hmac_key": "5F8C3552986BB1B040131B1D55BC835A495E12F6B4AD9D35FAB2060599E28BCE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "782C",
- "expanded_salt": "7F6EADC19334AE28990E3AE7B393D920"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7EC086ED97A276749A3C0A0328939E5C",
- "legacy_metadata_key": "193C5FFEDE83AC4DD6BC7B1472CB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EF97161F739B6B1C627F39C5EE4F3DA8",
- "derived_salt_first_section_no_de": "8927DEFE20E3D54BA5778298223F40DB",
- "derived_salt_first_section_third_de": "E83FD6F5B9E16046FC05467FAC65F757",
- "section_salt": "6AC5249B94EB6F8172490C22E4BA8897"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B1364F131B405CACDFE3CD35",
- "extended_signed_metadata_key_hmac_key": "404AE9D12E89D2AAB5E08B092107286BBA8631FB43AD3F0BB2DE7D8AE03E2535",
- "extended_signed_section_aes_key": "9CD6237EFAAD10C1E789EA6C74387024",
- "extended_unsigned_metadata_key_hmac_key": "056F939ADAE8C91CB8F1B79735CBE184D9E70E1E2CF2D226C39BD84170DDCA4A",
- "extended_unsigned_section_aes_key": "6FE568F125D4A2480CE48BC69882CE14",
- "extended_unsigned_section_mic_hmac_key": "047085A17AC27C151B89EC1F829F34CAB9047130DC264D835F23B59F6150D6BA",
- "key_seed": "9A9E77E65603E398AD0A84C8C32A8F8A2517B0517B7A2C4CC1D09C796D729024",
- "legacy_ldt_key": "5482A119585C92D76C4791D4D9EBC9842141721E61006ECC58FC7A0582E0B5E5B6EFCA312229FEDC74449071973F86C3BD8B2A8FB0E11A03A0E70EFABB44DBE9",
- "legacy_metadata_iv": "D2F6BF40B73EC3E0760E593D",
- "legacy_metadata_key_hmac_key": "DFB14418306930EFA6090095CEA0A72C1319392DF0A858CEF2A5EB110ED1D036"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "423E",
- "expanded_salt": "C11FDE3F0605124D2E43291E493EEDD4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4BBC654A6F280F2523FBC41851D65711",
- "legacy_metadata_key": "042EB9E61C460C26157448271A91"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CAAC50FD8070B41101E67B9FCB9F29ED",
- "derived_salt_first_section_no_de": "249777E6C4C626F2760288D5B0A4CD21",
- "derived_salt_first_section_third_de": "F2550BFDE27E6853E170590A1EB11E93",
- "section_salt": "96CA9FDD041A0EB4CA7D18C1B83D5BD4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "605E09B4AD58230F2A70053D",
- "extended_signed_metadata_key_hmac_key": "1EA0F6867009FF88F6E1CA970A964D56BFA95374A6BDC7045E19E88C2D503779",
- "extended_signed_section_aes_key": "8D007932546424330640D4A102F4A94C",
- "extended_unsigned_metadata_key_hmac_key": "0A91C6226D3EB52620715D7D9FB12F4C52648CDC25C3E07939BA62F2D748C2B6",
- "extended_unsigned_section_aes_key": "2929EB1D38DE6B60042FFA797C3F9F18",
- "extended_unsigned_section_mic_hmac_key": "C0F0488AE01AACA4518C2DE4D301F45730B9EE74134A3D4AC762D03C44AAAD7F",
- "key_seed": "6CDD600C48AABB698D6A7C546CF55EB99B39752B618414D24A6E2DF6D8AE0FDD",
- "legacy_ldt_key": "86B523193D0613F9FC5065CCDE3A675819DD53BB608C20BE37943D8C1F908D8B1A2A0E2E84A8206B80B612F21D58F35E3BC61015B958630626AEE9189D6215EE",
- "legacy_metadata_iv": "C51E92DAF708E56AB494D67A",
- "legacy_metadata_key_hmac_key": "23447E58551D3CE31A20FAC7AB680B17AD38C45CEC4CBE36CD8E32C218373BB6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7454",
- "expanded_salt": "83B3A20CA22BA99127F7E615033D0F01"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F1C46C1B712873C5F6DB0842CF26BCFB",
- "legacy_metadata_key": "3274A769DB50645107962DE98F60"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "541F668C05A51772248E716E93017FB8",
- "derived_salt_first_section_no_de": "DA1EEF49EA5D5BC428430DDA10014468",
- "derived_salt_first_section_third_de": "711FE18DEE90540AB8DB9B4088107EAB",
- "section_salt": "3A122366F840B6801A8C49B0EC00DFAB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5F7C27737A245E6A3C9852A8",
- "extended_signed_metadata_key_hmac_key": "7934FA0B687BF75C4249268DD516B74250F14C806DA24D4907113D48A885B43A",
- "extended_signed_section_aes_key": "57FE793A561BD0C6C23882107D88F07A",
- "extended_unsigned_metadata_key_hmac_key": "1342132809FE2AAE4CBA526A81811901AA740497C4CBCACD015DCB3069D0A913",
- "extended_unsigned_section_aes_key": "C1A8FC5C7F5CA7A6EBD1CA70FDAD278B",
- "extended_unsigned_section_mic_hmac_key": "2DD2E4FEA5F81CFC4F344BF02982451D92F1394896DF75BA761A5A1312EE7FF5",
- "key_seed": "5EFCD71256513A7BE3383F90E996381224489392CBED62B378096BC9506EEA39",
- "legacy_ldt_key": "EF17FBE01CF12D1019268F0385EB1B13B5FA83F06A74616B949C5CF8C833A6CE0D32EBB3A544FAF9333AD64EAA61A35EB2D74EE66293354898907793D34134C9",
- "legacy_metadata_iv": "9B1B1786B553A5C980BF1F44",
- "legacy_metadata_key_hmac_key": "786CFDF642E815C605D04BA5CC04B0BAE5FE18643124967B061669A0F10D6E3B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F4A4",
- "expanded_salt": "CDAFE2BFFA825E44FE23E36D8D65B9E0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "399075519ED4C8F14C2D9B063F4760D8",
- "legacy_metadata_key": "D7556752D59AD53C9690AFF9B0D2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9A2158A75961C2F1ECEED567345E1377",
- "derived_salt_first_section_no_de": "116AC8812875BC1A1AF1164B54D39752",
- "derived_salt_first_section_third_de": "1BE498BC96259CD18F987BDBCF3FC9E0",
- "section_salt": "B0DDEA033B1F756BD42640FE02426070"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ED6976A7F547830F60672242",
- "extended_signed_metadata_key_hmac_key": "D1F58CCA21368894FB9A7B2FA32720AC303E624E5973434B98591DB47BB05616",
- "extended_signed_section_aes_key": "4C5CA8F4904092583031D7815C756D3D",
- "extended_unsigned_metadata_key_hmac_key": "9C1882E9F004D02CD3F71E230821C4259439A796C04C7983D31A80BC50755C42",
- "extended_unsigned_section_aes_key": "AEBC14C5BC5030277FC836EFEDEE8C9D",
- "extended_unsigned_section_mic_hmac_key": "B6675F3BF92E5DD78C8797E1BDBA8579CB11EA05EE571B00C5FA4108A2E3FFD9",
- "key_seed": "DEEEDA46CA4D1C180B59B0960CC99A9E7F5DB301B09920970C5B8C2E9C1E9FEC",
- "legacy_ldt_key": "823A117227920971BCC77C14D74E8BA22E8A7B0BDBD0960E0734118A19CF499819CD793C9F3DF67479A5EFC58EFE0F7C7182A583782A4D782248F6694B2F2788",
- "legacy_metadata_iv": "A361A2ABE7328E9C97CFEF99",
- "legacy_metadata_key_hmac_key": "347DAAC96D8D6978F312D46727C002C695EA2876308B399E71E24226D5FEF5D3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "044D",
- "expanded_salt": "2CCAE2C91C372514CDD9CB8A0F614A11"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E96FC7858C7640A032C154CC111ECCE4",
- "legacy_metadata_key": "90AA73ABFB761598C5744DA46881"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "41718FD308336E42B6D4EC37BC71AED0",
- "derived_salt_first_section_no_de": "71264C06451B46E624752858613FCFF3",
- "derived_salt_first_section_third_de": "A97D486B19F1C38D9036A2BAF365DB2E",
- "section_salt": "4BA0C991CEFC6E2A648293FFB644977F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2CA9F38B4BB06C6E0438D380",
- "extended_signed_metadata_key_hmac_key": "5217AC37351CD62F958CF8537F7EAB4D57F1205961980D3219908F1F481703C4",
- "extended_signed_section_aes_key": "17A97F1118F2B8714393DBE53F34DB6D",
- "extended_unsigned_metadata_key_hmac_key": "5F5B40D87E0456607950A4989F0B6402D4F54F3C01DFB971CA675CD585128A6D",
- "extended_unsigned_section_aes_key": "1547837A121A8C85398A33B867E8D808",
- "extended_unsigned_section_mic_hmac_key": "0A1E5DF9DC99656DC55E0CC5CD9D1A9E1843D7C4CA3564868D1E6498637FFF63",
- "key_seed": "D96E28EA45C61E737AB1CC8C5875BC0CF02ACF787CEF225C7A945E3344B9C4A4",
- "legacy_ldt_key": "40E4BFC118E508AD58EF8543B1BD6F009E4A660C24A0523B07BE4995CEFE127E36F16CDA9613C843D7FF6ECF3F5861BD5BB8513DEDED3CB19A6CB85DC90CB392",
- "legacy_metadata_iv": "57F8CEAFC740E79077245693",
- "legacy_metadata_key_hmac_key": "470862DE119B6C2A81B1E85DC7A12FA845C125971E87E29193A60E1BB5A6C728"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "993F",
- "expanded_salt": "4765C0F7A7874F9C37FFDCAB9EC2B001"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A6AFFCBF0EC3FE9EF77FB2EA19094C1A",
- "legacy_metadata_key": "A45509B0FAC04041962F3BB653E9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "97AB993F53DB1190F4902500FEE31E76",
- "derived_salt_first_section_no_de": "07F8A51CACB25A2BFB64ACFEE8193843",
- "derived_salt_first_section_third_de": "9F7A19998C770E04B28C54661881EC3C",
- "section_salt": "A77370A29DECD70D6CC7D0420778CEBA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6DCB6D7DBFE16EAEB48D172D",
- "extended_signed_metadata_key_hmac_key": "D2FCA685BE617CFAEFAE0C5F0B35817CF125A1508C88CC83B4A57B413951089C",
- "extended_signed_section_aes_key": "3358CC56652CBFAC59236F8E11287D9F",
- "extended_unsigned_metadata_key_hmac_key": "41FF91F53CBA520071ED39660D690A98BC53C07D556AB1E4892487B917E4204C",
- "extended_unsigned_section_aes_key": "426F883E7256A79B5927264EE98FCE43",
- "extended_unsigned_section_mic_hmac_key": "0C07C8061886784787CA76471B3894C4FAB3312EC27D45CF4908AF742F162341",
- "key_seed": "14668FCD12369043F05037AAA707D49CF79ADBB096D5F1DC66B4C81598536200",
- "legacy_ldt_key": "667D5B2C7B7405A9D96A830D74F707FBE3D5A9DEE9B9C53601C1F30E48894B329C08D0E9F811F213752095BB65B23FFFE881B972951059BA03B09B555578E765",
- "legacy_metadata_iv": "80462BE26693FA4DD4963C0C",
- "legacy_metadata_key_hmac_key": "2FAF4CE5C7B8F71FCBB54533B65263A5C08E431C85D97962E13776C1BA21655D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CFA2",
- "expanded_salt": "62E990EE96B69A90D2EE6FED80AF8FFA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9D967271CEB0596B8954419D43748019",
- "legacy_metadata_key": "1D9C53ADD2B178889693095CCB68"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C18D2CD58337891AE8373B1E12FCC174",
- "derived_salt_first_section_no_de": "2CC89EB47D8D106912AA5BB001A45A1C",
- "derived_salt_first_section_third_de": "3CAEA60534849806698654B5EB30E948",
- "section_salt": "37CDE6FEF6BE7FE9AC56AD66FE516C27"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5E1D3B76F1642DD297151086",
- "extended_signed_metadata_key_hmac_key": "CE7011EE54507DA71AADF2B376647730BE1BDE2E79ADA79BCEFC2074F59C3549",
- "extended_signed_section_aes_key": "B90A0E76F5B852801EBF5755B45E8E98",
- "extended_unsigned_metadata_key_hmac_key": "5688C465C349BF8416EACCF80EBFFB317F2AF4012C9CCF720581709525E62D01",
- "extended_unsigned_section_aes_key": "550699E98E4367A184A22AD8A2FC169F",
- "extended_unsigned_section_mic_hmac_key": "51A4DC6123E21B925294EE0E9FB0EA7E0D2024FBC2AA5831CCE14A48296BCBBF",
- "key_seed": "F137F4EEB98F5C52272B6F073867ED757453F0FF5D9C18E07E5475C8672A9617",
- "legacy_ldt_key": "EEFF4F9D7F4B2AAD55324A78490D3A7716758A658E23BF5195C390548B63483A02D0EB1C043E065F313B699924BA0684186EBA681B5EE69F86A3781922199DFF",
- "legacy_metadata_iv": "FE9366DC5D8A42A91372097A",
- "legacy_metadata_key_hmac_key": "D16F49CD67F8A5E54A87FD9B413D7AFE578CBE47AA9A2771A0B234E7EC6BC754"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A515",
- "expanded_salt": "F0CB9F4920B4F7365AB73639CFBD1E6F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F0C1A880D75B0C689E06B78E9EE6D849",
- "legacy_metadata_key": "1F0087534A4B55B7B3777ADCE819"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D28B5B75D3EC2EDD604C5833531CD446",
- "derived_salt_first_section_no_de": "A76DF983B8AEC86890A990B3E3B0BF16",
- "derived_salt_first_section_third_de": "EA2B0C7C9D0C1BEEEA33EBCC466CB828",
- "section_salt": "64495552D1E60E3FB67AA39BA33D0986"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "428DFF78DCAC1E8312242D09",
- "extended_signed_metadata_key_hmac_key": "3B73DAF464208F35D027D811BC3B5B0728B8492332D62A8EC825EF1BA89584BF",
- "extended_signed_section_aes_key": "41238D44EBF93D515FB5028CF97EE563",
- "extended_unsigned_metadata_key_hmac_key": "B699771D605F800B2A06D8DF1EF91064F6B2BBF796E98AE5446D7ECA62B6D45D",
- "extended_unsigned_section_aes_key": "6DCC7CD4BA99220B7239DA0B57959478",
- "extended_unsigned_section_mic_hmac_key": "44D1140758415A0BD49389CD5BC55745C009AB0F08C1F587FE6776228D258B2F",
- "key_seed": "6032281EC8043DED2A2B834653C925A9C90F7EFC4627C7AD83F57266C0C17435",
- "legacy_ldt_key": "2A09574DFBDD5AAF685E0038CC1B7213CB1AA14872C06FF9FF191552907E22D8DEBC1F1B8E5F17D2B0006CB6A8AEA2BE9B182D5497E20D8ABA4CA62AF24A8AD2",
- "legacy_metadata_iv": "7257E9E1EB321C4A42DDD421",
- "legacy_metadata_key_hmac_key": "C6F29BDF8E5AD0DE162E46965A7F986F0BCD9B2C1F8BFE44CED82D34442ADCCC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7072",
- "expanded_salt": "8FA77C22B72271378B95C0A286DCEBD9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E228867103ED7B02C87E454D9BBAAD4A",
- "legacy_metadata_key": "1312B8F3DAB899EFCDEB49EA063C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C7AB02ACCEF30CF814E943626D2C6155",
- "derived_salt_first_section_no_de": "68ABAA01FB1C73C05D8F12784B96B1ED",
- "derived_salt_first_section_third_de": "3EE61E7C8124DBAAF91471CFADCFC6C4",
- "section_salt": "E7AFA974652AAFE856414CC68C717CA7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FC84A42DD3C21144F2AA5227",
- "extended_signed_metadata_key_hmac_key": "5E0C80898E2A4A6FF21162BE5ACA742BA793E188D5644A79448684070AF8DC89",
- "extended_signed_section_aes_key": "DD487FF37215E042566004E7E08266CD",
- "extended_unsigned_metadata_key_hmac_key": "0426FC565AA008ABC22CDF5B35D3463D79FDDC2A375859492B3C383CB827E399",
- "extended_unsigned_section_aes_key": "D90AFE9411823EE5CC80C92530543FF3",
- "extended_unsigned_section_mic_hmac_key": "AF38F133D15177D41A36B30221535C57C2DB9AFBBE9C755F60FD54336A1FE50C",
- "key_seed": "D3240E6C71F7BB0A467B9CE6508563414BE9041D40772153C322DD3CA879E3BC",
- "legacy_ldt_key": "81D4DF5078570FBCEB5B3377C76B43B84F394959D8F3514E8982F2378A64750267CEE5B168B4B3C3166FF6C65803F6F3BF334D46E74020956F279CC001A515FE",
- "legacy_metadata_iv": "DE40F3D84E9045C45D856041",
- "legacy_metadata_key_hmac_key": "1E9E14AE442F2B88579DBB285AE11EA4A2342A311CED7D1510C1BE656E6121EA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "55A3",
- "expanded_salt": "FBA009B1DD4324C29EE65EED0D1AFFC7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F5177953ABD0EC509140EC1EC3932BD5",
- "legacy_metadata_key": "78CDB051F025341DBFC1F347633B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C981B1DB9FD5E8694984CA19C8F9F954",
- "derived_salt_first_section_no_de": "4D0D73C3D0C891BF72A5B95925EE9F0C",
- "derived_salt_first_section_third_de": "724414756E6DCD769BB22C85B6251BDB",
- "section_salt": "481143E1E38BEFF26FA4610E8CF87CE3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "53CD30F51A943504638B3758",
- "extended_signed_metadata_key_hmac_key": "9279A830F25F834C990C31AAA623BAA266D69372452C7E20D4E8C5528FBE690B",
- "extended_signed_section_aes_key": "B4419FF999E54CBF1E698A7CE21BA81B",
- "extended_unsigned_metadata_key_hmac_key": "60403BE569ECC7F455A759F171A907CA55D5A607FA1FBF6F2FD962494DCE6A9C",
- "extended_unsigned_section_aes_key": "C1E978AB65F688B7FAFE14E4CBB31661",
- "extended_unsigned_section_mic_hmac_key": "19CD44615FD8E5352DC9ACCB3166BE172EC6E447B20BC6E51346C447C8F67544",
- "key_seed": "6EF7E6F2F84294053026AC12EFAAAF32739D579BB6E5D96A9E3B3B8844E0BBA7",
- "legacy_ldt_key": "08609E4F6423828084E530E6311A568491EEE391DAFBD5EBEBFA97432B8F11D67073BC887958B72DBA431FC15BC38E1BEDDCEEC162B136604D44DB55835BD2A8",
- "legacy_metadata_iv": "32C4CC2383F83115D3C2BA88",
- "legacy_metadata_key_hmac_key": "A72A84EE7AB5846AABD814EAEC02A0B8AA6760689D4D67861A041C7ED589096D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "45D3",
- "expanded_salt": "548DB5D987132D63B76D4D0DF3F10917"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B52401E164CFF489FC76F8BBC746B0BA",
- "legacy_metadata_key": "8EF3B341643E9AC9094068B6A059"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7F98DAACF6049D99BC72C6466475A369",
- "derived_salt_first_section_no_de": "1DE5209AEB470F5FA6CBCABAD5497A16",
- "derived_salt_first_section_third_de": "1B136AE6F86136B4EF1557B3B19C6DC3",
- "section_salt": "C90D4ACD0CE2F299F9D6F0838DEA99DB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8F6CE2CF7CDC5A3493B0B70B",
- "extended_signed_metadata_key_hmac_key": "CDEAF74212BAD354C63B4B0C2B74B733AC2E51C1D4CF195D40655AD46AB6840A",
- "extended_signed_section_aes_key": "C5DD7201B174FA68AC40DDAB37C7EBD7",
- "extended_unsigned_metadata_key_hmac_key": "835EFB138D47C6A37B0CDF1614E94337D9039AE98221D812F13C2E998E0769E7",
- "extended_unsigned_section_aes_key": "54151BFFA31AA93F4DE802408285389C",
- "extended_unsigned_section_mic_hmac_key": "EE618D0916F0E5CCD35C9973EB4295189A717CC5E6F2E1FDA6CDE9F8CC9B80DC",
- "key_seed": "EE9C5E95FAA02A11861CB3CA40A663A3F63CBB0AB67C532800C866C45BBFE6AE",
- "legacy_ldt_key": "4360FCE62CB8DBF96D40EC4DBDD030D22F4F1115F2C6C6C5C962D3EF6DBDF59A45E4C9207844B08D7CAE99CC45C1C341F977ADA92E1755101A75F34056A2F58E",
- "legacy_metadata_iv": "2C83C8399E321463B8D0D85B",
- "legacy_metadata_key_hmac_key": "3AB368E12CFAD9B5E32177AE818B7DBD2C2711E206758C09D67E759AF9D9991B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6C17",
- "expanded_salt": "10845E1CB8CC4D3A00FD07F9E97A5DDB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "31291C713A671018E01E6B1B3FBB4496",
- "legacy_metadata_key": "3FEC29378E42EFA06BBECFF046B7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "423D2A748D3D364EFC61FD717BD995BF",
- "derived_salt_first_section_no_de": "7DD32ABEC8A981F9A6996997283E272C",
- "derived_salt_first_section_third_de": "C96033BEEF82E84285436CE792F9D2B9",
- "section_salt": "03890363DF46A10402DD6CAF091AE8C0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "18BC26B477AF15CF937FEAEA",
- "extended_signed_metadata_key_hmac_key": "02A2DC677A25C9867441738F246A82842FF0734BFA6A613372964D5696F14E2C",
- "extended_signed_section_aes_key": "B471B5B43AD4B2D032FAA409EA6B8584",
- "extended_unsigned_metadata_key_hmac_key": "5793CFBBA1C9A47BCECF094BC39717987B74D8EC854A668D2B22170D29C90D69",
- "extended_unsigned_section_aes_key": "360CBB5BB1489C5F7852E83DD7A6A4D8",
- "extended_unsigned_section_mic_hmac_key": "B1D701F8EC46ECD7DA7F0FE505C9432559709E86874BF7FF706B50B60A7BD129",
- "key_seed": "BC1D0AB302F3334E84C4866306F6CFE82E1AC878E55CF112D966F10AA24B7426",
- "legacy_ldt_key": "DA2E74B3F016E6D7BD666FFE50028A3EE2F1B8406354008A62BD60DF86BDDC01C04CA150067ED8A39912A47F65D95D8B8F68D7F4D4883E06A1D226E513A1EE74",
- "legacy_metadata_iv": "09483D2039D7768FC1CE7E5C",
- "legacy_metadata_key_hmac_key": "B19FD88F068F7DB56D823E1B575B7BC2AA1F979A85271A1F4A3CFD58E25AC819"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6B43",
- "expanded_salt": "35E49F24E8C64E68F4AEEED2A7CD6838"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4E44518F9D1FD865CF31554CAB8F1590",
- "legacy_metadata_key": "45CF1884517AE1788D640DF9713C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9E58367A7A0AB1049DD3208964F98111",
- "derived_salt_first_section_no_de": "F2391CBCF6090F171B79084C72791F19",
- "derived_salt_first_section_third_de": "3099F572D351634C9C554B14F56B7332",
- "section_salt": "D903F763BCB24DBF2775719BC007D4FA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B021F313965CF795D9D5BD27",
- "extended_signed_metadata_key_hmac_key": "6414350EA1137CAC64C7D87D8FE1CD0265F00687433F41EB27D5DF30A1A86083",
- "extended_signed_section_aes_key": "C4C80F02F41EB9AA357CD6E32830AB5E",
- "extended_unsigned_metadata_key_hmac_key": "99C33F66155372A1CE39FF1FECBD856CC3A2B621E649373AC288DE6335E60CDB",
- "extended_unsigned_section_aes_key": "2FD05805701699A1AC7B47B497DF1A8E",
- "extended_unsigned_section_mic_hmac_key": "E015A2A4BB6DB49BBED07E90DD3D9D65155F11D28DC264CEC985AF19698C05EF",
- "key_seed": "0A10C3AB2672E981E2BAC578467838A72433F4DA756AF92D8FE4E8DC17C6D330",
- "legacy_ldt_key": "977F4201CAECC054148A2ADDA6AE6876F09BE987BB18A00A42D95063D9AD8EE0587191500C1AEACFDFCEE2C8EE4CEE1C9071F4D821F8E290DEEB8BFD96547AFD",
- "legacy_metadata_iv": "7B9A45373A0F057DDE1AECFE",
- "legacy_metadata_key_hmac_key": "01952B17DB07EF88A6BDF0E49DCE5BCFA682C5A96B585E875C994F6F50D859F4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7A50",
- "expanded_salt": "C5ED46E08209DC7922F0FBC17CDC15F5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5C4F6BD2238B37A1848909D242212294",
- "legacy_metadata_key": "C9EC73DAD27E9E938647D1BC5746"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F317E1FB8ED1E4EEBCABFD7E61147CD0",
- "derived_salt_first_section_no_de": "AB45FF4205EB5A10B28F730AB908F5AF",
- "derived_salt_first_section_third_de": "A07784260AFC2274C30C351234507042",
- "section_salt": "E135E1D66EA4349B3E4F9355446CEB7F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DE2AA043143D39F94B4DA0D6",
- "extended_signed_metadata_key_hmac_key": "09DBE1B8D9028C0E430876F77635462FDF1A47A7BC9C1083A3D7BEAEB00336A9",
- "extended_signed_section_aes_key": "9EA9C825C1F92F85D104F157BD9D5D42",
- "extended_unsigned_metadata_key_hmac_key": "8210699C2BF9D150839E793066DC2B1F00798E4E12E86CE82B81389C8267EBF4",
- "extended_unsigned_section_aes_key": "F4F31611FC95D7DFD2AD30FEA3E4A9FC",
- "extended_unsigned_section_mic_hmac_key": "D805CF3909DD02FC551A4ECF8E97ECAEFA7407F839D7C6FD6262CC406527CD09",
- "key_seed": "FA91CF7ACBDB1FA101AB4687B388B633B0BB741C46EF3CED9D398C34F021DA17",
- "legacy_ldt_key": "0FC8693B01339AC2F769063C13F0DE7F296FDC62E33C76D82BB56AF405A6903F74F59410FAA72AB2B7E18437583AB85862C4A64DA2A04F1AA8F6DBABCAB562D1",
- "legacy_metadata_iv": "AD829C7E526F3F63C5AB1911",
- "legacy_metadata_key_hmac_key": "DB0F138BFA49FD792B6370BDF82748B0FBBF9657CB19FB466D1CD6299D45FFB9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "02C3",
- "expanded_salt": "9A02CE85FC7DBF870F63310B4B22FAD9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6154B48D3DA5595E3565E289D33259FC",
- "legacy_metadata_key": "7F501F0904C9789E497C4C630047"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0389B8B314CBD43E2567577DE84D825F",
- "derived_salt_first_section_no_de": "2AA413EA2863CA25B0ED298DD8BC99DA",
- "derived_salt_first_section_third_de": "26F723EF0D6EE466FEF9C59322EA5D1F",
- "section_salt": "01D532882A0F565BFE6BE4D3BB54D4CC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6EC989581097EA8763B5C2D5",
- "extended_signed_metadata_key_hmac_key": "9A2C3918BCEC167D9557D1C370A7242192FE841AD7897BE77D24267FBD99FEC9",
- "extended_signed_section_aes_key": "707C7B6525B602C2B48F22A647926EC8",
- "extended_unsigned_metadata_key_hmac_key": "5CB6AE13E286B6FC3B2AF9934391A6F7D751ED5CC2456C40099DCDFFD464A13C",
- "extended_unsigned_section_aes_key": "93A160947DFD945C281339FE280633A5",
- "extended_unsigned_section_mic_hmac_key": "38EE8A1D48D908992741248383089E6F1A989D5D80748467BF6313234B4AA192",
- "key_seed": "6B24EA1EEE17F6BB16C62F88733C072D31B4181072DD9A6DF6D6ADC640484FDB",
- "legacy_ldt_key": "D7282671B030B7162052E28B054E6823BADA7B6825ECE2E354EBDE300EB484E53E184EB0F7D05861882A503310C13A8F6BAE55469BED8839ED03EC524F28FA61",
- "legacy_metadata_iv": "666B17BE0E694B1A768C1E80",
- "legacy_metadata_key_hmac_key": "CF551E9A28385DFAF0E8E76609417C045707C7025AC778FA20AF562090F3EDDF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7147",
- "expanded_salt": "B0D97F50A570B8F894609AF261BBD8DC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "739735787C226071CE7BE6974E847ED4",
- "legacy_metadata_key": "62F6D05AAA1A30260708C9C8E62E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EF6AEAD1EA759E2F4646F67732B0C525",
- "derived_salt_first_section_no_de": "9D26A12911F9E7F94ECB00D25AA1F084",
- "derived_salt_first_section_third_de": "A49B592E9591741F3B547D185C33C89F",
- "section_salt": "8B757A40C261DD4634F6C7E638109E82"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AF443E08F99A435EE26C5253",
- "extended_signed_metadata_key_hmac_key": "CB35372F245597C0A28C3901AB7B8F2D6BBB7BFAC1F2A79C1C0B56C893F4F8B2",
- "extended_signed_section_aes_key": "C296689DE91AE3841EF8A0823BC15E47",
- "extended_unsigned_metadata_key_hmac_key": "F09B2FDE5E0070F5A1250F6BC8DA54AC2781356BF1CAA294BF39FD95630B08E2",
- "extended_unsigned_section_aes_key": "588B596EFBAB8C23BEC99E619E3AFB8D",
- "extended_unsigned_section_mic_hmac_key": "D72F2B10DEE0496F01724515678FA8E1592B59F4CD6C43A20044F56D8123EDCC",
- "key_seed": "24D3B97CFF4D50BD8C173A9E6B85B931294CF1AE6F0AFD094829000D337B7F7D",
- "legacy_ldt_key": "7ECB3442C96DCABCD50146309550A23DDFBB4D9A26B7176A3ED79DFF098717706AEE463E22EA11AEFC28509FC911B6E6D77E49D41F045BBBEA45C24C699E6F8E",
- "legacy_metadata_iv": "4820761CA3926F92B3BA8594",
- "legacy_metadata_key_hmac_key": "214380CD57BEE793EF708680171E34F11BDE4608781A661ABEDBFD29EA0A2070"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "26C9",
- "expanded_salt": "9098206122C9A05AF1B0031A1BE31D13"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CF2ADC226923EC5A5E2E0B26ADAFE9D7",
- "legacy_metadata_key": "29BA0A8AFDB7DB77E4E833D825AA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5EA361E17633ACEE033196D363E8D690",
- "derived_salt_first_section_no_de": "6DE1FCC488CA0FFEE7DC9DE40D820832",
- "derived_salt_first_section_third_de": "4337FC6B4458E97BF8ADBCB0BE99FB01",
- "section_salt": "923F7EB829A107C33344C9563E212570"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D08A5DB8F83DE46E2E3D86CB",
- "extended_signed_metadata_key_hmac_key": "6F37611F0E409A93CFDFD64CC4F202B635D48A32F48A626360F437790F353945",
- "extended_signed_section_aes_key": "CDFF1CC561B384ADBF6F4010EE6162A4",
- "extended_unsigned_metadata_key_hmac_key": "4BA54FB5076173692DC5F7AE26BB99DE85D358977FD62BD3098AC8B1736C7B18",
- "extended_unsigned_section_aes_key": "00A9A9DC444B55D34168D453F195FD2D",
- "extended_unsigned_section_mic_hmac_key": "C1A78901C919B99AAB5AE0F9A8C757D0BF71717F2EC1FC2AB7CC6EF8D2F2FCF3",
- "key_seed": "852852B9DA527F9B1E7023C1C115624E18A2AF08191C7D9BEFD2DF7150F8407F",
- "legacy_ldt_key": "A16098B48D95951010B69784511FA974651B3DA8AA8BF049DDCF3CCF8BD32EC0CA590BE738952D45B9551D4CE4AD514E4E14D157199834BE1AAF19182C817F02",
- "legacy_metadata_iv": "FE7C594AC7C26C57B11CA35D",
- "legacy_metadata_key_hmac_key": "6736B79352B59A4EA1ACC77BB820BFD1A0A727DDF1ABAB2D8C4138525DBC5AA7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6638",
- "expanded_salt": "76A0D63E6943BC9AB8F9E2097D86647D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F8921BD5DA7F0BB26711BAD8F8E9134D",
- "legacy_metadata_key": "F5C41B448F4044593A64945D8576"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EE18621DF9046A4F7BA76E5C37EA81EA",
- "derived_salt_first_section_no_de": "F7EA401F49EEDB519446C7DBB2C65E71",
- "derived_salt_first_section_third_de": "B4324A2671ABD0D2487E8883D4434852",
- "section_salt": "D7678C73EA3E8EAD3792F7BC741EE374"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B684EA7D90D8D160345B12BB",
- "extended_signed_metadata_key_hmac_key": "BEC5C77AEAAE65E1C94220582CAFF91F73314172FFA62047A739D0D63F9DD597",
- "extended_signed_section_aes_key": "F40F56C05333488D53C38176CDFF5F1F",
- "extended_unsigned_metadata_key_hmac_key": "15FF76C9EB83864F882765FDA6A8EB90A1FD8B56694EBB0CA4534294D3C1C977",
- "extended_unsigned_section_aes_key": "CCC15A1B27411056274346C8768DFF49",
- "extended_unsigned_section_mic_hmac_key": "C77E8C226C963D521945B2C82C634BF11CC3C910CCBBF562EC9BFEAD3DF17B86",
- "key_seed": "6040B7A73AC1505066F05381440B585FAFD5235A26E4611A19FCC0CDF9E0D929",
- "legacy_ldt_key": "543321D4CE35CDEA5A059586CC9F9A81F586716A704605E0256A75896C34FB30E45381FF9C44B66862EC8A788AE33505068E0A344900CDBC931973E0BB0C74AE",
- "legacy_metadata_iv": "62A56ADAE4F2E3A176743752",
- "legacy_metadata_key_hmac_key": "9A9061323F4D91A871F7E3B040FB2193AA1ECE03CBCCA1700687891E54070506"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "83F4",
- "expanded_salt": "E325390E50509C19095A74BB596E4771"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F02411AAC476B9C635B5941A8C4E0D0D",
- "legacy_metadata_key": "C15BF90C78CABBC83DE6BF6C17A1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "833A6C783A061109797F8F353F0B85FA",
- "derived_salt_first_section_no_de": "34A7AC334156AA1D6541A5BC4275C915",
- "derived_salt_first_section_third_de": "3B653428F1106C64E887D78EFEA3489B",
- "section_salt": "2AAB5DDEA0EBA049C7346F3C9A61632B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7B0084A8D5A2E3FF6B0C1352",
- "extended_signed_metadata_key_hmac_key": "BC4C62E1F0792783361BE1DAD99850252D4FFD8E54B0361EDB5B6AAD401B3FA0",
- "extended_signed_section_aes_key": "4B19D0270EC5CFAFE21474725AB14CEE",
- "extended_unsigned_metadata_key_hmac_key": "B08DB7B812CCD6B4D910C238C9AC84B7870DEEC2DEAE2BA5DAA6EE5B51D4ADE7",
- "extended_unsigned_section_aes_key": "5767119DF5A629C36CB705E807BDBC71",
- "extended_unsigned_section_mic_hmac_key": "18F49B50576221A12199A1C9FE045FC95C9A4F93204FF6022D464B5F84FF6F33",
- "key_seed": "C8F245312A49E2C2DF5958711ABF94EAAF59666A93C3D07BF4E9CCD34F8D4B66",
- "legacy_ldt_key": "224F4F2BE7BF39704CB66051506BE2258E4396A36D1504C3717A82529FF7AD69EBC7C2381246614BD51A124205BE5B8EFA9F48007DBD2CBA7DB07AFA0106D72D",
- "legacy_metadata_iv": "F8CFE4AB41DA8E5AAB4C6166",
- "legacy_metadata_key_hmac_key": "87055F8A6B7EBCDEB3BDE051398A0D3D2E855DA2F255211E9CBB1683C2D02090"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AD15",
- "expanded_salt": "539B37626D20E3684CE067D38E3CBDE0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A0C03728B436A576F8EAC59FC01BB796",
- "legacy_metadata_key": "B92EA4D2507817662450C84F1811"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A95A38447224F607A7E496673BF23050",
- "derived_salt_first_section_no_de": "2A642BD89643CE012A2A0F2E15A0FCA3",
- "derived_salt_first_section_third_de": "C6BC7B63DB89C483BF0C0C084630B2D2",
- "section_salt": "383349B8C08DF73266BA896A47E1F4DE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1D7FA821012899743CAE6C9D",
- "extended_signed_metadata_key_hmac_key": "A1ACF6D1F0D82927AE0D4C57ADF1D599CE00CE8901C642203C3200BD0ECD4A29",
- "extended_signed_section_aes_key": "0CC989F9931E299ED1B10483431C5D0A",
- "extended_unsigned_metadata_key_hmac_key": "802A26EEF3387FC4B07218D87AA9DE0CBC88CF38946DD8A8947A3B4EECDFCD1C",
- "extended_unsigned_section_aes_key": "690490695584A3FC69A57E765BE78BFE",
- "extended_unsigned_section_mic_hmac_key": "3A621B657DEA92CBAF7BB6AE0C3075717B5A1D83A4798EAB46E2CBECC0E59515",
- "key_seed": "BAA9082155C34A482EEA7135DD3C5F40F9566517CE99D205401159E8802C4BA1",
- "legacy_ldt_key": "916D4BC556A39CED7A0B407CA3C80E42F90EAACC7E9834B3B79B2DA319AF4F5D276AF4E94E7726AA108AA545BAE641ECEA80FB76FFF3079700A5F31726734AFB",
- "legacy_metadata_iv": "83CC065434FB3F8A90400688",
- "legacy_metadata_key_hmac_key": "2CE27AE94DD32E10CDA8482C710A51CBEACB006C31F8C78665344D6D3C704E88"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "32CF",
- "expanded_salt": "8B4B671FB5A34A34BC84A9E175162A2D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "596EFDB5C80C123E00FD2D0687E3AAE7",
- "legacy_metadata_key": "1493155A463132337999B239D2E1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6FED30EC0B8218DC794B64E4E6FBE120",
- "derived_salt_first_section_no_de": "C6AD7D772A1B398754FF0848004D9CE8",
- "derived_salt_first_section_third_de": "0E51410D835B48260859658DE150D953",
- "section_salt": "1538B935E6D2A178CF11126C4B3AECF5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7FD40BF13FAD9FF7DF2728AD",
- "extended_signed_metadata_key_hmac_key": "A0A4D18540EE6DF4B6281416C17EFC626A29DD8BBBEA71D217D831AF1E9FFD50",
- "extended_signed_section_aes_key": "9E19059E9D33C496B546F0E927F748ED",
- "extended_unsigned_metadata_key_hmac_key": "DD8AD3116BE42A8464EFC5C812B5A7FD09A4EBDFC778CA003B080869A6E7447C",
- "extended_unsigned_section_aes_key": "BC5107973611732A6DC613C12BD96611",
- "extended_unsigned_section_mic_hmac_key": "58F1C38B997AB2A73FF2128F6069700C88E5D5BCBF36C0FAE9E89E4D78A74286",
- "key_seed": "22E6A975A101C5061B1442627A0D261CF62972F0A27505082005EF047FD8D523",
- "legacy_ldt_key": "F706843425B28F8FD82C0258B383A68A5F4144C2D92DA25D235D514761EB6640672E2D92C73EFCBB4DF11D176DFC33E501DC15ABF734B73A9AC963DFE19B1EBF",
- "legacy_metadata_iv": "0551760E25CDAEE5C31C051F",
- "legacy_metadata_key_hmac_key": "0718508DBF984AE1E52418ED53FF097C5582FB4330B00AAA0936AEF444204FCA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EC80",
- "expanded_salt": "F1B27E3BD12FA63AC9165D096C2F1869"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "803F4F331ED121D2B4D83342C445FE9B",
- "legacy_metadata_key": "9ED8D68B0A269ED1C61762E90772"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9387DDF6DABF80FA9B66C478F7CA4F8B",
- "derived_salt_first_section_no_de": "7FE141CE7238503894DDD76A4849F5F5",
- "derived_salt_first_section_third_de": "7D1A09C6B8EFE67FBF772C95FDD27123",
- "section_salt": "C083BF9D01ED1734665EF4CA5650895A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "515832E6A7AF98B3EF196803",
- "extended_signed_metadata_key_hmac_key": "D70AFC7024511A3E76ABDB45FBA6FA0C2772FE1A205560AE98A1C9593F617477",
- "extended_signed_section_aes_key": "8125126DD27031D65F802D15404E2635",
- "extended_unsigned_metadata_key_hmac_key": "83E89EFAEBB11BA86E2C4027B3ECD825DEBFBFCC5F0ED91FE2B09DFD0F356907",
- "extended_unsigned_section_aes_key": "5C2E5DE2404526175A2A915F924BC5AF",
- "extended_unsigned_section_mic_hmac_key": "CE78D8C3CE2D524B2C94EC7C495014EF552DDC9E5B6B039D5BC52E91433C763B",
- "key_seed": "D922D669EE55E8C1C224B1DB954ED6513EEA67939739E46EFFAA685DF5E1919F",
- "legacy_ldt_key": "FCC5B247C16194C3B36BD8D934477BA4BF6483F12CCF2F8441C88FDA4F6EBC26F1C52A73724980325133B400A46A06B6DA416C319CCAB03BD636CE944A888594",
- "legacy_metadata_iv": "5C8DC04D49816E0C2B615A91",
- "legacy_metadata_key_hmac_key": "1299E088316B035D05421922C4053D35A77DF347C82BF35332DDC010129FA5BA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A413",
- "expanded_salt": "0B59B4995230D831E976C59A285AE97C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DEB1CF35E39B1011DCEFB14EE8461C33",
- "legacy_metadata_key": "DB63D9A8AF01199BDB9DD79FFAEB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1B6EFA6DEEA91C8200388C72F3A45B7C",
- "derived_salt_first_section_no_de": "818432B74ACCEB084902966942C032D4",
- "derived_salt_first_section_third_de": "DFE807A2DF4EA8FC7F1A614AEA697950",
- "section_salt": "646ABDDD381549FF20099255C2678D16"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "760F90C4EC293032F7D14825",
- "extended_signed_metadata_key_hmac_key": "D39B59E5B5A92C24F8B88D5226EE9DFAD9F8223EAD06F44754A5A81C0C702012",
- "extended_signed_section_aes_key": "DB8C07E658CE9419DB7801CFAE61BE76",
- "extended_unsigned_metadata_key_hmac_key": "D7320F30F3372DF4891177E87C59E760EA01941EFCDBFD42CA09F98F81339B45",
- "extended_unsigned_section_aes_key": "C46C8A45DE566DE3C3E32420B7F364F4",
- "extended_unsigned_section_mic_hmac_key": "0B61F0CC9EF5CA6955E49DFFD25EB11729EE4DD05F3A439CDCC5932A62F35479",
- "key_seed": "428194DD988961148DCA3B659773B2488B8B4ED107E83932CEF3063AC19F7A02",
- "legacy_ldt_key": "9410382AB3C2DDFAD5700E4AE12C5D038CB52D00E9FD86459D1D657D2888827BBFC767288767DAC85CC99482C6608BD3893D30C6EE7F5AAA8D322DEEA8FBBA78",
- "legacy_metadata_iv": "EDBCAC301D7F68CD47FE7E54",
- "legacy_metadata_key_hmac_key": "198ED153F05F5C71476A2C2E3E2D39D2806F002CE0D810BB6B2151D545D72DEB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8135",
- "expanded_salt": "0E27F7FA03D248D5FD7BA8AFBEF3CBE3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9A9F2D85EBA8BAD25773A9B5A59B87E1",
- "legacy_metadata_key": "7D96E0F6281674AAC53D477C915A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7811B2F191250F01852903C811A6539E",
- "derived_salt_first_section_no_de": "B403B97C31B1BB329F0C8B7A042CE89D",
- "derived_salt_first_section_third_de": "900E443506F72D107542194CE98FF933",
- "section_salt": "382A30CAE65ADE456EFA9ED371874765"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "467651ADE38C711BD372FDB2",
- "extended_signed_metadata_key_hmac_key": "5597B003AAE1C3205E347B16F1AEBD484134EEDCD20BCECDC73E0BD3CB136F5F",
- "extended_signed_section_aes_key": "7CD4A75FD5FDAC33E77AD5E208949F72",
- "extended_unsigned_metadata_key_hmac_key": "5220874D7D2368A418B53897151AB6BF962A48A94E4421485035CF2D73875303",
- "extended_unsigned_section_aes_key": "308229BDA47ABCA36C0DD4D634FBCDC4",
- "extended_unsigned_section_mic_hmac_key": "2D6A23A2864E56C290F3CF5EE5A2B352A261A20195E81E4C43B57430286BA5AD",
- "key_seed": "2FDE9962D20FA4EF2828120E88029B68522E23E65B7E5320AFB5BEC0CC4002CC",
- "legacy_ldt_key": "48ED329EF491AA42F29AD9BD483505F777AD55BA6C3291FA1A5846BE0FC0D35BCDAD82E8C149A0F0966BDB006E57C3A10D7B044D5240131AFD7FFA061BC8F196",
- "legacy_metadata_iv": "9DA562B031431EDDC3A88E64",
- "legacy_metadata_key_hmac_key": "839D661B2254EBD8B9988189B2ED80D810968FF6EE0E168A637C9143F59C40A1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "469C",
- "expanded_salt": "16957ECDB3DC18511F43175FC207AA30"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5BEA3E0471B8023FC66A7ABDFB0419BB",
- "legacy_metadata_key": "D9501A46C997004471087AE823E4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "055F992B3E457A952019A7F952248A81",
- "derived_salt_first_section_no_de": "DC2B137729D5F53955B935275994A68C",
- "derived_salt_first_section_third_de": "995802C32F99CB6200B5F797F3E77A45",
- "section_salt": "99CBE6921B161F0B534F7CBAE1E43A29"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AB8DC97E1320C53F87EE2C64",
- "extended_signed_metadata_key_hmac_key": "7D492B3DC52D0E215C7CF64463E0F28ECEF24292E310452373926B82BF2AC872",
- "extended_signed_section_aes_key": "82E6DE4368C7776E154F0DA706EDCFDA",
- "extended_unsigned_metadata_key_hmac_key": "8EF47E3EDC482F1AEBD629FB8013F55DE68E6B6F0A438ABF5AE867E92E0337A1",
- "extended_unsigned_section_aes_key": "37244398F0C7B7EF3B3786D9EE823B6D",
- "extended_unsigned_section_mic_hmac_key": "E602420F49EE5FA532866465104D342597188531D78A5CA73801EFDA49016A9D",
- "key_seed": "ABDC4BFD5F1AF3F52CFA223759E2146C0FADA903FC70C8A6DCDC21D45290ACC5",
- "legacy_ldt_key": "2B4343D39711BB77C2EE1A17CB133C947B6DFB04CE6826B41210C52EAA19F7E8CE7A514384A507A10A67BA5CE560A3CB4E2C97F49CF2EB8FDC0464D6B5621AA7",
- "legacy_metadata_iv": "5FB4E97FCF2CF416E332CF68",
- "legacy_metadata_key_hmac_key": "2232DFF15494803AC9D7A9D88854701250012EDBFF98FEFF2AA217A29AC9C493"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A6E2",
- "expanded_salt": "92784B54B8F34F440C4CAA815518E93E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "604DC7FD9B979543EF3EC4E3C4FAD9EA",
- "legacy_metadata_key": "C41911AEC509783E06CB5BE89702"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F5FC9382627E99D42DC4AC8879C2E255",
- "derived_salt_first_section_no_de": "BC650A1B0A35C9A1764D0DDE69E220E3",
- "derived_salt_first_section_third_de": "BDE89D8E767D39047CF1B478843ADE32",
- "section_salt": "BE3D906F4657CA222BB5001B885348A2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "691A891AD35722B382F2E949",
- "extended_signed_metadata_key_hmac_key": "AB085432B7FF540C41EF8BEC3FB1AE1882F59BB71845D2737D90BF6494D48CA6",
- "extended_signed_section_aes_key": "679E0D1DF9E8808E53C8A4890E063C4D",
- "extended_unsigned_metadata_key_hmac_key": "F9A4AC87D2327E791BEE274169EE07F307736931AD7CADD41BEA788914287435",
- "extended_unsigned_section_aes_key": "8C8A97816D56B08EE8678DDF4F26B04B",
- "extended_unsigned_section_mic_hmac_key": "AE05F1A11B5168533CEF630420556AED27951651B3B9DF27799E0D643BD7C934",
- "key_seed": "17A9FABC60242C553155F955F093205BD3DCE14C24099B3223A66BB7A70BD4ED",
- "legacy_ldt_key": "90261C23875E7F1167C3481FA62648D22462CD41ACD754231829A622B57CCA5B6B00459510E67102D1B4E8B6CDE2993CC3A75CE679B79705335284E27D64586C",
- "legacy_metadata_iv": "08AB2100D9112BD74164B900",
- "legacy_metadata_key_hmac_key": "551401899BE367BCA06165E0DDF17D120E612A65251B654EACF101E383FD4615"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "57B9",
- "expanded_salt": "A644402D8457B9DD52E6159BDC74EB2A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DD8D70E16564FEFF87739725C144E49C",
- "legacy_metadata_key": "ADFFA7D2F60363EA904F94E4EBFD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "861A1372A267A5EB824998750C009D4C",
- "derived_salt_first_section_no_de": "CACFC41EC38F5320E3E18B646051D165",
- "derived_salt_first_section_third_de": "75551078D4D813942F5A8B0B03ADAACA",
- "section_salt": "C1BB17DC61DA87BA0D64FDFF2023577A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AA16F3F92AE1F689A5405BF2",
- "extended_signed_metadata_key_hmac_key": "0CD58A3DCE84A415699818F0353BDF163F54FBDA7DBA967A4AEC178181C6EECC",
- "extended_signed_section_aes_key": "644DD2A23974CB25331F5A7A24A9491B",
- "extended_unsigned_metadata_key_hmac_key": "8C62D6A31B18B13E902480A2280AA01A9BEB5B6E42D44FFA83AB016F57571FDA",
- "extended_unsigned_section_aes_key": "B274C5E04380DD63BC4618ADCD0DCE63",
- "extended_unsigned_section_mic_hmac_key": "033F333FB0920788DC2E5B0B2639DDA9D3D244C0BAF3611105DDBCCA1FADD264",
- "key_seed": "622C58B3908245B39D7BCAF12722CBD1C3E626CF39A56F64A0F63F0183221B5D",
- "legacy_ldt_key": "F074AC090370344FD312C038640E10ACC3216288DD31F2C6ABCAD6666F88C1A9987DC0A9D7A597A1BA293C50664248BAD45EBAA3BF6409FB3B857F15B8E93E11",
- "legacy_metadata_iv": "321E2588C31830FF7F250518",
- "legacy_metadata_key_hmac_key": "E53469E225CC91433F40BCC2FA8DABB02F1E6A38AD1C7545EA58225380DA9509"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B33B",
- "expanded_salt": "94AFC735317C70D428723821C482C7DA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E0E85299D676429F0B5B3E4092B74633",
- "legacy_metadata_key": "ED1545CBDC93ECA15890FF6CCD33"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F3F348AD3EF47A159937895AE0C5C9FB",
- "derived_salt_first_section_no_de": "92770136F87EE44E1F59B2D00D44C69C",
- "derived_salt_first_section_third_de": "0CA96BAFA180A297AFF49C4ED2717EEB",
- "section_salt": "EFEE6EC5CAB9E6764129931379E9734D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "99017FC883A7E686C72666CF",
- "extended_signed_metadata_key_hmac_key": "5D32A4F66E2005FBDE5F7C945A2F5E080922A9ABE8B0882C6F6CD0545C80270E",
- "extended_signed_section_aes_key": "CD1702A7C7B53335A7BE1490900D03F9",
- "extended_unsigned_metadata_key_hmac_key": "6742FC3AA84C29361A0CD310795627B938833324F616E72CE34327F603121C95",
- "extended_unsigned_section_aes_key": "C2843E74B8E270733F3C8503A135104D",
- "extended_unsigned_section_mic_hmac_key": "F7438251592F3A8F7A694E2491FE81E7C9EC2DB7A0F3B2D77E66267C54BBEAC1",
- "key_seed": "B934F70E023B292667B50C168C09B7E9343246EEA89CA74460F0310A143ED471",
- "legacy_ldt_key": "EB95B6E82763D8B0A103FE65A58DE2E4F175810CBE25663E0C18F9055B2CB2B4918878CAD1B01903068BF323497FD9FEF69094A8302539F72140329660C5886A",
- "legacy_metadata_iv": "0BFF903D883BC79F3E124218",
- "legacy_metadata_key_hmac_key": "F051656E9DFEFE61493E28BECEF3BECBABD28194B0D4E5250E70ACE44C4B40B3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5674",
- "expanded_salt": "98BAC0F4463E2CFD976C1A343CB4CFD4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "08153EFAF3C562428F338310F165248B",
- "legacy_metadata_key": "7524CBAD97D20F51B21C6219DFAB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "85FCB3AA674BD712578549BF54929448",
- "derived_salt_first_section_no_de": "DBA2315C7D532AE4B236D9DF2378D07C",
- "derived_salt_first_section_third_de": "5A0AA236A0F663CB60587BE53FB502B9",
- "section_salt": "80D6DA9F8FB954C0F3FA4FA5043329E8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C09A395A2690BD93C29FFD6B",
- "extended_signed_metadata_key_hmac_key": "F8B365B09443ADC463BD9ACBACBE0EEE6BE8E1D1989305B82FE49624EFD9C600",
- "extended_signed_section_aes_key": "895346AE94D27C4DE7148FF74888F377",
- "extended_unsigned_metadata_key_hmac_key": "787502CF64E83E5108DE36DB81E9C4C1831F5594D922AD35B9B68489EF57635A",
- "extended_unsigned_section_aes_key": "FA167C9C4A2CC4A7016E81E4124C4FF1",
- "extended_unsigned_section_mic_hmac_key": "A3F20CF923CF73C71036EB7B0235EB49F10FCF4FF99A9A9257A7A4E7E7CF6BCF",
- "key_seed": "F9A169A0B8392374F7028303B9DD21A296AA629A11EFF716A2A86E1BBFA2A9F1",
- "legacy_ldt_key": "CD9B58EA150286143EAE699F7B6ADDE48636E48BD0CCA6F66BCEA0790E5601FD1C3069348369A523A5D9C47A25CEF1921AADDC9F16417DCFF3C366822FCB6EC4",
- "legacy_metadata_iv": "3F2A06F4D34AC582FB0BA0CB",
- "legacy_metadata_key_hmac_key": "E78149A323B6E6236D0EB9FDB0CF7DABCBB278D2AEAF3BA8643170827075334D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DB85",
- "expanded_salt": "9DFD68843C85E734EEDF375B9CA3AF0A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "29EA6DE6F646A00D1EA5FE9F9D969397",
- "legacy_metadata_key": "681BE9263DE1C2987E8063610450"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "76F1B40103B3DFC1BDABB7BEE04FA173",
- "derived_salt_first_section_no_de": "9D321623574C0B8219BCD80BB49A1660",
- "derived_salt_first_section_third_de": "EF91C257530D9C575331D74F7C36F97B",
- "section_salt": "1E4C466645A9FA3E588CAC316C05F8E0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3120D67E978885A7F694280A",
- "extended_signed_metadata_key_hmac_key": "523DAAEDEEB04509EB32EB1D34385B73C4F0CA5FEAA4E4164AEBDD265F125C92",
- "extended_signed_section_aes_key": "B1A6C992CB10AA2419C0BEC30F1C097A",
- "extended_unsigned_metadata_key_hmac_key": "F153017D3B651A30F9039D97A0DD1A8F1270F5776E3AE885F9D739EFCFC6BE67",
- "extended_unsigned_section_aes_key": "F17AAD66691F379C6A75B768AB61D205",
- "extended_unsigned_section_mic_hmac_key": "5A2B0ADE4EEB7419EF7A53AAF128C9F151D5DBEF17AA27867B1EA2CEFC9E3A08",
- "key_seed": "713DFA17016FB5821D21AB863F40CF8B103B5EE4EA7C09E0DDECA75A1A1E6DE5",
- "legacy_ldt_key": "686237E6ADDBD5DB78865B9719F6775052E594FF5E4F981D77A7EBDCE0E657C081F83CA30AEAFC6F63FF6F29925831B309134FB97C9CB976D038A83DC24473B7",
- "legacy_metadata_iv": "B15DA262B6F282428882AA6E",
- "legacy_metadata_key_hmac_key": "3BC385C896D4774AED0ABA5CAA0E7D2F310D0D3C414A5BF50C6FEB5DB4CF9632"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "78CE",
- "expanded_salt": "E10207918ADE30BEC922098073309066"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D86F859F4BDE49A576B189BE639EE354",
- "legacy_metadata_key": "89346248B37497B439203A31477C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B09CE416402F1A6644F803CE715C0561",
- "derived_salt_first_section_no_de": "0403FEA607F4D51ABA466D9A8F6AF1F4",
- "derived_salt_first_section_third_de": "7523ECD0F2E5AC81A2DA2FF8B0F029BD",
- "section_salt": "5D1BC92942435135DD858D66F1C03EEA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3FC416750117AFD992BE04E8",
- "extended_signed_metadata_key_hmac_key": "007B1B2C5A853DEC54FB3FBBBA331DAEE49A6284ADDDF8A9313B8FCB755A77C3",
- "extended_signed_section_aes_key": "2C45F82ABFB8E394CFC38768D51CA41A",
- "extended_unsigned_metadata_key_hmac_key": "A4E52D4F1C66B7C21B95132707C852DDCDCCAF8A1959460A8CD869A30F2BB3EA",
- "extended_unsigned_section_aes_key": "9A940732A985D43C1506A55303511265",
- "extended_unsigned_section_mic_hmac_key": "F493CF9BCDCC5EC8F42F9BCFC53CD90F6C14CF7AD20C3C360737C8570224FB98",
- "key_seed": "610554A4433D680BE41C9670D70845884CBCCFC249EB908EB2CFD80D50670436",
- "legacy_ldt_key": "9D82159B44C76740309F6F5295641021BC9AAFDB81CBF653F7B17839452D4DD4949E79BF48D5AF7C987E36E7DF7500EF2848443D80BE37A86C33087CB51E751E",
- "legacy_metadata_iv": "A02ABC00E58E106F96519724",
- "legacy_metadata_key_hmac_key": "84C4410DCB1680182CAB9046312FC71DDB5B8CE0A1796810A2C4552596A231AD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "437D",
- "expanded_salt": "2FEAA57CED18AC77AD011E76BEA97B08"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DE10A5241185D4268471DA58B8CA4A52",
- "legacy_metadata_key": "06B538EBD24E3BDB66B91B9E5FB3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "368B10E5F6FC2ABF78617DD24D70BDCA",
- "derived_salt_first_section_no_de": "C965076A76889897EDC35B5C3C8FD5B9",
- "derived_salt_first_section_third_de": "6FBAB4540BCE1BF8EF4710EE5D51B3C3",
- "section_salt": "13E3B8A182C53BB9C5B50A0BED89F1E4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "13FCD62DD7752CD17091A338",
- "extended_signed_metadata_key_hmac_key": "24399B7725E1166BE9C7F7FEF91EA2C0C657421A3132D11E4E79D31241026F7B",
- "extended_signed_section_aes_key": "98644921CA0E47096B0CF84AF9AB4011",
- "extended_unsigned_metadata_key_hmac_key": "7A2C3A4B08DFBA61339971EF56189A03627981F1B55C7E799D4EA9D4CC7F904B",
- "extended_unsigned_section_aes_key": "93D4F081416BB014E290758EB4A6ED6E",
- "extended_unsigned_section_mic_hmac_key": "3385D05EDCF9EF3E02A1845A305D462E0198EE6EAAC3D6D2CF3186096F844886",
- "key_seed": "C8A43533976696DCE2D6281A0223A3ACCCA58F19B98D4C7424C64A16DBCFAFA5",
- "legacy_ldt_key": "857F884454A59CB7F48A330AE16A30DF8EAFCF42AC25396FFDD212B4B597B2FBA032E05C9DDB023CDE4861DC4C00AEE43655D9315F0A74549DA65964573A8CE9",
- "legacy_metadata_iv": "D4A7636498C7FD8A8A59CD88",
- "legacy_metadata_key_hmac_key": "1469345BD84DE60D602AF096CE8A01D838244E4F6757A544DB1C80F10DAD74DC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7BD7",
- "expanded_salt": "8D17791048EC98BCC290F7F3C0A12454"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5FF4369934DDF53DC1272005501830F3",
- "legacy_metadata_key": "6BE2C01E235790C02F9F295DE357"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "663A9C8C1207E9DFCCCEDD5861122CCE",
- "derived_salt_first_section_no_de": "4B3CC5FAC83393F378D0BF412C11577B",
- "derived_salt_first_section_third_de": "43F7059A0F1D7209ECBE0C89489E4946",
- "section_salt": "4F1452D32F3F0D435FDAB55624D81C6E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D52E0D905D89E688F300A499",
- "extended_signed_metadata_key_hmac_key": "2382BAEC4846D0513C7390AD87C8850D84AC91D5B2F8432A3306685E14D97D83",
- "extended_signed_section_aes_key": "FB7E6E0EFADB7DE558BC639334EA85C3",
- "extended_unsigned_metadata_key_hmac_key": "00357ADB66836B7E42600690B94E56555F8A8D988D729B951DECDB4698A99F8A",
- "extended_unsigned_section_aes_key": "3F6323B4B2A38CF3F7CB4B16A4471343",
- "extended_unsigned_section_mic_hmac_key": "0BC07308F4A087E63FBA367218F18520284AFA0896383D18B19F106F14E6817B",
- "key_seed": "8BD40DAF0A58A5BDA2637A5E8E966B33F7D787FA10BA6E00216F14623ECB7169",
- "legacy_ldt_key": "622A8045C6AEACF4560FE26D0FB38531FE5D16C797B4CB6CC7A24B9155526301F45E3DCF14BC321FE0275818E99994787A1E1361CDA381B1F88624BDA3EB1793",
- "legacy_metadata_iv": "51A677DFE2895BA71B8BBECE",
- "legacy_metadata_key_hmac_key": "030030CDE05011130F214E00CB02E70F38472A8C8B081301F516C947BE93D21C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E457",
- "expanded_salt": "1D44DC5B8EA1FC49DC1C51DF9EA56606"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BB16ABA207874252AC837CAD7E95A37E",
- "legacy_metadata_key": "B8EEF591C8B39A281AF67A580C14"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CACFDCB8C07E3A52F37737D85C5D60AA",
- "derived_salt_first_section_no_de": "FA4946F484BF9875F9540039516FF56C",
- "derived_salt_first_section_third_de": "040440F2FEBF3BC83CC53EDA63C73BDD",
- "section_salt": "54E7EBCDDFC97412B272A28E700240A2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5890C4AF3C414A661BD015B1",
- "extended_signed_metadata_key_hmac_key": "565BF9BBD43B10EB1399A84452812B94F3417C0E4A9BCFD0710548650B4B99D6",
- "extended_signed_section_aes_key": "9F444C6BE82D43A53B1AFDC7C7C12F50",
- "extended_unsigned_metadata_key_hmac_key": "89B8E394DAEC4EFEE26D2A62C896C562920B29C2DAB4256A5B572573D5327441",
- "extended_unsigned_section_aes_key": "15BF0B47F861031E6F11625FBE75B8C7",
- "extended_unsigned_section_mic_hmac_key": "250379C3032A7F98B1F83A6A08616A546CF01C6B4FFE90FF0A87D90F2F99DE81",
- "key_seed": "D831413A6131C9B579B13A92BEBE5B8C797B263794781AFB602AE6F930C795B4",
- "legacy_ldt_key": "08ABA4A5FF72E210259A1EDB28D73DEC8592C07F73075FF0EFD172FFF506BD7D9D42683C6FF75AA28C158B56DB690AF25FE2CF75166D615728F2FBCB69B20AC7",
- "legacy_metadata_iv": "F91A2381B0540E15582A887A",
- "legacy_metadata_key_hmac_key": "BE17ABC3223F486CB0C2FE459D946F64BA12558DE2BCD1AF702189B535647DF4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BA83",
- "expanded_salt": "B3684D90B9CC1465B85CE4FE3B7A2DB8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "35BE5846260B1616E22D7A23860F83E6",
- "legacy_metadata_key": "D47532068C49709100B673B510CF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "964D3FAF62A281347131F5F4339F49BD",
- "derived_salt_first_section_no_de": "03B3CA754D60EFD6D953C290CD438ACE",
- "derived_salt_first_section_third_de": "E4B1C2F87E9B051A4E064BE9D01FB0FF",
- "section_salt": "BA896FE5EC1353294F29E92C63E7CD6F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5AE35D8A017FAD9EAD2A22CE",
- "extended_signed_metadata_key_hmac_key": "1CE10768A641DABE6F62279873487EBC890A5E6E628DE4ED4124362D1D183CD8",
- "extended_signed_section_aes_key": "75663578FA86FEDBEB216075D8D0BCD4",
- "extended_unsigned_metadata_key_hmac_key": "90062ECF5805C48CFA7B11B90C2313044CAA79121A4861C0EF2BD644093B076F",
- "extended_unsigned_section_aes_key": "DED2F1231969016A38AE368F20FD257A",
- "extended_unsigned_section_mic_hmac_key": "29CA76C6A44C21C924C454163E1375DDAFD29C35D6B137559441BF7F89339B1F",
- "key_seed": "3B9A50917C880C29848BE9CC286C19AB3888F28AD9458333E769D83218E5A194",
- "legacy_ldt_key": "F6FA94C93D0964A5964E591F37E8554F93A20F1AADDB079C021BA3C2DA077DFE6AD691D26D16E360F1B9091298F83308201BAB8D86C6E246A4A44692A72EDC6B",
- "legacy_metadata_iv": "61EB56AF51139CF7026818B6",
- "legacy_metadata_key_hmac_key": "B8CC2F7769DB8D6CF6E02B01FAA10D57B798FC4ADC0758ADDEE8BAEBBBEB299C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "99E1",
- "expanded_salt": "424BB3492545619BDDC5C76C37AD96FE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7A7F257C69B7C39B4F99D015DA62A34D",
- "legacy_metadata_key": "5DB3DBD15F927E109F615913FEA0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9B18A0F4B9E3DDB2AEBB835A2248F29E",
- "derived_salt_first_section_no_de": "0BC818FF8B222314B4543FADCD27C182",
- "derived_salt_first_section_third_de": "B4DC40633BB86EF2846B98D07853CAAD",
- "section_salt": "16F9CFE7C5FD846C842D6609A87C73F7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D7F058A78A782AB66663E239",
- "extended_signed_metadata_key_hmac_key": "B0AA975E83E9335926E123D584CDA870386C469669D0A2DC9BB15832BC7E0C8D",
- "extended_signed_section_aes_key": "63D758FBD9C0CAE2F8D22B4FE135E83A",
- "extended_unsigned_metadata_key_hmac_key": "4C8C250E312285B1CCDAB6D08A3A80EBC435D67FC281569F3CD3A3ADB9ECFB30",
- "extended_unsigned_section_aes_key": "7749BB7634E70275330829820A6E450B",
- "extended_unsigned_section_mic_hmac_key": "64E9667BA3B0C353EFCE597C9D8A09D2555F942526B991BD854C7915FF202E2A",
- "key_seed": "353792AFDF35E38D7FEFDC3A9E97E4D18468EC487216691047659CE809ACCE98",
- "legacy_ldt_key": "715485ACAFD7BE5FBE300B9A4E155F02E196DF834BB5B965921A3F92F9CB45E4A0EC729CE5DE050AFB59BAB5F34938E837EB64208ABF17214F41638085FF4E20",
- "legacy_metadata_iv": "0CF31D7EE096C3BCF2703EAB",
- "legacy_metadata_key_hmac_key": "0590BF3D4224E28EBA127E8516380FDBC0734747929726924862C2CAEED3B1BE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CA81",
- "expanded_salt": "E4C59EB454834783CEDD3CE6035EC734"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A66B07F747173BB39578F16CE6E1CA27",
- "legacy_metadata_key": "C8DBA79C3DF993B8CEF994235DE6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6FB1CEA2C51735B0CDA45767F5B99E18",
- "derived_salt_first_section_no_de": "9E1431B7586D5DDA48E08B0C147CB5C4",
- "derived_salt_first_section_third_de": "07F4E9FA67D3A59D7F835FB4DC49277F",
- "section_salt": "5D32E08B88AEC2407407E87B06095937"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5C3E774907328F49CF0C123F",
- "extended_signed_metadata_key_hmac_key": "1CC79DEB68395CC166CFEE234E8E002C42B0CDEA5A540EC82A9B8C55486D5A02",
- "extended_signed_section_aes_key": "F2A3A3962698AD762BD399F228B31BCD",
- "extended_unsigned_metadata_key_hmac_key": "5753E4481E34199D0F6E4D55025F265D0A7075E49B20B845637CCC2D3C1C7341",
- "extended_unsigned_section_aes_key": "C51A8A302920F79B101E441128E85EC4",
- "extended_unsigned_section_mic_hmac_key": "7F4396C35B3B860DEF52C6DE11895B6C8401B72D084E00E4D109A87F8BCFCEA6",
- "key_seed": "716A47C4272682C3E72D5D9A1761590CEA6125217CC86B23E51D06AFD9A64B96",
- "legacy_ldt_key": "1672EF2E8E92932CC1F9D12A97C515ED3EB1A258983BB2D949D66583FA78397C0F66AD0710B7524D08ADDD8BB27BFEC90FA29983214BDE987C8A2ACD01BD0493",
- "legacy_metadata_iv": "AC2588C6BBB6ABBAA9CEAC07",
- "legacy_metadata_key_hmac_key": "BA5FE709674269368D7B7D9EAF3DE8BF1CD81F8BF7952AB2F0E36857D8F11667"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B91C",
- "expanded_salt": "7031FFD55B0B213B047F4D7BB6399737"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "841F97DB38A2C6819858F92C6D74AEA2",
- "legacy_metadata_key": "36F95138EE97B8C49B0D3C4FAA4F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D521421A435FAF1644DA5BF057B197EF",
- "derived_salt_first_section_no_de": "1ACB4E7A9C36A3EB7955D5D6096B838B",
- "derived_salt_first_section_third_de": "E02EA070D9D17466D7DC6EC74C39F25A",
- "section_salt": "E2C7D8229C1D042FEC15BF03FB6740BF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D452375CC18BE371C5E8FFFD",
- "extended_signed_metadata_key_hmac_key": "51C8928A5F7C1FE53CD612706917E4939738AA6F3333BB42866AE72231D9E475",
- "extended_signed_section_aes_key": "EDAD634830F2D08EA095C043694E5DEB",
- "extended_unsigned_metadata_key_hmac_key": "381F894D7E7DFA86B82E30772C67A1BB0F1A4F37DE75BE1B5B08112C8B7EABE2",
- "extended_unsigned_section_aes_key": "9D87F31BF0ABE64185FE6F859E55F7E2",
- "extended_unsigned_section_mic_hmac_key": "B58D20B95D5EAFECF533B8B2E9495553382D1F49B82BAFB74FBEBA26664367D9",
- "key_seed": "23AD809E7068BE80B172D71A0CBFF583A92189FA19D9BD2A6612FF5E347BFD97",
- "legacy_ldt_key": "2ADFB40BC04EACEDC86BD98DA7C9EF1E84E26F88E81433CB48518D24C638FF68BBD79EC2E1659553DEADC632D460347732DB83C5E9B276DD806ED662A4C57F6D",
- "legacy_metadata_iv": "89D21F1AF196391F6FA0475A",
- "legacy_metadata_key_hmac_key": "B7846841348AEFB9E8A52CAF0341BC621621BE2F372C4C81A00D67D1DBD5BC0F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AFD1",
- "expanded_salt": "49EFC989BC85D0E63A3F83E2117ED8F2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3F49735C7FCF15C646F00FD68B4668D0",
- "legacy_metadata_key": "60CB15FFA4FFF59F550D0B63CD4B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4F8CC8423840760237166B8DFFF19C66",
- "derived_salt_first_section_no_de": "DC9586B634265602D247490C34535556",
- "derived_salt_first_section_third_de": "602A0D2622C9177C5439859239C206FE",
- "section_salt": "9E43C1F899BC8E3F472D04ADFEE0F1B8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "941CC4A581C1D677EFD39CA7",
- "extended_signed_metadata_key_hmac_key": "50FE1323723EAC47807082FB911447BB17B9E850AD0CB812E3F1BD3B72A832FD",
- "extended_signed_section_aes_key": "47A5A39E0D64043BABEE4C3C2C41431E",
- "extended_unsigned_metadata_key_hmac_key": "7BFBA0EBDE74DF2508B737054897E1843B31E49335E7BAE61440D85249B04312",
- "extended_unsigned_section_aes_key": "2E2BEFD6D8D3A619EE1C1DAC720DAF7E",
- "extended_unsigned_section_mic_hmac_key": "76DE3AB9383A0D34C84E9FEE99507298956C795D992F9553CAAC8FB4F15A2351",
- "key_seed": "06585A4E94D335F60F1785867C6AA67B9E65303B122D18F714E55758BA7E7876",
- "legacy_ldt_key": "851F35E90216275802B4FEC8F8769F1DE46BEA75A078B4DD8B94B959E10F9C55F75BDC8152080A746BD2A6019A240ABA758B8049923D4AADE5577F9712C5A620",
- "legacy_metadata_iv": "3836B189B28EB1BD4E6C02E9",
- "legacy_metadata_key_hmac_key": "276AAD985DC1020C3AAF6D62A7A39C65720C1718238F8655DFA60CDF3960A940"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3858",
- "expanded_salt": "A04D1F45D1A1930106637540EA8F0FDB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4C83FDECF12E7B3B33C70FBEA18A30FE",
- "legacy_metadata_key": "F09BCF15DC9EC2AB793D60F83D00"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "859EBE10EF1DB70275D453C3522496C8",
- "derived_salt_first_section_no_de": "3ED026425744C4137DAE20EDF68EA8EF",
- "derived_salt_first_section_third_de": "FA6CE03AE275F69D25C27E57D1D1B526",
- "section_salt": "A57513FE363A246C621BB57119D11170"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "25EB855DA7859D1C4327283D",
- "extended_signed_metadata_key_hmac_key": "71EA88082109D5E8B014855329BBA16A10D9417164E43328BA587483DCB8FCCF",
- "extended_signed_section_aes_key": "1AFDEBA6538E6C13043EB3C5ED9EA24F",
- "extended_unsigned_metadata_key_hmac_key": "DDBB4A6A65C77D85F4FE05F29DFDF072CE9164B074B65E1444D8651870F75E22",
- "extended_unsigned_section_aes_key": "D4EE4C474FD86521369D4077C5209D2B",
- "extended_unsigned_section_mic_hmac_key": "8CD627F7D548E99F77B9B07C0E2DB8923E6BE87E06BE4754DBE8DC24565E4E66",
- "key_seed": "4878B247EE5A2D310CEB475342A61DA042419C9B58ADC4DCECA0EA895FC87967",
- "legacy_ldt_key": "4B6929BE7025B5BF6249F821419588123858B935FC85F38247CDA31A3583E596BA97BECDF68B2955AB55C16823C8D39BCA8F3960A127D8D4E1BB8F077239A19E",
- "legacy_metadata_iv": "339AE0D1324CAE869A2FB7B1",
- "legacy_metadata_key_hmac_key": "510C3305EB1F59BBBFF549C2C2C710AF7FD3A8508452D06228C8A02EBC0C4F0F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "01EA",
- "expanded_salt": "82AF6D17464D81283E5C6F77342D7F24"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9D3713C6AF85463FB3D6A20ABEE51E82",
- "legacy_metadata_key": "7C01F1E0FC42A3813EFED102D940"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2586431BCE19F9417F148ECAC38888E2",
- "derived_salt_first_section_no_de": "92A14E390298EEA0ABE91A17CA5671B3",
- "derived_salt_first_section_third_de": "174E7CFEF03772943F665B2232726030",
- "section_salt": "49814D5ECE44CFDFED13BA3E77F0E0BC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2411BDBA15F3A656C420A86E",
- "extended_signed_metadata_key_hmac_key": "3A610C319171F4F2A4FCB3A1E5F8FE4733DB6C95442622F2AC83E732C658BEF6",
- "extended_signed_section_aes_key": "4697F11F4DB4F6A607F8982CAC7827E8",
- "extended_unsigned_metadata_key_hmac_key": "04F9245C551DA19EF4ED9DCF3E0A8CB3AC7734857023F363FA2014E1C4163117",
- "extended_unsigned_section_aes_key": "3F36355CEFF769F19B0BC6DA75F8E8C3",
- "extended_unsigned_section_mic_hmac_key": "1739829A656971197A3AADA5FBE9A638404AF5D2032B0ACB24AD4A70B7D4FD63",
- "key_seed": "49E00790A96547CB826539A9C0590713D0E6F5899A87EFA1AE734323C2D50EF6",
- "legacy_ldt_key": "7F731AE753C47FEFC94E3B200F91A7ABECA2A8D18E35E8992704FAE9A92676750CD431EC2078C1B85654660D760C5FA4CDD5D8A4DEA4942357E4CD014456CE66",
- "legacy_metadata_iv": "B169BCE06A4D0462746DC339",
- "legacy_metadata_key_hmac_key": "EFFA86E10E1CD44F0460C02270FA1D34DC5607B80651CDDF50E6006C2407753B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "74C1",
- "expanded_salt": "873E44D8A31BF82B455A5E8B9EF2A533"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A1CABDFDFD06E14D4599F5B1EFD13C18",
- "legacy_metadata_key": "10024C433A8EA7C894CEA04EC353"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9B73CEFBFEF330EC2AF9E749A160AE2C",
- "derived_salt_first_section_no_de": "83198CFF41821D775B3F550E07E3A9E2",
- "derived_salt_first_section_third_de": "303C541AA15FF953BC9A3F4CACE90A4D",
- "section_salt": "2BDCFC9CD252227BE458BA4AC6570C66"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "397CCFAEC47DC0BE5F5E12EE",
- "extended_signed_metadata_key_hmac_key": "D6D0BB7172DD79AB1B58DC204B59831B293B723C5AEBBA909548AE138C57F7F1",
- "extended_signed_section_aes_key": "487A0C6E6A6B9864F56B3B59204E2629",
- "extended_unsigned_metadata_key_hmac_key": "63E1DE5178C0FFD39124CBA2F5AAF9CFE7873C5E52037E18C2847A1CF3C576D8",
- "extended_unsigned_section_aes_key": "3CE4B43D7291224DC9E0DFA638C76E00",
- "extended_unsigned_section_mic_hmac_key": "D13D19694A75C27B308CFD328E5D30C450E0119CF62D4C26A806BC0FF7BB3C7A",
- "key_seed": "FB6DF4EC1D84E5AF418BCEFC596F74F81051CC8EDA0A255550B2B1C6A1D09F04",
- "legacy_ldt_key": "BFA97D15B4D1263E8E115817214C4AC1F7396421A34B36E15838016D2885F528B097030FA4B04AE9AC30C2F5ECFD1D1BDA11E5414349E3B3032A30D5989355D0",
- "legacy_metadata_iv": "0AF4F146D52CE292F2C8E598",
- "legacy_metadata_key_hmac_key": "B915BA579644C6C6F279B06DBF79A87D15A686E582A229F83D907A287F80F5C7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A2C5",
- "expanded_salt": "2C97E68D8F504737DA70F4C3F44A16A2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F61D1DBDB0966C0D6083B4BE10FD6019",
- "legacy_metadata_key": "C8C95DAF43DA63CF842B7F930D42"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4EB7315DFAA112ACD6CCE58AC02B55A7",
- "derived_salt_first_section_no_de": "A9C668D2C6C4739B38F05B3B1FBF643D",
- "derived_salt_first_section_third_de": "7F30D11F8329349AFB1C36E9EBF40D5D",
- "section_salt": "2F88152CA51DFBF68E51366830AC9456"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "620FAFBB975961C43A13DBC7",
- "extended_signed_metadata_key_hmac_key": "5A614DDBCAD201298A89DE53A774B9F4BAD138D058AD4B7A8D10E0DB3025DBBD",
- "extended_signed_section_aes_key": "D1236AC0DB441B25BBEE58AB13F393EB",
- "extended_unsigned_metadata_key_hmac_key": "0F9667C3E90F56CFAE9D5B4E1A22DFF5079E54FEE0BDB92536CDEC22DD96F8AF",
- "extended_unsigned_section_aes_key": "9DD90F66F4483E21F117047F324987DA",
- "extended_unsigned_section_mic_hmac_key": "79004DA11DB86B3B5E28539381547FBCAE834864040CDA7B346720E609402E03",
- "key_seed": "6AFF0698054747864955854C64E8FDB40A684242405D0593EB05DEA42CB23038",
- "legacy_ldt_key": "48DFFD1720D23A252857AE6AA3AEB3689785F7CD3185E889604999E57E09ED11D0AE2B2D1476D36D4DDD6D853A9E62BA9A637A282957824A1659C44AE6341D83",
- "legacy_metadata_iv": "B9F73D3739BDB91D196A1B10",
- "legacy_metadata_key_hmac_key": "FBF45FEA74FF971A3A945CBF06284342D86A5ACE38CE4BB8D955A3E37F82F05A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9135",
- "expanded_salt": "A19D1E893836459866C95806C9EB10E2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CC453DEE713481B70F34F4FACF694DE7",
- "legacy_metadata_key": "46B6C6C1C2762F2DE95ED4A5469A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3D6FDF8C5B8D1C1F2E0D3395F46AE6F1",
- "derived_salt_first_section_no_de": "6426D1BFDC2E174CFC7A80B7E716A1AA",
- "derived_salt_first_section_third_de": "CDE205B5CAFA4E0ECE018EC487B8BDED",
- "section_salt": "D0AD1FDB989341696A9ED8685762E5EF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EC7F6F16B1E73B1125D9547A",
- "extended_signed_metadata_key_hmac_key": "CF3B2642E8F032CAB99DC711E597D354EFFC325B1B9B26F28D0E6BD3DF98EE4F",
- "extended_signed_section_aes_key": "B6F8641FA36492FC9198FFF17676578A",
- "extended_unsigned_metadata_key_hmac_key": "DD41307CAA640A2F172423EB48C94BE97955BCEDDE2F49466D7E85D498D1AF97",
- "extended_unsigned_section_aes_key": "98A153AA0B48E1E75D66E089D1BC6754",
- "extended_unsigned_section_mic_hmac_key": "BA4DAFCBF2948544578DD28C1EC7FE1CAEFB468083946724F6B388F6F91D8294",
- "key_seed": "CD76528FD35B8416E27D34F00AC56A7B433F1FEE16C8D0371AC5343ABB6EF2DF",
- "legacy_ldt_key": "92C310D0F8C2654DD639B5A6D47FBFBD1BF14BD16E9AD9C29E0CB5F0DB50ED328F811C65A248E5FDED73BCF6F71EC76AA2386A2078055DF714278C1128BBCE3D",
- "legacy_metadata_iv": "8C5077A2B462F9EC76975633",
- "legacy_metadata_key_hmac_key": "DF551968BED6921755CE96EAD34D63AA33A2F8AEBC186DD95BFDCB7431783D7C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6B8C",
- "expanded_salt": "B1E121ECE61BA8A531F39529B609EC67"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "34ED9E98AE2F237C46ED16A3C1EF2A8E",
- "legacy_metadata_key": "DBC15EA2B53EA0A89A473D6FBA10"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "372B3F04C3D57F23FF6DE8EC72897A9A",
- "derived_salt_first_section_no_de": "5EC89CC1AF212AF013ED4CE680E993CE",
- "derived_salt_first_section_third_de": "0BCBB74F36652B81ED438B66BC982A40",
- "section_salt": "6470960D50622586ECBE69A1160CF17A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7791ED9BC8544399B796C4AE",
- "extended_signed_metadata_key_hmac_key": "DCCF120C39BBF26183A732F1EC3EC2C2165E0031C126955913AF6536D2E85B44",
- "extended_signed_section_aes_key": "72F92910AF7632FD09DEBC6C5CD07A88",
- "extended_unsigned_metadata_key_hmac_key": "245589D335B7881127FD06E9CDEE8C83A31E0DCC5D9C43D51FE4AC827A938323",
- "extended_unsigned_section_aes_key": "5798E11BC4086AA93F1F6B06C27E3F05",
- "extended_unsigned_section_mic_hmac_key": "B8D4B6A7597662261A88C91B469653826D26B7A815A67FCF1518525351B29858",
- "key_seed": "A1A7ABBA7C3C4B24B865CDC8477F958FFA316D89F45B703256A25A7D00C87540",
- "legacy_ldt_key": "6DB567DB626270E1B6BC14BEE56E61015EF894F7455080C33891488C590AF5991475E0BD9A6B7DDC90254F4D2C32E2FEB353973904A6E8249492002C82C7A656",
- "legacy_metadata_iv": "AE7799338AE619E90EDD7F9C",
- "legacy_metadata_key_hmac_key": "BC3CCC1DA136635FAED7C218D688AF4D45EC17915F0CF2FBEE5FCCA8B94272A6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "36A6",
- "expanded_salt": "34DF0B66A16126001671FA65362011C0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0E0A74492B99694473CDB411B33ECD00",
- "legacy_metadata_key": "BB7295E248C59809F077A3794D15"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1C1DE2A7292D86C244DD1608646E8587",
- "derived_salt_first_section_no_de": "F7DD59D993967264A70DC36B7BD550F1",
- "derived_salt_first_section_third_de": "A0C4E9299CA6E0286B4D8029522B2D0E",
- "section_salt": "CF7D82E2B93F0EBD9B6AAB4F2794358A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8C6F658284D46EA472D5F040",
- "extended_signed_metadata_key_hmac_key": "8C53EE98C1312DAA09F7C10D6F98A49DD0C68616E30CC87703839D64214A1A9F",
- "extended_signed_section_aes_key": "F83F0A5BD0B798B9246720892FE4D101",
- "extended_unsigned_metadata_key_hmac_key": "6FCFE5C1787559A034C56448BF5C9F7CF0CE4A2E8E32EAA3A3B44B306EDAAF02",
- "extended_unsigned_section_aes_key": "7651B91695C6CA91C0FBD8C73EC74311",
- "extended_unsigned_section_mic_hmac_key": "FE9845E97138B398A978E77F60F45A4031E8BF262A49371B01250CF0AF923C5B",
- "key_seed": "167CEDF11E287767A6DE90273AFFBF60A6E3E537EA03F89EA25E67B8929DCDC6",
- "legacy_ldt_key": "E93DC2A54BBD0F1F6095DEF4DBF7B7BCA462EB500C1D250F361F6C0FCB421EC160083F5627DD21EC6E9E0C7B4A244CD8D3E06883C00AFB5FAA128243D5FD5E1B",
- "legacy_metadata_iv": "58242D9E10F590916BD2D5EF",
- "legacy_metadata_key_hmac_key": "24D2F2AD1F19090EAFD3CC2B7B7FD8C157F59720D6AE8152792218693E003A1C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C8F2",
- "expanded_salt": "C761BD47447B86E9089D2D27BE43D765"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DA4F15217ACBD836C701A9A1C2DAFEB0",
- "legacy_metadata_key": "AA9D984CDB0407246E6846923093"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F843D3D98C5DBB53B92245AC272EBE19",
- "derived_salt_first_section_no_de": "5A0CAB5ED0B14E51BA3B46EB1F2FB556",
- "derived_salt_first_section_third_de": "1904265BFC63609C251E2AB18566CA1A",
- "section_salt": "A2FD9F3B331193A2E18AE12AB63C35E0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "806EEF166A1E9D1D94D9E452",
- "extended_signed_metadata_key_hmac_key": "0AB7C6EA1E91964D01E820E2F98B3FBC2A52DA5AF2DC96F44D717D7297F0716A",
- "extended_signed_section_aes_key": "E08D8A84CF82D5C36D0C60EA748F6FBC",
- "extended_unsigned_metadata_key_hmac_key": "3300A6D82B99384BD4FEEFF200F7EAFC47A0E70FFF92B68E96BC69E91956ED5C",
- "extended_unsigned_section_aes_key": "9A0E51CBF94B46CB0C1F59CD60427101",
- "extended_unsigned_section_mic_hmac_key": "0914CF3746E73C50884DB3F698904701320E8B45E5B2D9F4B6A40C598CF43A9E",
- "key_seed": "AA8129D53BF23CEE5BBDD27CC149BE3EBA5105E783AE8E3EF46B2C95905AD776",
- "legacy_ldt_key": "19E25CA46DB99D64973E13297788A6848DC873D73F24A2E1D95459E26AF7C91A497F0BAD0A65081EF7F87C37F549F874DDD61F27955BC936745E7F85FB1AC14A",
- "legacy_metadata_iv": "294D09158CDD073CF45F53F9",
- "legacy_metadata_key_hmac_key": "232AC43F41482072C1CAE1C21CF85CCF541D18C181EF49E2A3D33DA8193D5C69"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AE78",
- "expanded_salt": "7582462FC4C86A2F94E0321A374CB3B8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8A9E7971696F18E70AA6B48B01F7D71F",
- "legacy_metadata_key": "5D5BEA2378303355B3D933A81313"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "40838AF3335D83B0369D96DF59EFB9C4",
- "derived_salt_first_section_no_de": "31D6ECDD5C1984325427FB902635AC98",
- "derived_salt_first_section_third_de": "97F7F01DDD5E2D893289910992342BB8",
- "section_salt": "D5A5B3D5D27DC385A2BD0907F4AFE464"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4C5171C970C192F7AC8883D5",
- "extended_signed_metadata_key_hmac_key": "34F7A23E0ADAEE01D2C694509E11FDC65E8CC7A664C0C47533AE2E8BA7693454",
- "extended_signed_section_aes_key": "5C418DD2ECD448D5C966DC4DB6DDFA19",
- "extended_unsigned_metadata_key_hmac_key": "F1427D3F4CEEE875B1388DE51C63F54B326CC757F05C03F6A49141A9F9066E22",
- "extended_unsigned_section_aes_key": "1CEFAACBC04731DA8C1037880BAEC896",
- "extended_unsigned_section_mic_hmac_key": "9D62C3EB292FE369A5A480ACCD81B4A817DEB3DD111A1589E6C38E37DB4EE17D",
- "key_seed": "696B74C7FC7B161CB98FED878AA8D1DB9005788E2D1A041CB403D477DAC6AFF7",
- "legacy_ldt_key": "6627EF06B9ACE61735C9F288E771491AE60C9E0F766EB7B95F062445953626AC675BA9CFF02502B93C6BC441C90EE4A934301F388A4AB034266ABF22F54AD269",
- "legacy_metadata_iv": "8DAAFA5FCAD6333A3CAD69BC",
- "legacy_metadata_key_hmac_key": "08DD1982E6225B6EC3A6D5AE43D033637F5BF4DE01F0ECABE7C6ED12C997A308"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "39ED",
- "expanded_salt": "570BE9EEC37D86A66F54B835EC7BDBD7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "090081E030E846383169D49724B900F5",
- "legacy_metadata_key": "11F128F8A11189909720AC3C368E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0DCB1D1A8879F8EA000DD6042E45941D",
- "derived_salt_first_section_no_de": "CAF639444E943B7EB61F3497DA8381B2",
- "derived_salt_first_section_third_de": "995A622FDCF798B0B5E827F6E78812CD",
- "section_salt": "B1FFCD2774B07CFB485EF6CF466E9662"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DFBDAE62D9936A690C6EE780",
- "extended_signed_metadata_key_hmac_key": "EA4D734A225BBF1396B013CA630483B63B4D20B422A9D17DE7C99F78945B00CC",
- "extended_signed_section_aes_key": "5A3D29930997D5862E4B27F5F1F16E98",
- "extended_unsigned_metadata_key_hmac_key": "046A677336B0953C2FA1205659A1F1EAFD938C75FE94BBABB56D4D46AD1CD2DF",
- "extended_unsigned_section_aes_key": "B1841C32BB5496CFC2A09766B7FED8B5",
- "extended_unsigned_section_mic_hmac_key": "1AB83EAC195442BFD8A83EAFD93F8EB64F791FD48691D4D83047D85F99D533D7",
- "key_seed": "591A62B1D053BC778465EB8B0A9119C984A5B462795CE1CE945870D760B0ECA8",
- "legacy_ldt_key": "D39512ADA5296D938FE188B3E14E92C1281C8D85F7B86D9C7FB4F2C73B3535445C83EFADF9B702A15B7EE6F6F72B442A620C65D69E4B08F6583F7810578D0C0B",
- "legacy_metadata_iv": "7E7D5CA243E4FDF52BD8632B",
- "legacy_metadata_key_hmac_key": "F205581C7CB2467564CA157BFB62964085B1A2633E16699E8C4B8A8F2BA05C6C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DE07",
- "expanded_salt": "1C28773A02FB57C25DFC2BC207BD1F5B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "027E2653905115D6CB1150952996B572",
- "legacy_metadata_key": "CCB944C930E673FDBC5F9FD69F40"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D233CF5041F7B9554167545C48934632",
- "derived_salt_first_section_no_de": "E782673FDA1D2DC4CF4E6A5AA05960BE",
- "derived_salt_first_section_third_de": "AD0B268C06032761B33229BA3160280E",
- "section_salt": "9A782548B710B3B36EA83FC9A3159F32"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BB03107023F23841EFAF3C09",
- "extended_signed_metadata_key_hmac_key": "CA5124310DB60B2B1B9E1CBA839BD47CC5232D6F4F5C72BD0A2FBC7AA6AC8670",
- "extended_signed_section_aes_key": "A14F7197B612DAECD3AADEF75C6C8E78",
- "extended_unsigned_metadata_key_hmac_key": "6810AE231996ABA4689B7CB0CC527ED83291377536AB2D5A5DE665DB03177632",
- "extended_unsigned_section_aes_key": "FA27AE0643BFC85A0298A7C24034CF40",
- "extended_unsigned_section_mic_hmac_key": "F6CA2993E212AF5B1BAB808ECA42CEC24A026F13C5119863BBD406B0933607D1",
- "key_seed": "E1C47F5F1FC96831E3625F3A55AE11D868E80B5F33A25821690D121ACE29C626",
- "legacy_ldt_key": "0C2DE6307891BE98F09DCA3BA904C24AE1E1A8D743F3D2F78E8C9D8CEED59C4A58BE7A19ACF03ADCDFA4A5BF2F656F4CC68C0D3691D1F3631532D608617DCCAB",
- "legacy_metadata_iv": "F6D037B1B8A4C5E29F59E0EF",
- "legacy_metadata_key_hmac_key": "6A2220E930BBF43539954BB7A631B8391996F23AAA23E3E41CF80B8C5A186ADC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C953",
- "expanded_salt": "173EB0E77E803B0AF99F21BF801BF7C5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "54A9B80936F796051ED5FA140F87966A",
- "legacy_metadata_key": "94211B67F88E8422CABF347FAF76"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0ACAF4CAA306B41FFDB12AED6459A49E",
- "derived_salt_first_section_no_de": "EA1995DF60661059356A4D22B2C38347",
- "derived_salt_first_section_third_de": "7A38B6530606128DBBFA7474F603DF6F",
- "section_salt": "BF5C86D6215FFB6CF514FE9611FB8C5A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "26E419E436884A8F4240A20F",
- "extended_signed_metadata_key_hmac_key": "E3734879D40350C6943560A74FBD523E8B6EBC23146D163DDEA905A6BC096603",
- "extended_signed_section_aes_key": "C1B8401894212AEB17F346BB4580B066",
- "extended_unsigned_metadata_key_hmac_key": "860DA9BE1E4D9915E4367510ABF4B78A9CD06E6FE6847D910B10EB8D6BF8AEF9",
- "extended_unsigned_section_aes_key": "02DC3283187D5AD467D9D36358D35CD6",
- "extended_unsigned_section_mic_hmac_key": "B7DB489314E573C1741C6F5AD05640B719DCABC35B437DC2904161F4063BEC8F",
- "key_seed": "D82415A1532CD1904CE094A997EAB63D874A0A21AB658E2A174CA0CE4AD18022",
- "legacy_ldt_key": "3D072ADEDA22AEB255DB207E406BF3482B5420035C82A1AA11587A602E86361CC932D0683FA71DC70F69FDF29BB8F1D1FEBB32B6C35348C7A9D7ECC2B6A94030",
- "legacy_metadata_iv": "766146EF1621038AD3CDA1E0",
- "legacy_metadata_key_hmac_key": "815193D40FBFCDFD3CA8BCD6552944D333847150D0AB04837FB5557B72411893"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E372",
- "expanded_salt": "C1CEDA72E20A1CD892CA852BBAE4587A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C57186283CEBD82CCFB6FF0A7B26BC61",
- "legacy_metadata_key": "A5AC5E2752E8DD44B42BFCFA83C6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E9AEE404F0F902BEE7988DF816F6F515",
- "derived_salt_first_section_no_de": "C7A9C8A43A21C6105ECF777D3F363CF0",
- "derived_salt_first_section_third_de": "1B8BE7F03A3D2CB0DACF2E5B01262354",
- "section_salt": "49EA999FECFD6991023C27C280BDEC37"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0C0A6393107C6E459728D853",
- "extended_signed_metadata_key_hmac_key": "C5F63F716DE8F5553AFE7B622F0825F04FA80C9C1AB63EB4C54D053289579B6F",
- "extended_signed_section_aes_key": "1B996DAE679D590B59909A8027FB88C9",
- "extended_unsigned_metadata_key_hmac_key": "6B23A118EED5FB038F132364F2BB9E94E95D690026DD54B045C7A85AE7D2E420",
- "extended_unsigned_section_aes_key": "4EAB3FB44FE4682357E33D0ECED0352E",
- "extended_unsigned_section_mic_hmac_key": "0B16402FD3BCA4D97E49FF64921CCDBF50384588789C5320EEC7BE37AD742028",
- "key_seed": "68641465C54AED68A2A0D831639B5B627A46DDBC1005CA0319506F7D9870DE5B",
- "legacy_ldt_key": "ECE88945971DD8CAA21D788F71454657EB0B5862BF42621ED9CD0662CE977E6D66E677F72D7AFEC0F5E0C4A6D4C935490100528A10FFD9CA102AC567846F1396",
- "legacy_metadata_iv": "38845E1917036AFF66DED9C0",
- "legacy_metadata_key_hmac_key": "6B10F8D724159DD64C75FD6286E926E27A6AC512040DA5558D7F931180310D2F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CBCB",
- "expanded_salt": "C6BE097A88BE20A192D98E3CA7CC39B8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "839DEF544E47ADBED9D32A574182A649",
- "legacy_metadata_key": "5D3B8C76DAB54026114F26437470"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "73D12A4EE66A215CC672B5D42CBF7F00",
- "derived_salt_first_section_no_de": "34643AAC90DA503644F081A538D16912",
- "derived_salt_first_section_third_de": "B82D62ACFC719A53D98E12D92F61A913",
- "section_salt": "8080F4B91D9F4C4EDB7E0AB931A008E4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "513ACEEBD89B9D478EF9F2AD",
- "extended_signed_metadata_key_hmac_key": "01679455499B923B74783325418E6F52D2E038756CD5758C93C73F0DB07E954C",
- "extended_signed_section_aes_key": "BADDC852A21A350BC27D36B2E2D05CEB",
- "extended_unsigned_metadata_key_hmac_key": "7E71E6222F3CB10F9DF8657C24EB6EAEA299D48B75CF0F14B15940DE51187978",
- "extended_unsigned_section_aes_key": "4D80C485DD953708E6B195FFDB0D3F9A",
- "extended_unsigned_section_mic_hmac_key": "3E83A6CAA856080A7A31BC348FE0FA276AA23D44AE352125C93EAE62E704EF83",
- "key_seed": "52767AB4F23533482E9EE0FB5D6D954E82403F5ACC8EADA235FF9E19030C7CCA",
- "legacy_ldt_key": "043E8999E56F1BE27A7D870A63559307FCC290BD84C79B0CED7BFA6F3FA8197349BE805C72E377ABCA76B6E3A7090477440D7D00391228407000994FE65CCF8A",
- "legacy_metadata_iv": "373805BC08D0BA713B3C4AC6",
- "legacy_metadata_key_hmac_key": "676ACA62C296DF715F50F69CFCB82EC099ADF3282B94CE9FF7188E4E6944CC3F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "64A3",
- "expanded_salt": "67880E8CF6F9A737E3796FC026AD816E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "16610D2FBC9C5537FBD7981936ABD107",
- "legacy_metadata_key": "B81B2B5B9336A85AE620F1C30165"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "716116A9A8AA81C17A3911A858A03CEC",
- "derived_salt_first_section_no_de": "DD2FACF7CD8A783F87F9C823173748CA",
- "derived_salt_first_section_third_de": "8FB58E12C93A25BFD27C12DC71DB9FA8",
- "section_salt": "BFA248ED9E2A894CF958689270F89D46"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F311E57C64A1C91E1F13D421",
- "extended_signed_metadata_key_hmac_key": "CF5BFB96E2D2D9FFAF653F3CC1882094574AE347434FC581C5C9AF6E670EC81D",
- "extended_signed_section_aes_key": "F682D450C7BDDA8CFEC7E999DB284D82",
- "extended_unsigned_metadata_key_hmac_key": "5D634BB337D1AB2C60AF6D23CD2A5410FB1639E051FB3231C9AC4520F0F8942F",
- "extended_unsigned_section_aes_key": "5A1309F02B55C17303A18E1FFB33B68B",
- "extended_unsigned_section_mic_hmac_key": "A04EEC321AB90A1E67B586FC702BD0539D6A985A6CE77AD34F73847DDD0BAE6B",
- "key_seed": "3D06547652C3047E2FA9996ABBD8C7A53F6168C082A877655360AEA825BDE782",
- "legacy_ldt_key": "D8B47D779F708D6092E2C1EC1E2CB3007617E30B930AE212115A9DF4BBE22D752BC4970F1502C0310B0978BC7F6E0F61ED75FBE0B14F3DB6DAC3AF38F97CDD0C",
- "legacy_metadata_iv": "97AF781B310743B37DE46CCD",
- "legacy_metadata_key_hmac_key": "C449AFA143EF26D037C760B03D8A04381CAF3D068D5AE1F23D1923E4B9A5395D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "60E0",
- "expanded_salt": "36277907F1D779DDBF03A850E0767083"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CDB86D06C3B50056A3C244DA828E2735",
- "legacy_metadata_key": "438D73B504D6BE7A53CF01A1BB69"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "99E2FF9CAE62B003A8C7EC600FD67326",
- "derived_salt_first_section_no_de": "C1A5FF396D5242F36473114CDC99A089",
- "derived_salt_first_section_third_de": "6F2D7A10EF1C28B1A444439A74AB6F05",
- "section_salt": "BD60AC818C1B6F89FF3BB9AD31BE96E4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A77C5C73DC78A3FC8A69F110",
- "extended_signed_metadata_key_hmac_key": "C047C4F4B824060DBF3B0511F04E9CA87ED9EF66E0F932B72972264ADA6F07AB",
- "extended_signed_section_aes_key": "3CEE5C206BCAB6E4D898959D5EE8AD51",
- "extended_unsigned_metadata_key_hmac_key": "258FB9F1724B06D6EB29EB5FA7CA533FF5DDB70222A56916E319F19F058A3079",
- "extended_unsigned_section_aes_key": "47CD92A50CA3C86B50031520A5C9EFFD",
- "extended_unsigned_section_mic_hmac_key": "CF5B01BDAC7FBC5715ACC1667D61E228C2889EFD255B9A6A1F4FFED7A15C8FB9",
- "key_seed": "139DE81196FF66D8D3FFDDC6C887BBF3545531CD5DB32745E558D608C2207D6A",
- "legacy_ldt_key": "6C9FABBDB5AF80F940C7ACB067E49F0803A51C3DA132275202BFC344DDC52C36364D73FF004A5336169D17380357E7EAC5B0E14CA8B1BCF2761FB7C00AF6B43B",
- "legacy_metadata_iv": "6F96D9F3031C3A6E0C933000",
- "legacy_metadata_key_hmac_key": "14719C90E8E5CA5D06F09FCF776BA3B3E78BA7E7578BD8E70174FCE05448AF91"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6714",
- "expanded_salt": "4C7D7734D69609C36D63A9DFC570F323"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A5042A69531ABA4F024048C5E532BF0C",
- "legacy_metadata_key": "FFB1AA0E31900E93A81837C87482"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F1F8BAB09BD298F3DDBC8389D341D033",
- "derived_salt_first_section_no_de": "543FFB4AFD6A345E8AFA954A066C2B83",
- "derived_salt_first_section_third_de": "78AF4F3EC72AC2B3574F3C0B5105C871",
- "section_salt": "F6A86C27DD42A6CCC5A91B57908C8FA0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "677596247DFF0E9A6C50E408",
- "extended_signed_metadata_key_hmac_key": "7A0FDF1E524BF48EF1BCD9E023F7B7F70B90BD7DE8609DE9CC2C88C8D18B6E1E",
- "extended_signed_section_aes_key": "3FB33FC75F73219F03521D694AD38563",
- "extended_unsigned_metadata_key_hmac_key": "416461BC59AE865510BA2BB7AF484AF98F6EA7B5E8DC46345874BC0A249BED03",
- "extended_unsigned_section_aes_key": "C1C8E910D1567DF4BC4B4E3F43353201",
- "extended_unsigned_section_mic_hmac_key": "46FF726B2193F99AD6429FAC98910E9C85A859E5AF60D24ECE75985DA9029F81",
- "key_seed": "4CD42847508860961016426F827673E68013251285B09BC26B757582BEDBB42F",
- "legacy_ldt_key": "E28C6BFF079EEDD59A5F7BCA8157F7DAF1B885790615D7E1D31EB64960B12072A14A0AD1443BF8D563221416463C8C08BF24A29CEBBD1653D2816AF6DB21447A",
- "legacy_metadata_iv": "6FE7BB0229E266972EF93DC1",
- "legacy_metadata_key_hmac_key": "6EE11965927B1759302D6465D3DD1B6C52B4099621A9FD640A68E22671A6BC3A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2D37",
- "expanded_salt": "9C881D528799FE6B1EAF81DE4C354375"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6EB6B182282396AFE0776B43B87DCF15",
- "legacy_metadata_key": "DC4987B4873F75DDBBB1D115DB3A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "630B20EE87CCA7C80377FDEB9981E32D",
- "derived_salt_first_section_no_de": "F73FFB413BFBC486091C2F726B9E8E97",
- "derived_salt_first_section_third_de": "50BD4A67219840B096A2DA38CFD25E56",
- "section_salt": "5E965DA88317171AFD3AEFB1C457F13B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "60726305172D4A88E121728E",
- "extended_signed_metadata_key_hmac_key": "A1281C150D8458C55D1B227C962D27B46CE152151D925FF3E481A47295D14650",
- "extended_signed_section_aes_key": "1CF5616B9635F6DD6EE94FFEA2851606",
- "extended_unsigned_metadata_key_hmac_key": "59FD9F792E8F48184FB4F90071A1023C318BDF57C06C595BED9CCBEE1A64E1C8",
- "extended_unsigned_section_aes_key": "8AD503661E626D78AAC047B6397B4CBD",
- "extended_unsigned_section_mic_hmac_key": "8842D314DB62AB7B793120706DCB56BBD033236AFC1B69E09B17FBCE02E9114C",
- "key_seed": "FF295DB7163219EB37805DC057E5391AF5A668F78EFDA3788D9F590600F050DB",
- "legacy_ldt_key": "6F15750A14AF4CC8C157D2C2FEF56DAE4ADA9DD006C1727FB73413307E5DB9DE752FB5594888F4E0E087B0171C76FEC8992950BDA6A3EA86C1BD64A822633962",
- "legacy_metadata_iv": "F027F5FDD47E396BD156B702",
- "legacy_metadata_key_hmac_key": "4EA9362F0FCCE26B72C2CA975699F6FAF1ABB2E2AEFC3943FC44680310177302"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5AAA",
- "expanded_salt": "4AC6A5254302B0822B248D3B7523A0D4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CFEAC3926C36F16361D217357AB4DFEF",
- "legacy_metadata_key": "C2EEE9F81B5080EEAC71BFDAE1DF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F253826A3A3D8216B9D10CEB19627C73",
- "derived_salt_first_section_no_de": "5B026305C529DAE12C8A94A64F857DDE",
- "derived_salt_first_section_third_de": "7CEAB5EDA0385AD9CA3E7C1F52A5D5E9",
- "section_salt": "DE92064D7BA0B38606750209BAD4B1FA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3DC45396A6F161D21CBE7098",
- "extended_signed_metadata_key_hmac_key": "818D8AFE0CC13898F28F68EE96551D33F39B22E98EE89C261430984CB139D2B0",
- "extended_signed_section_aes_key": "FFC8DCF910663A4D2051CE70AAA3BDD7",
- "extended_unsigned_metadata_key_hmac_key": "457F32825379D513D2D5E043D69A945E2232900A310EDBD42C406456EE94D5F3",
- "extended_unsigned_section_aes_key": "4B508329468ECC97EA80103F291CBD61",
- "extended_unsigned_section_mic_hmac_key": "F821568073F3ABC62F495D921C315DA78DEB3B332480EC8E06A909EB09D9A019",
- "key_seed": "365539339A628E34177E1618045FE018B4206D65DA8D81CE6550C4A13FD50C90",
- "legacy_ldt_key": "3A9DAB2F11F81964ED6B6E97128FA65DF97099DC7274C81E65C73DD22DCCD5F2B0A25887A36D44285A4DCE6C76B9893ABDF67CB1686288F6F2D95326D32069D7",
- "legacy_metadata_iv": "7C6C56E15029CFB6CE9593B7",
- "legacy_metadata_key_hmac_key": "76911259865F1D890FC77806D1AAA2907EA0F22596ED9DBEAE8825903090DC88"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E7B0",
- "expanded_salt": "F7D21C4880D946BF9B39D1348D844454"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "69C870C9D0DF383565DEA496D788AB3C",
- "legacy_metadata_key": "A2D82BF8BDCB1CFD24E29939C06B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3A6DEA7A80C3867522627E9895AEEB82",
- "derived_salt_first_section_no_de": "BCE236E7864D6D77FF56706CA62957B0",
- "derived_salt_first_section_third_de": "5756E676E55ED6D85DC557767746B164",
- "section_salt": "65DDB1A9F93F72C01EDFDCD84175E00A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D67326718F6206412824FEA2",
- "extended_signed_metadata_key_hmac_key": "F86E96307E9D81D8B161CB8E5ED86A3F4E1838E92506C31E6945DF703D90A8B1",
- "extended_signed_section_aes_key": "9D5572D1FA9C5DB63FA6C853A16E3C50",
- "extended_unsigned_metadata_key_hmac_key": "EB2D453AFA3302154147720857F7A3FAE084857CA40CAE1AD4AA662139868C0D",
- "extended_unsigned_section_aes_key": "8A8C824CAAFE00030088D52C2D5A933B",
- "extended_unsigned_section_mic_hmac_key": "7BC5AE751CA84DA374650703BE7DB7E8288380B0AA002AFB4196CF52A09152D0",
- "key_seed": "76D73503332266119A4D78BB2425CA2FD89B7888351BE311CA1795710DB7B738",
- "legacy_ldt_key": "EBD846AEDC9046E93439B2F4034018000DF33A08892A397F6D7FDD880EE5751779B9A8CFC9E92A75C45C85D33A07E80B75EE34BA17A941E759A98B991D4D1128",
- "legacy_metadata_iv": "083106A030D1FFBCCD79F51C",
- "legacy_metadata_key_hmac_key": "4DD186071DF2695B2D5469D91E1CA05021E34BD5D802004E714EFF28DDB5C300"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3592",
- "expanded_salt": "A440735EF08A590252AD4FA71BDC4337"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "72325E667D43B6D9E2F801C7A174B489",
- "legacy_metadata_key": "5E8A93BD74B48FEB9C1CC1862144"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EC66909D07A46CCDCB926BE46EED78D3",
- "derived_salt_first_section_no_de": "F538B4482874C279207D3C537F6E6A26",
- "derived_salt_first_section_third_de": "33AF0F73259B1C1C1E630AF03B417305",
- "section_salt": "58B3751F8A7360948C260B5F5FF9DBC9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8CC186BD31B875CE690526EA",
- "extended_signed_metadata_key_hmac_key": "9BDD37811030E56F53EE25630C7738E048509B5E81436D0EE770B8A82E2A1A49",
- "extended_signed_section_aes_key": "7D59AFE646338CA64E812668D418FAAC",
- "extended_unsigned_metadata_key_hmac_key": "96B157ABB133CDDAD416754436AA781D76C1133A906899734D65069367CC0EBC",
- "extended_unsigned_section_aes_key": "804CAAE0BC439800AC47F4EE2DE9398D",
- "extended_unsigned_section_mic_hmac_key": "8C103A776A2F85F7F195EED5FD72A5D3883242A21C27C8E65ED1E4CA1DDE753C",
- "key_seed": "ED25D7E6A872FC515C0AD2C0587628FC2ECA52EB589ED968B0A084776C03504A",
- "legacy_ldt_key": "1E0F6893AD718CE53A682111C3519C61D59F79DC6A0C66A6D46A0C4C5A555D512BFC935D259994DBE7C52F8947559F3CCD0D527F5D02940343016C4E552BFE6E",
- "legacy_metadata_iv": "9CD2047896ED04FD67EF1557",
- "legacy_metadata_key_hmac_key": "573F21DDC3741C5F94DF98D078B0E8A5E532FBEAADCCABFA89BB9F7773735361"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7E90",
- "expanded_salt": "1316E8CE0178152868E0A61247517C97"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CDD67B69C52F62DC5B6481B5E567EAC4",
- "legacy_metadata_key": "D5F2C5205AAB3D166FB75925F13B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5D71A2F1ACA6250E7A8C0728EC625CA9",
- "derived_salt_first_section_no_de": "4CCE339FC88D1540BD8F6261144D088E",
- "derived_salt_first_section_third_de": "D785E859761DC0DB4A02B1EA70BA8C7D",
- "section_salt": "08C5C26D8672143D28D7B3E7EF73B9C1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E869813EC305FBB0A73A07F2",
- "extended_signed_metadata_key_hmac_key": "12AB5A283C2F943A8E456A784014786E355FAA5CD471E3ED7FF42AC75A4825DC",
- "extended_signed_section_aes_key": "B3B95EF7DF5BDD83B84388F3FB5992AC",
- "extended_unsigned_metadata_key_hmac_key": "A909F88C07D9D56D5A0E7D7E3D4AD4BFD42F9A025B85C1DA41BAB3D043E02689",
- "extended_unsigned_section_aes_key": "744320B61F5E5F4C5F2B6442AC6C6783",
- "extended_unsigned_section_mic_hmac_key": "A4163133AE9C4196F5664000CD6073447B5B58F31FF4D32889B62A5BAC97EDC9",
- "key_seed": "C74AAD413D85E231E7DA97D2CC9C10733A4960A67F86F5D04C53BF09BCE76CD4",
- "legacy_ldt_key": "E13F3B3BA22E3537598FD748A65E5A2105AEC30B4DCFAD211F2F720C57C66C9CF3981704CF31F6C0F6890491EB82F093B224867A4ABACF165DA9AE268EC21D03",
- "legacy_metadata_iv": "5D004365CBE2B94EAA545B17",
- "legacy_metadata_key_hmac_key": "84628875AAFCC23DB6257878A30F166A2D2086F69CE28D40D8031CA81C76C35D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3347",
- "expanded_salt": "05FB108BA5396A36DE01E008C7C3E9BD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B04B0EFBCE25E7D7E32219644130A2F7",
- "legacy_metadata_key": "97A4D65B77D9BDD7773598412B3F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "72E02EA876CF35AAA5C77342D38E2829",
- "derived_salt_first_section_no_de": "35F18617B8CFC39D8C21C1C094A82384",
- "derived_salt_first_section_third_de": "9CC2A7C759552463CF508B891C686B09",
- "section_salt": "7B269C82252CB3E8B3DD2335C2579748"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6D04C5FD5EFAFB8163448845",
- "extended_signed_metadata_key_hmac_key": "AC36D1410B4D0DB5429D869993F718CE5B0CA4AF56463D4A49C21608769F1D0A",
- "extended_signed_section_aes_key": "E1AFF692C340AB4C72A4CA1019F9CC27",
- "extended_unsigned_metadata_key_hmac_key": "DCE7E89E3D9F0790E0F68CA717AE04A4EFA3F71C9B8C44F1063F4A86226A2305",
- "extended_unsigned_section_aes_key": "D8318CDD72EAF09AF9BD6BCD1EED5895",
- "extended_unsigned_section_mic_hmac_key": "6573253DC001335A4A8F460971355F113849C5843ED4DC408910E88E8E1045BF",
- "key_seed": "AD21B9AACA9AC5C33AFEBFA73479775F660D3418BA0BD80CFBA0F227C32ACBED",
- "legacy_ldt_key": "8FF23055B7B9EA90C38084C0DCCE4DC8BED9144139A82DDCF1C3DCA762B4F143B6D70903EC066539B660DD809B38D9B260718166BA60C15E0707A9A5B3B7DF67",
- "legacy_metadata_iv": "4023569FB732D1FCA230E6B2",
- "legacy_metadata_key_hmac_key": "DE54D40EBC46EF243F731A6FA6B4DC85501C0A1FCE052CB49553FF76ADB4CFAC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8933",
- "expanded_salt": "15EB9772047BF88DAF31D6955E5FD18B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "54D81BA490763351DD90924EEB59DFB8",
- "legacy_metadata_key": "21E53501AEA10343DE733D2ACA7D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0F99A219D798DA14D134B1951A28CAE8",
- "derived_salt_first_section_no_de": "CE88B44B145C18BE12759A4CCF6A4E32",
- "derived_salt_first_section_third_de": "825CA99C053841E8864AB2E69F714CC7",
- "section_salt": "AEA564B22BE5B31C9D6321F1DF860571"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BE0B476BA59709552F8A2F62",
- "extended_signed_metadata_key_hmac_key": "46B4CD0EC5E2D0CB7C588542B6908F66AA30947963F7B9481B602053AC3333D1",
- "extended_signed_section_aes_key": "ACFC59EA435CFCB06C5A24470E4E8B04",
- "extended_unsigned_metadata_key_hmac_key": "FB8536E28D7CE32E77107D26ACCE0CB174988A52D67B812E8F291890D10787C6",
- "extended_unsigned_section_aes_key": "E03D11B048387D166DDF091E17F0EBD3",
- "extended_unsigned_section_mic_hmac_key": "71902DF11B98D455E269233D29988E7B023D50A16F560F0F83283244BCE34353",
- "key_seed": "2B52CD51747BFA6BE4A117BEE97DCB8CC021605D0E6E8197FC8A77282E7B16AC",
- "legacy_ldt_key": "4DDEE931E49E5BD0C2AA0B5C88C0E1FF924BF7F9FF26AEE6D2C1744835AFE57D7DE31D69127C5D1CEFED89FDE1BE14FA23B9EE779AC1913F40EE023A04890D93",
- "legacy_metadata_iv": "1EA271AF3CFE406653DCCE2B",
- "legacy_metadata_key_hmac_key": "1A9BB7A3A6B463D0FD2E48F4F27F5E7A5FED06756F38C627DE396C43EA3A4D2E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C802",
- "expanded_salt": "95FD9CB214A5EB344B782DE287DDB15F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D9CE0B40BDDC84BB8ED9B4C3212F5B8D",
- "legacy_metadata_key": "3D61FA60B62E0BC8B977EEE27589"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "012240FCF1BB3A1841C96D3532B37E04",
- "derived_salt_first_section_no_de": "F6F79C72254299CCFEFF5CACDAD16C16",
- "derived_salt_first_section_third_de": "59F269836F342A627904753ECE58AC18",
- "section_salt": "081FA433EDDD01C56D702A98EE3089D2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "96BFC071E6942DA042B35A3B",
- "extended_signed_metadata_key_hmac_key": "3242A61795B0B3281324B58D6774D033A940299A8CC62813584C712533ADF929",
- "extended_signed_section_aes_key": "451567975CABFDFFD0948C526DCBDD5A",
- "extended_unsigned_metadata_key_hmac_key": "B9AFB98B87607EB49566D9776463078088C6E3E31FB8044F51969B05F8C93DB0",
- "extended_unsigned_section_aes_key": "77E9218D48D3CB89763BB677C6F0F82C",
- "extended_unsigned_section_mic_hmac_key": "D6B79944A445563B077F48946CF033A23774FCE05CFA2BB0F2431CDA1236DD69",
- "key_seed": "6730D9518353E2D9136A68BCE568F073754E70BBF3E9C7ED3E2C32EFC4E30C46",
- "legacy_ldt_key": "E9591677D6B8CAC0F83F225F5D2AACF7D9A8E0298C253C13650ECB2267DB33B6440B3D948F75F6DD3F62724399AE04A32666D8E030FD5BF87D873B0A657B0C5F",
- "legacy_metadata_iv": "6578A40EB8F37E4C5894CAE5",
- "legacy_metadata_key_hmac_key": "6A6FF692370A9A99C681F3B313234248BCEC3AA30849A054A3EDC92DF6FF8C67"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C06B",
- "expanded_salt": "6807BCE2787169A16858BA15AA2D4525"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0C891BFC5D380720E6D50944FF3D6FD3",
- "legacy_metadata_key": "BFCBB32AED1ECF83F27F48F83406"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E32A98C796DDB7B9B8CD356496AD1C65",
- "derived_salt_first_section_no_de": "87145B74620F5508788821AEBB557BFB",
- "derived_salt_first_section_third_de": "2DD7EA6E5506E760C1C5B3C78F52306C",
- "section_salt": "FE9B794EBF6B7E2A9AF004010C0F77D3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "68B775AFD6D60A70414862C7",
- "extended_signed_metadata_key_hmac_key": "C013F5F0BECCB46216A89C92914E7E5E2080430A027CA788127B21ED27F73D33",
- "extended_signed_section_aes_key": "B0AA138257C60FA646AD73863465DA18",
- "extended_unsigned_metadata_key_hmac_key": "621A821BCE703B0B4A39B4EE8B0AEE9944B8236C07F88EFBA8C8F2C43318BBF4",
- "extended_unsigned_section_aes_key": "C1004F3DAF818280447A6025114393F4",
- "extended_unsigned_section_mic_hmac_key": "8252C818C4CBDA7B1EE9067D156C7C9D1FE8308594479ABAD70284B9C17FE91B",
- "key_seed": "3839286703D7318AE101E0391B9DC3144AA7E48A07FA4323CC1E2D56EAA45D37",
- "legacy_ldt_key": "F5097B05686DD63B471C5926B658119E497725E45E209C057BB02E436992B7438969A6AF3B8FC85551F9A3D568A597AEEC8CC8D21FB689C54194BFEA86463C27",
- "legacy_metadata_iv": "65D5658EA1893369FE9CA4ED",
- "legacy_metadata_key_hmac_key": "5C74FDCD5B1D0EEC130CD1BA68C5054D875BC2BAFA4B13A9E9FD35D46D1A6AB9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "01F2",
- "expanded_salt": "4BD5F746F99E8B1F37AD40B92C6DB295"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4669ABA9F2F986C70F6A8D65DDA1A232",
- "legacy_metadata_key": "E47A80CF1E829F8AD2BD8B2CCCEA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "69D167A262BF7EAB0B36133CF5CEA993",
- "derived_salt_first_section_no_de": "6C59D6B189275CD635DE410B52644626",
- "derived_salt_first_section_third_de": "43A683BD695035EB54B3063B5F98A672",
- "section_salt": "7622B017E9309CB571C13640FF30EF76"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ACEF9213FE4ED90AEF2935DB",
- "extended_signed_metadata_key_hmac_key": "ED559735C1E09128439943D53C0A916010AADC10AD17C99D7901E94E1DBD95DB",
- "extended_signed_section_aes_key": "36C38EE44868929281E9006A301A0C5A",
- "extended_unsigned_metadata_key_hmac_key": "807BC15501811A29504CB40583538F37A3FDF1F059AB0739AB66847918E396AA",
- "extended_unsigned_section_aes_key": "81DE1F64D43FB503E0FACD4173F2B3E4",
- "extended_unsigned_section_mic_hmac_key": "1EB380B51FC5106BE1086A6C417AEF7190E02BD20F64C7F2D4D844FC4AD26731",
- "key_seed": "F55F48D00E48EF399AE2D357690E2501D1190F3237FF545418F8ABFA10A76CF0",
- "legacy_ldt_key": "3F8B8C8E61B18FE8C1E4E4770BF2A7DFB50FE01E2872CEC31BCE2B6B6747345FEC9D648F1CACCDE791A074EA4583257D8FA7530CC5AD78AAAF82662916F687D3",
- "legacy_metadata_iv": "15639A3E94B08DD76DBB8D5F",
- "legacy_metadata_key_hmac_key": "3614F0D0C6232879A91BCE67F2315E444841DEB0B0DD49E8809D51A5EB77C0D1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3669",
- "expanded_salt": "4993110F8BB22567B9F7C8E17C2FEEC9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "60D5C5CC66865A0FD33F02C9C33D2083",
- "legacy_metadata_key": "C5C46DF8FF2E172B4245F76323E4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D59DC2CE797C51F0AA49ABEA1F1DB8C5",
- "derived_salt_first_section_no_de": "9F4C9EEDB1762121EC86300063DD9BFE",
- "derived_salt_first_section_third_de": "AC569A43A75A33FFF49CF258A1E069C0",
- "section_salt": "BCEED1BEF5A1D0F0D10B1804ECA7AF4C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F9C3DF3EB358A6C42DB39873",
- "extended_signed_metadata_key_hmac_key": "F6847735FF4AF74ABB88267691553583CE595A0592A3EEF13556EEEA75877050",
- "extended_signed_section_aes_key": "0B1E6222B5049842764A9E04DFCD9156",
- "extended_unsigned_metadata_key_hmac_key": "90B92576B8038071D778716F3B80E937D181F765FBF13739AD96A903A10DB1E8",
- "extended_unsigned_section_aes_key": "1D81FD8A139F45A27585DB0561015DB9",
- "extended_unsigned_section_mic_hmac_key": "7EE503F5612C906A48F2F925B9259F06AA400202C52B200CFEE253EF7C4AD6CF",
- "key_seed": "CC632F0D2D20FB5173199EEBA8E506F02306DCAB0F62B0468D1B4D4BB747DDF6",
- "legacy_ldt_key": "E54BE8FAB2EA5DC37559E157F9BCB4E54C709E32FD0C85418134CABBFE690D666DE9616D2A3C001099DE9DAFE404333D51ECD95EEFE100D33CF29650F8637EE6",
- "legacy_metadata_iv": "B2E38A0F2AF686F5D46A5002",
- "legacy_metadata_key_hmac_key": "C16BFDCE73BFE953574460AF0C6C8B082411635EF6AA49197E1A1899E378AD98"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3DFA",
- "expanded_salt": "A3D2E84BC7AE4D107E1898E75C677853"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A74AB0A84EA20E541D13E87258036689",
- "legacy_metadata_key": "94BE18BFAB7AD3DC679606EF6663"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3753CDE6AFFEC54B61CB07401396FB68",
- "derived_salt_first_section_no_de": "152F81BD56ED8420CA8C2F1B3D79A3DB",
- "derived_salt_first_section_third_de": "394F0728BE8424A65D15E207875D1734",
- "section_salt": "00533332E64B69EE9AB05FBCFD7DFD1E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "00F6F54C306F1C7853592F26",
- "extended_signed_metadata_key_hmac_key": "9AD644287130F9AB5174D01DA5F183D3F66D2493FBF7A5EE624C51D1ACC043E6",
- "extended_signed_section_aes_key": "071A967653A49500DC5EBD2F7F11B39E",
- "extended_unsigned_metadata_key_hmac_key": "C3FC827E03B17E72CB3E9FC160F3817E6A900FF8FEE83706A5A549842D787CEB",
- "extended_unsigned_section_aes_key": "25AEFB9743265990A8FC1C7B51601D48",
- "extended_unsigned_section_mic_hmac_key": "136DD7CD71D22731778F8C1FA34FD8A514BED86B23BBE0E0A425E72FB982732E",
- "key_seed": "282411DEA7CF156387AA68C2E965E058548F2E77EE7869ED7710B4563493DC63",
- "legacy_ldt_key": "6FC13C4E31B649D8221F03F01B69D51380A5C4E7E6888CA7299B865A3A6F581358EB5AB9548F8F2B2418EA020E8320CAFF47ED21B1E56C61A5AE5361AD364BA4",
- "legacy_metadata_iv": "34E1D3444670C2F976038726",
- "legacy_metadata_key_hmac_key": "1861C1E5B2DBB637E92E5D8D3BB7DA662B743769E5DCF3FB707F26BFB2DD36E8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "50C7",
- "expanded_salt": "7EE9FF07B689D7C0BD8994FEC9063CE8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B499F5B0D64D64213460D58FCD516A77",
- "legacy_metadata_key": "9A624A5378F00502CD02113770CE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "40AF59F42A0738675DEB4DAC5B2A9EB9",
- "derived_salt_first_section_no_de": "B7200864879B5828101466F99DE97822",
- "derived_salt_first_section_third_de": "DB878FBE5DEC01407029F625905BBA38",
- "section_salt": "EBDE28C385BC65DF7AC75B9001BEBAD3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "45AFF76B0ECE2A590A6072D3",
- "extended_signed_metadata_key_hmac_key": "715914CE4C8F44191D83AC26394AC01EF0041FD1DA9A8190457C625DD9A8BCFD",
- "extended_signed_section_aes_key": "8CE43A80003F8E8B719CFB6C71453257",
- "extended_unsigned_metadata_key_hmac_key": "47ED3E1E7797C26C81344EFDC008035BCE4BE2D7C18AD99AB0E8D9F4847E5ED2",
- "extended_unsigned_section_aes_key": "DC89E83B47E9456BE57518D8CEAD39E7",
- "extended_unsigned_section_mic_hmac_key": "5CE9BA90B127D00102B1A29DEC3BF1587591FBCF3C51339C5D2EB9AEE110A955",
- "key_seed": "638370576E214ED0360400BE134F8636B3DCF8E1905E5458785BA255A1A76695",
- "legacy_ldt_key": "82A5914D60399DFC0261C7DB4CD13CBA6E38C21F3B330E2AB3AAEAF0949144B2991FF2601AA5435173C2FE2D99077DBB8FA0CD84B2ACE5226127C10EB4509A96",
- "legacy_metadata_iv": "18F5BFBDA8D554CB4C74C27A",
- "legacy_metadata_key_hmac_key": "71678A2BF2DB4548A4CA0368EDBF5507A14E9A994CD217C63D99D0CB453D0894"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "87C2",
- "expanded_salt": "4250FA2AD6F513E208A1A9934D48B6C4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "57C7B31215E0B2EAFD0537DD4E2FCE3F",
- "legacy_metadata_key": "6EA5B941E4748E4A58F2A1B8D693"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B9A4069B30A392A7FCF76C103B1273BB",
- "derived_salt_first_section_no_de": "21D5ECA0850ECFF5B530AFCF7BC0292A",
- "derived_salt_first_section_third_de": "A4B94BD8BB1D0600352F137F7CE74D4A",
- "section_salt": "243102AC1E36F7FC6C70C05BEBA45313"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "09C42ED9EBD0AF73B40E6940",
- "extended_signed_metadata_key_hmac_key": "1CBBC41DA78C1D83C7E590A744B579B2D2A02C0B245402B38CF4019BDD66BDD2",
- "extended_signed_section_aes_key": "C53BEE8AF5AA95BEEC66C00ED552642E",
- "extended_unsigned_metadata_key_hmac_key": "B3E2255F62D1BD4761B3A73E580A251DC6F3B42E239E033174D0734A192A3789",
- "extended_unsigned_section_aes_key": "81ADF46C9644E9C9BD00BDB857A2B566",
- "extended_unsigned_section_mic_hmac_key": "00D8A1110CEB0736E3C08CDE05E78E8E860516A749425D68AC2B4170E269B344",
- "key_seed": "D96629409C8DB364CD4BAC9862C48551CC0657877AFAF11E53624E3363DA3A96",
- "legacy_ldt_key": "490D739A04B635B245823BAB7D1A0FA75C1DD1AC1B17EBC7F8212551F65BD012D25E320AA435264725754CF2E5780CD998A4CED0100FC1D19E04679ADDCA78D7",
- "legacy_metadata_iv": "6B74C728EE20733D0B9D3A2D",
- "legacy_metadata_key_hmac_key": "F3A8F5C1C2DE609DE7948653969440A2F95D41D6BA7A93396D657B42512DAA18"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CD42",
- "expanded_salt": "308914F03B664FC92AAF2FC7169AA0F9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0FCA88C34694D30F37C7FDECA14AC440",
- "legacy_metadata_key": "23D50528996697C9BBA4A9470A27"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "41711144C7B628FF745393C641F35E10",
- "derived_salt_first_section_no_de": "75AC2F066489E95673EE25E8CC2D9088",
- "derived_salt_first_section_third_de": "66ECADB82F5297F30A33EB3833435EA0",
- "section_salt": "57FFCAA0994D475330B78EE4F91B156A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DB4C83CE04A7F19BBB02E649",
- "extended_signed_metadata_key_hmac_key": "DADB9775CC8D7455DBC5BB88D455C3A5B2F8FE0BFB1ABF2EE6F014A5C3E61F31",
- "extended_signed_section_aes_key": "1A95A1A86E9ACB2A552E7C1AF8D75107",
- "extended_unsigned_metadata_key_hmac_key": "2163B61FACD64EDA6A389A97A6FAFDD9CA28BAEC543E293FB34AD930DC6243DC",
- "extended_unsigned_section_aes_key": "4C43820C6E00B751AE816826B3A472E7",
- "extended_unsigned_section_mic_hmac_key": "8567B368DA1305D73243839A0DEF19097A0077E996E9B4384A9CD4463B1F24FA",
- "key_seed": "46DA4143F759C0E8E58AFCC4EDDFC0BBBD890295E1E1FFA6926ACDCF1071BB62",
- "legacy_ldt_key": "301077981B79BC2D8E00CA425EEA30B16270B954E5A1C7895CE83CC8574A586566DC6EDAF6CFBC24778BCFA27AB9663C9701BFE6B930E36C481A2B61F92D7F22",
- "legacy_metadata_iv": "FEC67E9DE19CDB64C2BA1C5A",
- "legacy_metadata_key_hmac_key": "4A1E381813447C724326F14CE37DFAC95E60C52773603F2446F7F1ED11D4ED57"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CB4E",
- "expanded_salt": "1C524FCF3362DDCC23B391B34493CEF2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BE09EC4007D381038BB6778E62864DB6",
- "legacy_metadata_key": "95799775EDD0A99D4B450AF5D6A4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FC3BFF8D88942DA24E846DE629E873B9",
- "derived_salt_first_section_no_de": "C25B1D89BED0C97E87A3F32333E18733",
- "derived_salt_first_section_third_de": "CA3C258867E81EBFAE832A98DC4E0608",
- "section_salt": "20310DE3B4AFEB76AB272621218F6143"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "66D9E4F6699851AD33D8E0D8",
- "extended_signed_metadata_key_hmac_key": "85B19CB41EB20BEF06321C81EDE2AF8B960EC3948F7EE00359D1DF5258EDAA66",
- "extended_signed_section_aes_key": "5D4FB25A27638BBB1F28FA8277693A57",
- "extended_unsigned_metadata_key_hmac_key": "42643FB5856C36C4431444B792C69718391592A6AB52F40B6FC0C1D6398297E2",
- "extended_unsigned_section_aes_key": "A1ADADCA38D1E21A5376F1332A80ECD6",
- "extended_unsigned_section_mic_hmac_key": "57E4DDDB1565FFD74AB1ED58D1F3BEE7060D620C7A61FD814A211D33FE94BB67",
- "key_seed": "FACD2EEC12907F13B90E123A3D7270E243A2B870C26B8E0F420D1814D86C037D",
- "legacy_ldt_key": "D1F03CA5AC9635BF06202FFAFC917088C0FBC4376E90ED052B059133494CBF690131A5D2DAC6A4C5CA8D6A2A71B8A7525EDA275C4F786FCAEA316EC81C3A3901",
- "legacy_metadata_iv": "76645B070C96E403903C1546",
- "legacy_metadata_key_hmac_key": "3A5B15708E2B6E8EF0D05B09D86F3ABEAD36992AC1026EA70BFEFEC19B377C86"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8FE5",
- "expanded_salt": "ED9D43F27CC75A1EA4409BC545BA9FC6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7E33FD25F169428CBC7617151D1C6D82",
- "legacy_metadata_key": "E7608AA6781CA01323CCBD5F2AAF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "73A5AFC0C018713D2F46E6FB1AE562C3",
- "derived_salt_first_section_no_de": "F322748842085F66A015F7976AF816DF",
- "derived_salt_first_section_third_de": "D3E39986C7081F6047A3648DB57F756B",
- "section_salt": "FCBD155A05E4E232B33BEA8AEDB70734"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E6F02BB605FCB6383A7BBB1C",
- "extended_signed_metadata_key_hmac_key": "4AF94908F5D51934F0403D301567CA2F9679F9E8C69A3BD205FAEDE0F98D78E4",
- "extended_signed_section_aes_key": "CAC3687ACF3D24C7FC7EBA9A5601236D",
- "extended_unsigned_metadata_key_hmac_key": "C79D3CFB340A391046F2C1294FCD59165D9C509C76D3C89C6DAD019BE3BC6DE8",
- "extended_unsigned_section_aes_key": "0151D45B196F8CF493260B6328133978",
- "extended_unsigned_section_mic_hmac_key": "E0FD8F24123921FB034274953B9515832A0A4C1AAAD437199C1012F64C16B72E",
- "key_seed": "FFE4916B56774599E6BBCAACEFA6EAE8ADA252E49AB14BF0BCB9FF3D536C79C6",
- "legacy_ldt_key": "ACF021BADB1D1A943D588972CDCFCBCD90A72C0CD398B44525079FFFE687A4E6227B45D472312AFA207DB0590E3BB53B50EB0736449A9B84900A68361D50DD5F",
- "legacy_metadata_iv": "91730CF5E04FCD6276770420",
- "legacy_metadata_key_hmac_key": "D6BC1463BDC4A309CB76C9CC3B4AA73756186B3C68057C2BAE66EDC93DEAC481"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1850",
- "expanded_salt": "5E48FFBA14081DCDA1EA32FAFB2327BC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E31C6C6CBF773237F8291BBC450C769B",
- "legacy_metadata_key": "273A7907AA218EF949E76EDB0379"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0CA9B7DB426598341968A11E9A5F6989",
- "derived_salt_first_section_no_de": "974C35FBFBDCA4C5ECA5DCAD95167A1B",
- "derived_salt_first_section_third_de": "E30120CD531BB94D16FB92448C2E3000",
- "section_salt": "82FC330DE7D86AC804BDCCDDBA5CE3C4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E62955C20D70D62397A83C34",
- "extended_signed_metadata_key_hmac_key": "773BED2BB0F85FC40B108843BDB768C59A5989FA35320C8E16BBA6A949976948",
- "extended_signed_section_aes_key": "5134C651691E7F57F148B9CA8F09619B",
- "extended_unsigned_metadata_key_hmac_key": "9B64D2FAD3724DD674CFDA5CB5DC04916AD3F5B510E13BBC9F9D895109F3381E",
- "extended_unsigned_section_aes_key": "914E914BF6FEB0087074F6A443BC3B17",
- "extended_unsigned_section_mic_hmac_key": "095FCCA0527423C2EB34A892CA6B254732C4A2348A3E50BA4F003F9A09E74516",
- "key_seed": "D19ADE87B842BB018D64F9A78AC728302BED18AB21C4FCB80FD23171D6AD2214",
- "legacy_ldt_key": "6B7A580EAC53297D254E50B0AB78A6F359A9B66FF6F25DA20CD95C02ED229377E570CF4521C0ADAE84736E21F59519368A5DDEAB0362CDADD3F336000BD5779D",
- "legacy_metadata_iv": "F95DB85566E398D8BA32688A",
- "legacy_metadata_key_hmac_key": "49F7883C0277767C6D848AA124ABA351D4D66CDBBBAABD18F7249F50E2C565AE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A1CD",
- "expanded_salt": "13D0C2C58A014339598261A74AB24CF4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "04F167E3010214A9177F20135C8AF794",
- "legacy_metadata_key": "F1D991A3ACE162A1EA656425361A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0524243CEF4982D5D2FB713FEB0D16A9",
- "derived_salt_first_section_no_de": "A2EC8333BCB8B6E9800C950632B63F67",
- "derived_salt_first_section_third_de": "AB6175D55DD7A8A9F90B15F6F5EDE539",
- "section_salt": "93D775B9521439EDDA98BAF923332B03"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0B87DEA19F2368D43DF2F8D7",
- "extended_signed_metadata_key_hmac_key": "7610D087D33920DB0B0690A11F33EBEFD97930857D9AA1A2ED52829639E736DD",
- "extended_signed_section_aes_key": "83E7C5B3E0E70913D718CD6E5BB4C081",
- "extended_unsigned_metadata_key_hmac_key": "F87710B25D9D9034E91520DF94E308FCB49FCE9710C697BA38EF2E080EAE5AB3",
- "extended_unsigned_section_aes_key": "4AD800B3C45FF1C5E613F2D3E9224F97",
- "extended_unsigned_section_mic_hmac_key": "9818B24352CED825B5CAE3A3B261772996D9FAED6D382428473265C326EF22AB",
- "key_seed": "866AC845A0F2D03F7565E67C708D3E44747A4C9A7EE1E722F693BB65B1C91BF9",
- "legacy_ldt_key": "72B87D7C9AF747A15BDC2F5A80B6B243AAF1ACF1B28E04F8B9F1AAA2A24ECCC58011CC15B6C422B8670816C8BE7440EC4E7B69004691AEF8789BF09829DEDCBB",
- "legacy_metadata_iv": "3512483029BE48CE892D03B5",
- "legacy_metadata_key_hmac_key": "DA0F022066219E3A5B60E49FAA4B44B170D6F6CD9F9ABA0BF5DD7E70FEC2824D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8E65",
- "expanded_salt": "35B0D740DC30A360ABF8C8C67DEE87A5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "47F7371025810383448212F4CB781C30",
- "legacy_metadata_key": "873F18ACF9CAB54BF3482CB00143"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "347DD61C4451BBA5447859EB1054F8F6",
- "derived_salt_first_section_no_de": "0FB99988A1180D6A6CA6D44ABC74FA02",
- "derived_salt_first_section_third_de": "13DFF01636AABA2E68237A26883BC9BF",
- "section_salt": "F515EEB6A01EB5A0D69FBF78A2A2D2B9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "65B50D70E7A1BD022EB39A57",
- "extended_signed_metadata_key_hmac_key": "B3103490697F2D82484FAF1AC0CD850738361455ECADC6F419A0D15F4DFD1F12",
- "extended_signed_section_aes_key": "0A4BEBEDBE6BBB67C092E22EFA3C46F3",
- "extended_unsigned_metadata_key_hmac_key": "70D3073E47937CB7641AFF2D24D474ED985AD8CBB92DA184177A94FC14F6E1A5",
- "extended_unsigned_section_aes_key": "B6E44A99389BD6383D956C9E75A31240",
- "extended_unsigned_section_mic_hmac_key": "CA646E9CCB111F693C16AF5B9558803FADB7FC7AF188547A75C3054AFFE03918",
- "key_seed": "B3215CC88D1A2E003E92BAEE36783FDADD29E506B69EDD259A25A6370977B111",
- "legacy_ldt_key": "84D1C6555699A3ECF4F71FB81B21354F7D15BEC3868D7A5AF2DAB652AAAAAC695CF4352721D5952C471C7BACEB27784BB22C9BB201CACF12FB9D4478DAF8C5DC",
- "legacy_metadata_iv": "4FA61DDB01B6642D763F7EE8",
- "legacy_metadata_key_hmac_key": "7670DD09F406E98C36C7753F6E81C8FD0438F7404556C83F6BD6860DA3BA1A20"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EA5E",
- "expanded_salt": "87AFBA0A2BFA428ABC4809C386230686"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B01E01DF1AD31800B35B8A4302991E91",
- "legacy_metadata_key": "6BDD527AF4BD98BA22589C627957"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6D77B1183E629E8BF738ED257A5DD796",
- "derived_salt_first_section_no_de": "94278C7C57BC429229918C95E7F4FE6B",
- "derived_salt_first_section_third_de": "1FC61A24FFC4798ABF25DAE6826A75E8",
- "section_salt": "FB3CB3F239125C1C1BD6DDF9572DB2E0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B513CD8A8229B6FB61F46F74",
- "extended_signed_metadata_key_hmac_key": "A0AD8AF52D5901EA38EC1A5500A281D859F5BFF8CC9621E3CAA76EBC681359B3",
- "extended_signed_section_aes_key": "1803010A4D5E860A64B4C8B37ACD47CC",
- "extended_unsigned_metadata_key_hmac_key": "75E0F6FD692515E16A43FC00DE9275DD54B9C0D1D9D1B815AFCDC63C114DD614",
- "extended_unsigned_section_aes_key": "0FB8C699E4F5668E17FD93F78033B812",
- "extended_unsigned_section_mic_hmac_key": "0699D86EA6D343870BF72750AC80E19597EF72A1986C0D469309FB95F6484783",
- "key_seed": "F3F606E2EAF284D689486EC4BDDFB72EA53E353A553970D4BBAE9F27F0D485E9",
- "legacy_ldt_key": "F646617C4B6C43646CB7BB55C7019B1EE88CF4E1D313799C61408F857CB073E7B20EDACF34839DDA810E129F79973E778C9FB5E2390FE4A4973C28EC8A0BDDAE",
- "legacy_metadata_iv": "AA6AF28BDC3810D77EB5364F",
- "legacy_metadata_key_hmac_key": "761E51D0FFF0983F5BB070714A80057A10D57DA2E0000A7F1DCAABA46B292444"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "78D7",
- "expanded_salt": "AACC18D2599645C7EA2E5D22FFA2A0BE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C008A455600D20B185A5139B28DAA195",
- "legacy_metadata_key": "58178F150470570C0A2FBC69BA0B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1AAFCDBCDDA1D3A04E50547E82A62F58",
- "derived_salt_first_section_no_de": "007D683CC3C825622DB8FD4BF5E3C169",
- "derived_salt_first_section_third_de": "F10587ACE739B173D9AD45DB27CE1DAF",
- "section_salt": "0D53219D72727032DE5CB61A575FDA02"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6967DED9D5E9753B94ED5365",
- "extended_signed_metadata_key_hmac_key": "0C2A2E1F11723D60CF7F0FCCCA4C8C07836888769122786EF9B36C592E58662F",
- "extended_signed_section_aes_key": "21F29B44DE473AF9E6CDEEDF27238702",
- "extended_unsigned_metadata_key_hmac_key": "7FE40151743A4B606B875E08A3AB4EB3BEC89D07848B11AE26D17C91993EE7E2",
- "extended_unsigned_section_aes_key": "C12C39F74DA1D51866400AE35058F64F",
- "extended_unsigned_section_mic_hmac_key": "39A16A9A318226917F2D5B6BE7576AE7A3D1F32F35575856E048041AD575F662",
- "key_seed": "C6C30851A25A6BD3FE064BDEB2A5A683FA721CE0F6D9D9B5C3224CB363BA5679",
- "legacy_ldt_key": "3A9F27EA0389A9A0403BB691215D02562FE6851E884538A7F5B3DCC7F541D30EDAE449622ABFFED244B4359D30A473B2A08382503C9B49848A9E0A31BB901BD2",
- "legacy_metadata_iv": "3BD98E98D2FDCD0E496F6BF1",
- "legacy_metadata_key_hmac_key": "7DF415A6E000D08357A74F619D52A725CBCA389439322FEC4AFF87B4934D6C7D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BDCD",
- "expanded_salt": "8543C06D43724AFF939966EF4EFEED37"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "81F4BE63A4BC797A1B12306CCBF3C75D",
- "legacy_metadata_key": "89B3DA033A5740276358A9AB9950"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AA3AB0F4A2C625B409EAAD3284D1ACCD",
- "derived_salt_first_section_no_de": "61271E8B2FA6C58F0D5CEF99BBFDFE57",
- "derived_salt_first_section_third_de": "E64032426404081AB76834C65CF39295",
- "section_salt": "507B86C6C513DBE3C69D9BD9D176DBAC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B6537952D6E1B46A7798C4F3",
- "extended_signed_metadata_key_hmac_key": "EA4EEB3250D660982CFD259E311BCA99FDD12C89D9DFC53F32AA96A209E46655",
- "extended_signed_section_aes_key": "1FF3CA8E225D1F1A7A7AC0FADC652E8C",
- "extended_unsigned_metadata_key_hmac_key": "BF4E9E4F30BD3D545DDDFCC6BB8B1B72FE1329DBF3E9023B7A223F5C8DAFF54E",
- "extended_unsigned_section_aes_key": "E351A16B96DD95D5C1E740406180CDA1",
- "extended_unsigned_section_mic_hmac_key": "7957638544FE4476C2A3191940B65E360583EA4147B31D9376CC414420AE731F",
- "key_seed": "354D2DBD8F54CFB74DFAE2F6972D7FF0A61788FC223FC616DA1D7370B99D5CE0",
- "legacy_ldt_key": "33305323715C608F5BADB685DB56DDF9D39CBE67A77A19EDF89F7E47C1C2E0572F88B4AA0F4BB4D2F07F0C3B163E77AAA79136747AF5B95739B3EB11D27D889A",
- "legacy_metadata_iv": "636D391E4EB891B09E49213D",
- "legacy_metadata_key_hmac_key": "E0AA445FB4C8D446B778DCFF06E4560E90245F6FF20A1107834BF9ECB0BC5E81"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ED12",
- "expanded_salt": "87F2CFEE5FDF00C0E8676BB084C21C6F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "765123DA71F13764633F2AD93AF07E87",
- "legacy_metadata_key": "00BC42D822BB72F1ABF9AA7843D1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "680B9D6AC833F877CF2707ADEEA61D9E",
- "derived_salt_first_section_no_de": "389709B013BF3B19090AF3B793432A78",
- "derived_salt_first_section_third_de": "89C8FC4F1B8B0C68FE903EC9D11B2C28",
- "section_salt": "4BDDA586A8DF33667B809983BA977667"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "43598B78E119E7C26DDA1585",
- "extended_signed_metadata_key_hmac_key": "58A584513563C41CAF1170BF1214ECDB922D5C13E47839B26E06C50F74CEC12E",
- "extended_signed_section_aes_key": "A29467072BF02E7C9247DEAC382DC317",
- "extended_unsigned_metadata_key_hmac_key": "005220B84A3B83078964DDD1D7E257228B839B400F826ADA83194CBF93CFFCFC",
- "extended_unsigned_section_aes_key": "5671A5692C7B3095E2A996B737926994",
- "extended_unsigned_section_mic_hmac_key": "0859E7F1C03918C4B740FB2A468444C574E5411ED3FC0FC19B90800D0875FA7F",
- "key_seed": "CDB298879EC87B3287F721971F86313562C2784A3C9D4AAB6957E6E796236093",
- "legacy_ldt_key": "0323446AF695E5040C60CAECA777B6BFF15C63DA340148D845B5F7A80C58B55B652EC14926A939340888F73291256FDDCC767941990EA6BEE07CBDB20F9A4240",
- "legacy_metadata_iv": "F8770F56B34A6F1BAECAB97A",
- "legacy_metadata_key_hmac_key": "258FFEFDC4C02D5A6AB8B43CB222C351E04A16535CEF5ED843AB958229E1E7A1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5467",
- "expanded_salt": "D5C13E4038DF2E9ABA3A3A826B0CA9FC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E3CC0242EEE44FD52DD2FBCF5D62AFF0",
- "legacy_metadata_key": "24DE5867084A6F4FC45281A0537A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "49F9A7C349E4DE85478D7B2EFD0F595D",
- "derived_salt_first_section_no_de": "89844B4E1D9EFDC94427D51348508DDA",
- "derived_salt_first_section_third_de": "DB60911BC771D748435D83F4B135DFFD",
- "section_salt": "57DD84C2673EB92AC6572F8CCAAC753B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "692B0FA5C38A6DF7FF8E10B3",
- "extended_signed_metadata_key_hmac_key": "6ABB57191D3A6580C42DD3A8F903CA91882E478443E4B474BAAD4523058C8511",
- "extended_signed_section_aes_key": "9E8F1BB3C736CC88E3B1AE5FE323633A",
- "extended_unsigned_metadata_key_hmac_key": "BCB2548ED6D519C7367150BE07309FDF4E5789D3CB1474725F0BAFE187865297",
- "extended_unsigned_section_aes_key": "21B8CCB5121C94A78B785156E54A4913",
- "extended_unsigned_section_mic_hmac_key": "BFE1986D23863A5DAE02C45812382C3CC7601E19C792065219F782EFE72FAB8A",
- "key_seed": "676708BE184A19A6A6289FDE698A3CECAB6EDEC48AB278DA1ACA5BDB36C3E13A",
- "legacy_ldt_key": "75FC96DCF98AC2DADD87526B1B9C0120D1AD17945D8C2AAE929ED39E4AF22298F29815C778A58455DEDB0241837E6CFEA0768DD676042A8006C37E8E38C9A7DB",
- "legacy_metadata_iv": "D39EBCE1DDACAD08B312AEC8",
- "legacy_metadata_key_hmac_key": "E0301C047266D434C8B2E4AD698543D7956CACDA0C1BDAB67E726D62C5BCB17E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E9E7",
- "expanded_salt": "B5DE7B7FF3FFDC11928D6461218F74B5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "83CAFB1DE50AA3A288787AE0C0673C3D",
- "legacy_metadata_key": "566D815BF5877B47C43954D0F57C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A31485425907DB6117D21B93FB90159A",
- "derived_salt_first_section_no_de": "7B94C57D6DAB0F670928DFC51DB8EF10",
- "derived_salt_first_section_third_de": "7695B6236BDE08BF3D2608B1AFA5032B",
- "section_salt": "6A752B4BFE994C4EF6A07DED5D603B81"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9722F26B467736C0EA55A1E9",
- "extended_signed_metadata_key_hmac_key": "8EA9FCE61C9AED8E5B23C99532D21A4A885D9CE6F43C1ACB375378574707AF2F",
- "extended_signed_section_aes_key": "4C1B8CF7EBD0230B3CF9E5640FD0C8F9",
- "extended_unsigned_metadata_key_hmac_key": "5FB998FF1B9B457F6EAEA9EF755FC991E520FF82FC5C0F38F4543B0FC57AD9F9",
- "extended_unsigned_section_aes_key": "1B71CA15A692F885F71E50422B65B356",
- "extended_unsigned_section_mic_hmac_key": "E730D161F780BA7ED6E3677C74899BBE5099A955BBF4260CEF7BC48F80F88C9A",
- "key_seed": "A9D2B974EC6A80DE34075D8A30422ACA39FEA9E6870D7B4C54508DAEDDB96D35",
- "legacy_ldt_key": "C350B2126F928A9F5CDCA7DE6D16FC12A842AAE05801C157DBC33F9BE20645D004C342FE9BB1A0CA42B9910822DD66D1656D9DDFB00C30AAD61322323BFA14A2",
- "legacy_metadata_iv": "CFEE0020BAF67C6B204F7886",
- "legacy_metadata_key_hmac_key": "7293939FCE21A487BC4915FD6CDAA447572577D220ABF338FE3B1DF5D96C6D29"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D9B7",
- "expanded_salt": "69BA190A08750989ED14BBC1718DBD8F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A36523A2A6A6D3C5A076A6F4E62B1A5A",
- "legacy_metadata_key": "2AC63E861E2D7FA9E52A4C2155F5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "22987F3CF606B1800438047E86E8EB12",
- "derived_salt_first_section_no_de": "4B52DEA72E45BD925407B1D091DBE71E",
- "derived_salt_first_section_third_de": "0267ABB0F7D742CB540004EB5749A807",
- "section_salt": "E2D4EFC97F7CFB42A30CE0AE89547630"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BA27F98610FBB5FEA21BF958",
- "extended_signed_metadata_key_hmac_key": "180C4C13BB0C7C08F8E2F16C953113C8FF31D97E209F2AF96E344787CD8E05BF",
- "extended_signed_section_aes_key": "593370A85A889F900148F94D1A438C80",
- "extended_unsigned_metadata_key_hmac_key": "34AFEF1DB3A6FBE8578E723D403D0F93FF4A414C5281B3383E9CF61CF065238C",
- "extended_unsigned_section_aes_key": "C27727E83BD7F7F6F04AD45F0B735455",
- "extended_unsigned_section_mic_hmac_key": "A389E9F42475F2EA9FFE41F846FABBDCCB483808F8F243BB4166C9004F8ED0A0",
- "key_seed": "99FF0B24E735722F69295A7821F3C2F8E9DC7776BB3DE67DCEAA1CFDCC84A0AB",
- "legacy_ldt_key": "B5308C57BF90685246505BC72E2360F35AF20EF748C80FEB2DE978B221F845D18511BACCDBC15AD28E3A38D68138FD00D03469FB51E36343EC662161AB3CF30D",
- "legacy_metadata_iv": "1251A0B7278940002B373747",
- "legacy_metadata_key_hmac_key": "589673FD707B601A098132A85BA68AAFEFF0F2FFC5FB1C835B8FCE9A6AD5E5B5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "195A",
- "expanded_salt": "AADEF6A624BAFD873E25E95AB52A2545"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E8E547C428BE53E41A9D2B4F8051E9C4",
- "legacy_metadata_key": "C5966273E5E1EA47B7837931EB1D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A7FEEE84637C8D373D17D60C86A3C95C",
- "derived_salt_first_section_no_de": "1BF6B7173BD3F93313EA67DBB967191C",
- "derived_salt_first_section_third_de": "4D10CFF1EE10B9BB7104191AB55FF647",
- "section_salt": "20EE5B89DD5BDC84B90849444736312A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0CA018817C67190E6483964F",
- "extended_signed_metadata_key_hmac_key": "6649CC643C6D9143B720ED16A955934F2B04BF90E4B0789BC745581DDE228F35",
- "extended_signed_section_aes_key": "4334C4121F1F97D7C0EFA71B9723AC88",
- "extended_unsigned_metadata_key_hmac_key": "F7911511D8AF86492E8FDA11DC93039463798F680D4932B414FAE4BB1430EAA9",
- "extended_unsigned_section_aes_key": "281D7AA3F9C9B20AC4A420266FBA998D",
- "extended_unsigned_section_mic_hmac_key": "71868A4B88DE7B565EC0072342CCA87F16BE7C017DAB1C57855A9EF36B27C642",
- "key_seed": "CDDFC9E3654F33E1127FC42166A33291D810A419CC73F982252CD5EB369C1CE1",
- "legacy_ldt_key": "AC30B0E2C4C15F5C588216460C663F8EEBF75CDACC39749451843DB4FE441BC674B64EE9542593D667A3B83CD500F9159BDF4AD078A5B802BB778942363794EB",
- "legacy_metadata_iv": "62F593FA1666E60AC0DDD892",
- "legacy_metadata_key_hmac_key": "BAB033C0730969844B870834588E94DD232F23806B84EAB7B6FF4A346C081120"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FF7C",
- "expanded_salt": "8EEEA1015B200310F18C4E474744D7B3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BED140D2954D98FAFED3E24A2DE5B8E8",
- "legacy_metadata_key": "67EA4FDA58A93FDCA8DB237E62A8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "609AB44F493C61FCFA15B88B31CC556D",
- "derived_salt_first_section_no_de": "825499D763FD5D70F0F3BD515AA8FC8F",
- "derived_salt_first_section_third_de": "AD74D29BD99CCC5985E24C800D431D15",
- "section_salt": "7A016CE74BDD255C9E8B36AA0769DA9F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EC8675DBB650D44B8FFA87C4",
- "extended_signed_metadata_key_hmac_key": "EA4D241A1A149040C3CDE2436AB394A781FCA706475B222B89DDAA54B2E57172",
- "extended_signed_section_aes_key": "EBE127C16EBED5C9FBA51A851F11CA7F",
- "extended_unsigned_metadata_key_hmac_key": "05AB2F8B000A5FA9E2BC866E9B0A4BF3A3785B276E74119320F60A86C61C17A0",
- "extended_unsigned_section_aes_key": "BC7A2D652C18E69031318B32F8D893C1",
- "extended_unsigned_section_mic_hmac_key": "311BEDE6446BF0F24F0BCB658E8D22095BEEC637B0FC9866850BDF6DA016755B",
- "key_seed": "2632EEDEFA5A474867722A124C32D7D854000884DA216BC32492EC3FCBA975D4",
- "legacy_ldt_key": "E02A5C3153CBBA6AC4A277301915B55108E8647F05ABD66535AC258F922AEE62405702E3AFF59781990938F4532627FC8E0F7D995974EB5C236330E17C412F45",
- "legacy_metadata_iv": "FDBBF2E1E0783400B6C3FA14",
- "legacy_metadata_key_hmac_key": "AA636BFA8C9FE4E541878681CA02A3375763338DD9E2A47AEEA84D9E7584A465"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BD63",
- "expanded_salt": "531271940AA3F822955CB86D905B40DE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "940893F1B3493BFE3209E2E310C29B37",
- "legacy_metadata_key": "8A17613AD6260907B24AAD799965"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "039D2348C7A9DC4B2531146B245C5606",
- "derived_salt_first_section_no_de": "E754EDF303EB6AE61AEF97AFEFF6F6CE",
- "derived_salt_first_section_third_de": "AB8449FE0B14D4ED0020B6832130DD8F",
- "section_salt": "9CF40E2FA1E2D623929C3D4A7CE7E0E4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C8D8C7D32DE41E1534401B35",
- "extended_signed_metadata_key_hmac_key": "E765F5AE84AA4A4A2DAF6D006DFB8AC3FA32A1CFAEA1295B704C8CC6338D049C",
- "extended_signed_section_aes_key": "87EF3BCCB74572F32E8E34C30CACDCFC",
- "extended_unsigned_metadata_key_hmac_key": "F80B24FE15A24AEFA2B8FB8FCFEC84F3D3FC4B30DACD319F1171342D5A1062CC",
- "extended_unsigned_section_aes_key": "E9E4C9CE1A732AA29C61E5183162B5E8",
- "extended_unsigned_section_mic_hmac_key": "09337CE948B507BB0F50C914B5F7CB2770453002B8A4E39979D38FB1005BC89E",
- "key_seed": "100082925B69F87B4DFA73DF60C889775DBAD2C2CF749121C29715D34D12ACF2",
- "legacy_ldt_key": "67DACCA346ABF74D418E833150D8BF57F032EA4FC0E00B0840F5CDF35A7E4CD1A5CB2E10FF851C9F7832FAC75F2DFB0A28ACD0ABF3BB7CDCAF8F352BA9132E89",
- "legacy_metadata_iv": "4D9DF52DE4D1DB20B8E98809",
- "legacy_metadata_key_hmac_key": "3344C5AA7587F3D528C7C249ABB8E77DD1C67985A5D0706C81F68FD4C91E02E4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6583",
- "expanded_salt": "A72AB9FBE942DB160277A10F11BC7D30"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "29C2D7596E7E1EEF743FD85E4E298FB8",
- "legacy_metadata_key": "B53C9F7ED465D8066ADA1E556D3D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1E40709E2B1CDC4D17C29EF85453A7E2",
- "derived_salt_first_section_no_de": "989C3E7FC61B8A9D193B43A6145D1968",
- "derived_salt_first_section_third_de": "0158CA88941BE1F1442FFF35A1FD83A9",
- "section_salt": "2B2FFAB6DEECDF0B16BE81AF7AADAF5B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C7DFA5635E346E759592EFAC",
- "extended_signed_metadata_key_hmac_key": "DEC6214C541836118D991C788102D1EFD3F5FB075580CB58688F8F09D33A580B",
- "extended_signed_section_aes_key": "DA6E1D2BE4275CB348CB6A1FDBE77671",
- "extended_unsigned_metadata_key_hmac_key": "03A84213FA885F45C6C8E20DF20B96C082DDAA32BF169C0260CECFD75D6B9CFB",
- "extended_unsigned_section_aes_key": "F67B3CCD51B17BEA2E0556871B69534D",
- "extended_unsigned_section_mic_hmac_key": "49AEC82D7FF5DA93B2971C0448ED490F909CB35C455923926E426922C320BDF9",
- "key_seed": "731EC10C6104FEDF27A5702D337854612E4734ADC9378C0CB38225B14B46AA65",
- "legacy_ldt_key": "20CABF63DA6487EC2CA719EC17EF6426A6A2603CBA535BEF20E23470FED3CAB333737A342EF971478704E23302C23EA156A07B9143602569A5CBC0711646CC7C",
- "legacy_metadata_iv": "81F37594A8D455858E5C06BD",
- "legacy_metadata_key_hmac_key": "E3BC66236178E0D3F6F8B15697A6234B062D2D8773236C34CB8154D1EB109BB0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8F19",
- "expanded_salt": "66503E442427BADF92BCAD458340A205"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9C5FD7ECD2D8243D68AB253BA5113525",
- "legacy_metadata_key": "CF509E424CE9D0B86710BACB5994"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "759884658C810673D3A53F190FC319F4",
- "derived_salt_first_section_no_de": "F68CE6A83E5AFAC7E47C28047AE43768",
- "derived_salt_first_section_third_de": "55A68D1334E1684D56A803F7FD31FD68",
- "section_salt": "F734A878C32ABE2CF2D624B1CEA73FD7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "35EF55DF7CE7E0F392037351",
- "extended_signed_metadata_key_hmac_key": "E20290B38277CD6C30818CCF3039C7AC0DAF20C2B7FCE6DB2A78A3275BBDE321",
- "extended_signed_section_aes_key": "D901F88822DFE8ED8429793BAFAD6659",
- "extended_unsigned_metadata_key_hmac_key": "9BF92175C0140AA4C9F6FEED6BC91493B57D1906CD6030A2F855EC7B5BCBFFCF",
- "extended_unsigned_section_aes_key": "3FC125F274EDF6496FBC1E4997721D9C",
- "extended_unsigned_section_mic_hmac_key": "B75D093ED9DB6902FCABDDC7C79DEC98B56CE740B00C9DBA7303D2B2BC712206",
- "key_seed": "719056FF598B6BC5EE9C02B6A029458E7B340DCCC4E2B55AA6BEC715AA92273B",
- "legacy_ldt_key": "B5500877466C86558050BE06C1A17A6AFEFBE8EA2F91EFB221C803B4783ADCA0573152B83D7DA0E1F80815E18BA1A1FD519F04C6373EC4B776B5EAA07C77554E",
- "legacy_metadata_iv": "B254F6A34A82333D7C1F02EC",
- "legacy_metadata_key_hmac_key": "257E64AAD5DE8026915EC5D7EF2C6EAC47CBB621E0C6A490D33C200844C41302"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E458",
- "expanded_salt": "1A5D0094B554AD92CA9264F5591E438D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1EC3661E4E5E246267B9BCAA4A1EE773",
- "legacy_metadata_key": "16F6EC187A67FC0C92E125CDC65C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E65CE5B2910401468B64DD0B84A89D74",
- "derived_salt_first_section_no_de": "4D210C468903C34119A4055ED0C178E8",
- "derived_salt_first_section_third_de": "1D0C52098B511DDB5DEB851347201A97",
- "section_salt": "97D3A9174867EE6FE0B7A484BD088315"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F834709DB8A33A58E680D1EE",
- "extended_signed_metadata_key_hmac_key": "79FFCC4E1020A620CE780FF39203B277D5B18D6E30164D7995CDCE29F91EDFA2",
- "extended_signed_section_aes_key": "45A0802A042ED791CF6236726A40EDBA",
- "extended_unsigned_metadata_key_hmac_key": "B37AD861194149A222D802C4F4BC449D6DCFDAEB455F71F611B2354D39D7363C",
- "extended_unsigned_section_aes_key": "997F736404BD452BC9E553F8068F3F4F",
- "extended_unsigned_section_mic_hmac_key": "CFBD33FD6E4C7F441684ABC092D56072EAD96EF24FAE2227D0583DAF41C2207F",
- "key_seed": "6D8696448175438D7DB23026E01346F69E9DC907F4686B3F42F57CD5C6E432EC",
- "legacy_ldt_key": "4086F5D1BE70F524F82585940E939204472AAA596D5249B205F61DAC80663A775ECCA1ABD76138B565123F33590294DFE8825EAE92AE323F13F9F99AE6A6AF5C",
- "legacy_metadata_iv": "2C1B46B74FBEDC12707F4777",
- "legacy_metadata_key_hmac_key": "62DF487C3DB90C1205805A0ADA7BAFA6EDE97B0A47BE5A1A6C8C43697889C2DC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9740",
- "expanded_salt": "17DC96B01C2D052BD8DA58C9B839689E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D1B33ADF70E0D75F62391E9364DD46B8",
- "legacy_metadata_key": "9346BE39DE7287C2B756C097DBB2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DDAECCE6FCF8DE15570ADAB59951EE8E",
- "derived_salt_first_section_no_de": "0DD244D7C066967AC24EC93C6A8D0DF0",
- "derived_salt_first_section_third_de": "BA74A6D56D2CF228ED658D6B201AF322",
- "section_salt": "50C612AD7567B70A688047E746774483"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "808EF9465AF213E1D73FD624",
- "extended_signed_metadata_key_hmac_key": "6E37167C75847AB7ECDFCED571CCEF43508CA20BA27B0EC16391F54C788A8E81",
- "extended_signed_section_aes_key": "B495C81272EA9469B582ABB58C1C9D64",
- "extended_unsigned_metadata_key_hmac_key": "F85A76A01791E05B8B1C02FD0A4BBA2B9C9C5B4C18AF95E316ADA6D66B387914",
- "extended_unsigned_section_aes_key": "EB9AC4446CBAC3AC90518DFCC77E8FCA",
- "extended_unsigned_section_mic_hmac_key": "19F7B2CE2D8BCE2AEC20395F1B4045F789F319DB6F064C72DCF37B0D9CA7C79C",
- "key_seed": "C072D1D4EAE331BB68F082159631640DCDD7D6332BA1CECBE437B7F893F59E5D",
- "legacy_ldt_key": "284D13B31DC377983E1513A1DFDE2D7F9A76F7DFFC208D5CCDCB9C8B8EEE3064FE19188795420A19D21D46D73602CDCF713F3C1D5BA557CFF4F32072470EA2FA",
- "legacy_metadata_iv": "BC0EF8F6E23C11353F17F19A",
- "legacy_metadata_key_hmac_key": "727A37FE47DF9A90F833215D768EA4CE96C12B51C00369A90D35B5E16EC0A7DE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6131",
- "expanded_salt": "68A765F62F1BA36E8AFEFE792A5EE890"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5933DA7CB84AA0C83C2448697BF1DB61",
- "legacy_metadata_key": "179515DA34464543456A063D6FBE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DB705D3CFF9459A57D790818E3E3661E",
- "derived_salt_first_section_no_de": "C9C4C150DA626BF975D7EE3E3895196A",
- "derived_salt_first_section_third_de": "BB0E13B5779E1869FAD3946550C73DE0",
- "section_salt": "42BD9C4EF6E88DEC7520D1EB1BE55AD0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7769CD5851C6DBF85297B889",
- "extended_signed_metadata_key_hmac_key": "E6C7FD32EE3A00025EE16A262B11747608EF394BD3E565134FA47F7AAAF09795",
- "extended_signed_section_aes_key": "6BF81ADDCB7CB77DBEEBB67B75B67D40",
- "extended_unsigned_metadata_key_hmac_key": "8336473461FCD8F355FC0E1C87AB1E6A7DDC2BD58E44D0E6FFFE5DFE644E5B11",
- "extended_unsigned_section_aes_key": "150C3972554AF3CA6B0663A0F3D15C31",
- "extended_unsigned_section_mic_hmac_key": "07D1578943F6360E450905EBDC94B14B06FB080E30998990042C3E43CAE2724D",
- "key_seed": "B2EF81758A6FACD0465E4BA0B602C25B1D9018F0E0786F162F7E3D91BD801CE4",
- "legacy_ldt_key": "34C9A7527137F4BBE544BA482E564A19592FEF4B39178D2BA6FD0E5E6E02D10515D4130655CB971651AEF1F1AADC2AD3F894F6B1DD884EA38EB371F8C27BE3C7",
- "legacy_metadata_iv": "54C09E95ECA78CAA4273621F",
- "legacy_metadata_key_hmac_key": "A3366D21FB4FF1D5E1486D544C2D6738528CEAE9D975F3132020341E07B5940A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1196",
- "expanded_salt": "B20E7EC9CE1CF448D501F9171E46DAAB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9A3AF50E6CC7DEF9ECF34C7C304B1709",
- "legacy_metadata_key": "A0AC272D8602E940A0198FBB6937"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EC619DC89A25FA07095AEFA584730685",
- "derived_salt_first_section_no_de": "729B884A263CD1D6D7D5AE5FC198C803",
- "derived_salt_first_section_third_de": "7201D473B3EE4FD29A7F86DCC22F070A",
- "section_salt": "33F5C8727C352AC9264394682E3B4AE2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3E488AEBB976447056BD43A5",
- "extended_signed_metadata_key_hmac_key": "8DDD842B7CE2AF577470F544CCBA3A1F94EA8F365063B45CC4088487F80FCE90",
- "extended_signed_section_aes_key": "3A7BD09F379A90530439BEC486909F78",
- "extended_unsigned_metadata_key_hmac_key": "80AD5C551235D1D7F9E8DE53AF5D9B29D08601751DE30F0132DD4EBD01A30B4E",
- "extended_unsigned_section_aes_key": "76B4B257B211410B43DD35A7F0AFEBD7",
- "extended_unsigned_section_mic_hmac_key": "4E100F5C34FDEEAA799CAE2F7B3D87910AFC1E6EA64849AC1E629C634ADC73D5",
- "key_seed": "4D8B8651E9C8A52CE6637C7EB9E321B89AB64F4803340989DEC98C8957133994",
- "legacy_ldt_key": "9527F15131540E8678D6EAFAF2DAB9C5B73B6B48DBBECE51467CFBFC4A56B66FCCED583AF1C0E994F81E7B332917BEAB7D3330BDF323CD0CBF7D7DA2E6B587BD",
- "legacy_metadata_iv": "3BCDBEA5542FF303BE67D5C2",
- "legacy_metadata_key_hmac_key": "3132747D965556F1989F9DD2C45C06BA199602C94B8C3F0F203E4B00C9820CF0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9B3E",
- "expanded_salt": "636B3B9EEFC93CF1878944F77A32FCDA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E5B8A251923FC30D0A9B31905D4DDA06",
- "legacy_metadata_key": "F12EEC0AA4AC2794F6DEE26FBA2B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C05DDD1BC68A33B01BCA21BF17B7EE1E",
- "derived_salt_first_section_no_de": "21723B7859247F1FFFFD99C01F496E4C",
- "derived_salt_first_section_third_de": "8C4C56094176405A9FFC8ED634B9BBE9",
- "section_salt": "2E107BE95511C406F0945FF926AC577D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AE189830B655ABAE7C8D2DAD",
- "extended_signed_metadata_key_hmac_key": "84BDA5788B71BA237F48ECE0379681399EAE942B3221D21FE0D8555F4B3765AA",
- "extended_signed_section_aes_key": "5470B3AB44CE5A49D1707542A0BB245B",
- "extended_unsigned_metadata_key_hmac_key": "693F6D1C951DC9BEA6ACFE2F747FE6DD843B5202D3ADC8F022CBAE9AB9F15EDC",
- "extended_unsigned_section_aes_key": "287B850B5F45D980411532885A0CC012",
- "extended_unsigned_section_mic_hmac_key": "80D7726CF22CC821D794E44252B29B385527A013E1891C0FCF2A607215B8111D",
- "key_seed": "C0D99EACDEED0F5CC1B4F12BBFD506E0B4F94D44A6AF3BCA6A39B899A3866E38",
- "legacy_ldt_key": "0D0D7C21B028B65EAEF7ACBFAB67FDA0FFC0D3B000EB163526ABBBD2C396634CD99BC87EF975F8F9211D724E2B5D2707E1721BBE328CB6923B232868DC2EE007",
- "legacy_metadata_iv": "5DEC7A85382854D5F09ACD0D",
- "legacy_metadata_key_hmac_key": "7BEF518AB662052FF2D0DADB8797BC240E308B2F028DB777B8D0EBA2332AD65D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4EF6",
- "expanded_salt": "795D48BF9226351DFFEA1604D273A9EF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C8BD42AB8A39202E628A2C29EF9DF472",
- "legacy_metadata_key": "5D50C219378BF386B9E8B106D30D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1EA717958F24E33422F72CD8FCB2985A",
- "derived_salt_first_section_no_de": "050DB21236B0807998998FB284B13997",
- "derived_salt_first_section_third_de": "E63088C5A69A2B276EAAC04ADDAF785D",
- "section_salt": "FA98D20716C0E0518561C848E2E306BE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B7B241EF036137C54EC096A4",
- "extended_signed_metadata_key_hmac_key": "89FBA0465586F0417A5E672B3275F30B5F34D640E5AECA961B7F8F523A397623",
- "extended_signed_section_aes_key": "0AF9BBD9711033B64C246A52422F1C6B",
- "extended_unsigned_metadata_key_hmac_key": "5C11A7F98C24FAB9FACD1DA7E2A03F1330E3B029CF6ADA8FFF3E6D5ECC6546A2",
- "extended_unsigned_section_aes_key": "CB3F07BD33C425D547799746E9CE3F6E",
- "extended_unsigned_section_mic_hmac_key": "D58A3CC2171DAE92A183AB4D0B7AFD76325581C16E4B2C6FC8ACDABD08BFB54E",
- "key_seed": "0E346D63C8C4D9E1FDC2F8A39489C4D17ACB36B592724249DFAEB2CDA428DB36",
- "legacy_ldt_key": "B9E748B1FC1D74DF5C548CCDB6C1CBEB92B318C9CA6802F9556860674D1FB0ED490ED5EF3F8CAD8BE4021F3590104270999745E8A0AA1BEEFF8EE865D39E1AEA",
- "legacy_metadata_iv": "65EB1194AABC1686673399C9",
- "legacy_metadata_key_hmac_key": "ADB33C287F25E8B2BBB1C4FC1D167E69E7BBF5B202B8E3BEBEFF080C3EACAFED"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EB19",
- "expanded_salt": "586E006857826C8B56EBCFC33239BF5B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FC58DD3378BC8AE5BB95F1833EA34AEA",
- "legacy_metadata_key": "FEA4A89AC5B47C8841D35E64277D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "68DE0F72B4B0669D5BE90BC0E38D3A83",
- "derived_salt_first_section_no_de": "95039E42D16E421255841E88AB521D65",
- "derived_salt_first_section_third_de": "AA668916D04BED87F89D7DA40A58FADC",
- "section_salt": "4AA85119FC64289831A37691F792AF81"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8A5D028ACC0E2EB83B0B1FA9",
- "extended_signed_metadata_key_hmac_key": "B5BFF6820A029CEF3BB9FABBA0434C479EBC282BA216FB20CDBE0C7D33E309A0",
- "extended_signed_section_aes_key": "994749D831F7ABF28314B5F206284C7F",
- "extended_unsigned_metadata_key_hmac_key": "57C8FC75124012E0C539925C7F28F4A2E8C5CEBD01A16FBEA51D5E014AA44EA4",
- "extended_unsigned_section_aes_key": "F66BC0AAF79A1E75F3BBE215534A2E73",
- "extended_unsigned_section_mic_hmac_key": "56062C57066DF8FEEE6ED4ACF4CBB2D592BEC8D3C9FE1D911E3DD02229364B5D",
- "key_seed": "40E10CAB33C8879368DBE5D61D5B699315C2D1F85D2B1C1D7071078CAB783CFC",
- "legacy_ldt_key": "8F8BF1D4EBF93B0D931AEB2F0AB8BA290AA744574B13B935DDC4DD096A67554FD78E96A3AE2BF95AC3E87C408E1BF4C92D0475C04FE04B3FF8A61B21288B12AD",
- "legacy_metadata_iv": "4FDBF3FCF3CB37209FBC2A02",
- "legacy_metadata_key_hmac_key": "78D17D3B68AA64C023CF79733312E5F4EB482DE30DABBFA34CDCE229892DF18D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1A0D",
- "expanded_salt": "1AFB57FD22B4999FF72968F9CE077854"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3AD9C99E8ADBA843BC20BFDE44ADE3EA",
- "legacy_metadata_key": "803E1CD33F1CA5E8C933D80AB0A1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "867E21F528ED0030235FC8FF36D6213F",
- "derived_salt_first_section_no_de": "57A474C38B69A255A735FD988EC09579",
- "derived_salt_first_section_third_de": "DC08BE70B2774FAEC3CF872875D4C114",
- "section_salt": "C5741D686AACE24EAE44010BC032377C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1750EA40CD6C02B5A19880A7",
- "extended_signed_metadata_key_hmac_key": "F8B0A573C0FC8D01408F3A7CBA8A85ED1A3CB7187DB17DAF31B63CD80605C46F",
- "extended_signed_section_aes_key": "5D2F04C2E39FAE5110E8AE38FEA2AF04",
- "extended_unsigned_metadata_key_hmac_key": "08599B5A9BCC959836B9654E7C926F42AA3E01524EF29666A23336FDCB8F5BB5",
- "extended_unsigned_section_aes_key": "0835FB42AF28859D245E8A4166B13B68",
- "extended_unsigned_section_mic_hmac_key": "675BDEF67F4C4C2869B3803378BD6DF55FD6DF6D3EBC61054CC9D82F23BC6190",
- "key_seed": "CC9E628B488F571176A3A1D85302D6B537C7692C72A02192F7B2F9AC9324A464",
- "legacy_ldt_key": "E11B577FB155C1648E7C2919CB1658472A5C2CE605641ADE3BE4E6B0777FCD0A0E0295D9BC5BA62049D6CE222A55C7101360B3BA21AB8060119895FFCED6CCB5",
- "legacy_metadata_iv": "474F1BD126E00D0FB2954AF7",
- "legacy_metadata_key_hmac_key": "F9B51A189E6C1FA6957EBBA62A0DDA038B34A5AD62A0109AD48D4C613177CD59"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3F98",
- "expanded_salt": "1146A4C7910C667D600F305E80A9D7FD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C1213A9539F791E1EB290301E0A8F2AD",
- "legacy_metadata_key": "945759336FAA9B37A93E9FE3F397"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5215E31C62D292AFF1D249F49F59816D",
- "derived_salt_first_section_no_de": "21A1D5721C2FFF2BBD3E9B74AB1058BF",
- "derived_salt_first_section_third_de": "EB9CD385E6F40D64DF4E01CD0524535B",
- "section_salt": "2AB48C878D870282D6D630DEBC22BDD1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9A6FC47B053D26AE70C239BB",
- "extended_signed_metadata_key_hmac_key": "700DE46E7C37417F7A6F247A7B714802FA4E3F6FBC057163654E478C93008260",
- "extended_signed_section_aes_key": "3F65112CA3BDDDC64C2F4AA740E4D227",
- "extended_unsigned_metadata_key_hmac_key": "E6C819004C1022D1A7ED2709389526FAFC42E98C582E080F8738EE0C26C40599",
- "extended_unsigned_section_aes_key": "3B54749B81D1460CE979AA6F9D4429DD",
- "extended_unsigned_section_mic_hmac_key": "36EC9ABE49CF6527992D86C64430B421D09CFFAF787235B3076BBCEF766D6E67",
- "key_seed": "108811B650E169C2A272E8046684975CF1DE0B91DC3D29A7EBC854AB3F227383",
- "legacy_ldt_key": "9524A4E5BCA5B836C25077E34D94C58C81078450A188446E56CF4F2D5343A97839978A088926855A5C1213FD6B1C047AAA0FA59CF2FB7E0F9AFD062BB6FCB978",
- "legacy_metadata_iv": "FBA4C0129B11034838442027",
- "legacy_metadata_key_hmac_key": "7D27DBFF9EA5A319317E3FD6DA6E1CACE85BED611A09FB6864E7B3A24B2EFF2C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6DA0",
- "expanded_salt": "DC0A7D21825D44F87EA43B825FCB2641"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E9EB35F4350FA5B46C10C55F6C1BF695",
- "legacy_metadata_key": "00B04DB9EA20C3ED6021610CB990"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "63F5AB32BB268619F4BC54F675E5B859",
- "derived_salt_first_section_no_de": "302FABAD821969DC104F2D39397C8A5F",
- "derived_salt_first_section_third_de": "1588D3980C5252D35CF8407A04BA9FB9",
- "section_salt": "9047E27CF0105CAC63CF6CED6E64BE1C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8C3526BFF9BCF81E34C8B4B2",
- "extended_signed_metadata_key_hmac_key": "74091CAFCAA56DDF01BFDDB09B099EBD96F92CC15EB4CC8D79B9ECF3A1BB904C",
- "extended_signed_section_aes_key": "DCDEB8986573A1CA95865BC6A1A996B0",
- "extended_unsigned_metadata_key_hmac_key": "40EA225BAF3AB15A7845A3C70FDA3F9731136038B280AB99B61C13B9BDF5E70D",
- "extended_unsigned_section_aes_key": "550327F5E51D665E4E95CA7387FC99AC",
- "extended_unsigned_section_mic_hmac_key": "F7EDB6A119BAC6C934F17CC9614A38E6327BBD33917BC99DF2AF85CAAE72B8B2",
- "key_seed": "E1879696E53219100D4F5217FC0EBE5A32CE73E174617DDA9BCACEBE54230652",
- "legacy_ldt_key": "F8EC9C3E32A576E144326EA9353D33E9FE617325C82FFDCBF1DCE8A66926016E8E37A707D44B51F38E8D7FF7E60E070912AA27ACC02F19B09702AB87A6FAC0D9",
- "legacy_metadata_iv": "5672E643432B4F56B0561712",
- "legacy_metadata_key_hmac_key": "B58628744C7A30C84DB1D91D29F5FC4C102F90D22323214F53290B22EA89AF7F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D7C7",
- "expanded_salt": "8808B9E8D96FB28B237BE7444ECD9999"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0DE99452BB8EACAC7CB47A237382958C",
- "legacy_metadata_key": "139A24CAE5AC4CD2B1E5C8E93D8A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C462CD4B578658A7A565B11C52EF1DCB",
- "derived_salt_first_section_no_de": "144815A5F31EE40E4B866A381474EC74",
- "derived_salt_first_section_third_de": "EC78305539090E8FFF67A869EAE65665",
- "section_salt": "D3894A64CC95E09075AC12C0AF60B5F6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5716658AE1519CF92A78091B",
- "extended_signed_metadata_key_hmac_key": "A6FBAACE70D79497A774E17A1CAD6680AECF180022BCC7C5C1D224B24B5CC2DF",
- "extended_signed_section_aes_key": "36D0B937D07D65AD87762F3164B78C8E",
- "extended_unsigned_metadata_key_hmac_key": "4EEB45306B1A222DD5B8118DAD123069A8382BE7436DC6954C7DB25B5343A017",
- "extended_unsigned_section_aes_key": "A48180ED6A90B5ED890E8B1BD58580B2",
- "extended_unsigned_section_mic_hmac_key": "2415474084F9C295E9DFFF36DAB19D98C446FE12F805BF33191E549F543E5340",
- "key_seed": "C7CC17DA55B6DD30C44785E8822EF180F398D30F862F6350BBB3BDCE527DC05F",
- "legacy_ldt_key": "56FB792C767590001F83DF9C5D991A98737B840EE1891A90209D7664C6AA22C15BE11ADAD761C937CD59496830440C3AD96CD90FBF68F2F2C14C8470A7107432",
- "legacy_metadata_iv": "E099C07D458301122417A356",
- "legacy_metadata_key_hmac_key": "624A9608DF6E0F37A646C34E89CEC729CDE8D84A67E412D06D5F93E47013848F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BDB3",
- "expanded_salt": "53A72FBFBE750E231DD2DD2AD9E81F07"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C16635CFAD4BE83284C5169CEC38F99F",
- "legacy_metadata_key": "AC80A31A7A3243A175247857AA10"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4D52EE4EF2DA01B25EC3878987449410",
- "derived_salt_first_section_no_de": "9B7C2B1DFCC95B7DA308CFC1C6945802",
- "derived_salt_first_section_third_de": "99F83E26C5D209136285DF837536DA4D",
- "section_salt": "C54447BC095290ACBB701B596ABF17AA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CF3860556F75831E164C9A92",
- "extended_signed_metadata_key_hmac_key": "7C74006906AE3B07DF0A8028D6339191D996ACE93348E04DAE6D8B3EB96E348D",
- "extended_signed_section_aes_key": "3D3A3CF6EABBA1AEA80BC0D1F8160BCC",
- "extended_unsigned_metadata_key_hmac_key": "2C2D9494BDFD72DDF8DB438D4EE4A5DCC25F3457493F26E338A8B00658618EC9",
- "extended_unsigned_section_aes_key": "6BC235B4B45DA329F6DE21A52855CFC4",
- "extended_unsigned_section_mic_hmac_key": "E06E1D53F65A312FEFEE327ED696D6718BD17837D1BA45DF2893095456B1BB6F",
- "key_seed": "2867E1EDE0BF10B37B00EA0A10016067A495F49DB1C4F729AD4955B4D7CD3244",
- "legacy_ldt_key": "3DC47A03F4D56D2F6F3BD606F5D9FA668141296354F7003915BC04456714810A2EC3386E0635309690BD5B62E4B561898F18E48A14A56B04804AC3758D6197C8",
- "legacy_metadata_iv": "45513377851FE274F7287231",
- "legacy_metadata_key_hmac_key": "5D3D8EA3B45A1958E73CBEF5D3D1F2E1E0A3AE4ECE38BE7523FCDF01DD61F979"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CBA1",
- "expanded_salt": "E2703A0F191B99E44735537A7900DC6C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "55144213F5B84B95179AF359495AE6E8",
- "legacy_metadata_key": "E705F67D4A709198451AB7CB9A13"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D0670E908C32009C52AE76968DE06BCB",
- "derived_salt_first_section_no_de": "57D51F555D96BBCBACC449AFA4F2E9FB",
- "derived_salt_first_section_third_de": "C051CFFCFEEE801E05D59115D2469994",
- "section_salt": "E982995933FF7DC2B74375362BDDB91B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "755993291ADDDF4B3C2A05DC",
- "extended_signed_metadata_key_hmac_key": "9DF9D2A46B067967DB1B18568CB5CDC8763CF423BA0A85A7E020C95C214D6857",
- "extended_signed_section_aes_key": "15B5DC1B7731401E1E5FA7C9BDCA9604",
- "extended_unsigned_metadata_key_hmac_key": "16BC34E21FE52E1B3ADE0DA34D9D3F71000ED1033700CFFA55E85C3B8E3FA875",
- "extended_unsigned_section_aes_key": "DF2695622C234F7EE9F9B333E02F0013",
- "extended_unsigned_section_mic_hmac_key": "65762DA2491F98F1ABFB0D3EB5023C889ACE0B979C07B9F9028463E056BC3850",
- "key_seed": "EB9D622CDE3E3042B4C2BA29B5AF65E22049DE864628568689A62A438A92CEF9",
- "legacy_ldt_key": "8376E7D321D99E99C36EB675908E1A0A22DF82785D2BBCF46C55A33BE1EFB93C363CC41DABA8CA3519E7BE5F6FE08B32AFAC1123934973733A4E01A93F1846FE",
- "legacy_metadata_iv": "1757A0D83504D3F3A03294EA",
- "legacy_metadata_key_hmac_key": "42E533389AA4E26F1B2E181955F58BA04D31BB4AA30A74AD5B47A528139A20A2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2B10",
- "expanded_salt": "3235814BA1FFE499AC1367A0E7BCA4AE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "619FF60BB55FCFE60F17D1A9004BEBFA",
- "legacy_metadata_key": "E70FB1EC3D4464D53B68F68DF9DA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "73707E06D448FA8175353760726A4A1B",
- "derived_salt_first_section_no_de": "48D3978A43A9E9562DAF1FF431D1C8A5",
- "derived_salt_first_section_third_de": "7C49F9C9AFA0688E6506E3D78481018F",
- "section_salt": "32C4F0237DA0731F57943B25D6DB166B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "63B40574A6347AA2705BE6F2",
- "extended_signed_metadata_key_hmac_key": "45DA05C5842D1D8B10D18BBCEF052531056C41585409E905909E12C83C5A61EB",
- "extended_signed_section_aes_key": "7C5ACB6E5D04C4D8AB83555A08394FDE",
- "extended_unsigned_metadata_key_hmac_key": "C15473887069F7D3521D6C097053EE230311B40CCA6D03B68D0534400DC8565E",
- "extended_unsigned_section_aes_key": "1EBF5105530774BB5ED20BAFBD91C8C8",
- "extended_unsigned_section_mic_hmac_key": "BDC4DD8FC39FC3993F1264D079DC7392426200FCD3CBECCD4FA46306D630CF7A",
- "key_seed": "A8CFE1BC8A9F2CFEB141CF34F85342B80837E6D783D056969426D20EF79768F0",
- "legacy_ldt_key": "E2D5990858397FAC1C333878DF03A6D28EFDF27BA6184402264566A3B9BAEDDED5E358CB4EA8170ACE20C7F5334C40F8AFAC5F4FAE12A22A4AC98087102202CE",
- "legacy_metadata_iv": "11AC5C26DA5C4CB940E60FA1",
- "legacy_metadata_key_hmac_key": "39DDCFC08F4BE7DF5984643F2D1746DE6B1B18261733752CD14A986A71E4FB0A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3727",
- "expanded_salt": "7EEFC2DF40B920FE3E01E928F3FBFC47"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C2AED0F3BC27AF27A06AD47A72CD7C98",
- "legacy_metadata_key": "0F3CB5B6D57C7A6BFD3E16325D14"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3223A55D29E8374551C81E0C82D9C16F",
- "derived_salt_first_section_no_de": "334EC6FD73B76433FCE1A43F32F8D5A8",
- "derived_salt_first_section_third_de": "9E10AB7AF52B2827E2E924CC2DBE6DBD",
- "section_salt": "DDF82D85CC863CF6E4B3A1D1B3004593"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C4FC0FE64E20EA7272956F60",
- "extended_signed_metadata_key_hmac_key": "926071FCEAD929F5E6D3E02384BEE034D4BB76E034F44BA8E20B5CED0CD2BE6E",
- "extended_signed_section_aes_key": "6ADF564C69D9A2FBD119037F2E342129",
- "extended_unsigned_metadata_key_hmac_key": "C0652C5D7960E3FEAD832F5D4D3F1D5093407C12B4783AA087905C4FFFDD3A54",
- "extended_unsigned_section_aes_key": "E54683F92860692ED867F724E05ECF77",
- "extended_unsigned_section_mic_hmac_key": "68F9A3481D53DF82C6D656A57CAB5F24885B24DF17ADA32A36C605BD73A49E06",
- "key_seed": "2E0B2764E601883C49E819B2EA773057DEAF74BFFFEBF54FA0FC50B7EDD6550F",
- "legacy_ldt_key": "A315F148CE509C67AEFAB5A138FEB47576585A0ABA5BA34D0497C2CF1E08E9A638107C85DDE5B9E3724743D61C6FBE4ADC56953B89832E4B4245C0943A551774",
- "legacy_metadata_iv": "B18EBEAAB1B36128EC3C7C08",
- "legacy_metadata_key_hmac_key": "C8AB3E3C8F6A7931366EA638329DA16C744BF98E7B44FCD09CFC4FC098C76DDE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "52A1",
- "expanded_salt": "07965303127031229A9F8495EAEE51D1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B94E239086A527E6F62F2CFE3293A33A",
- "legacy_metadata_key": "53B87DBAA035D0CF19D323556FEE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F41FCB3091FA6A947109995378D2626B",
- "derived_salt_first_section_no_de": "437B3BC99F0B067569144CB277EC0E6A",
- "derived_salt_first_section_third_de": "7D2DCD1F5EDA645DBD36D04642E3BF2D",
- "section_salt": "56BA9223C28B9062BCDED4CF715BA75E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2153BED4EDD7D98BA00DDC0A",
- "extended_signed_metadata_key_hmac_key": "C8B09FB32D826766156E1EDA1A3A3BECBC9389CF60CA1B14E4CDCA8FF06AF522",
- "extended_signed_section_aes_key": "B4D7D4AB6281427DEBFE0A33D64D81E5",
- "extended_unsigned_metadata_key_hmac_key": "000481A13B3EBB41733AF4F2A2C546922B414B0692CA7BDF39EBA87D33B46CE4",
- "extended_unsigned_section_aes_key": "74C9136EC1F3D36BBCAF9F9369610BF7",
- "extended_unsigned_section_mic_hmac_key": "F81E887B857D7AFAA626FA0DA8E9E4993B4F8D3F1060B6F33182A5BCA88DFE2C",
- "key_seed": "C819530B983F5188D0B042081FC1CCDC62A42A9517742BBF529CEDF8B083D501",
- "legacy_ldt_key": "E1BD9AEA19ECE21DBC208B6A903450F6CB57000154931C03AD998539CBB7174FE6015822F703D4CAFA3B117361AFF1F3292AC6FF8170FD63670B045FD6EE7ED9",
- "legacy_metadata_iv": "759CA02FF592E7BFC71F6777",
- "legacy_metadata_key_hmac_key": "D93676DE7F4BE6C7A23CCE23A004E23D89957BCA75F8625A49FCFB2B83BDB27E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2AB6",
- "expanded_salt": "744969E1E07696957255243B285CBD10"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EAA42B1FAAEBAE0A0640F6D0081A1A05",
- "legacy_metadata_key": "7E9994DEC11C22A0A699A46BE6F6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CB15C942C23F315F132C9D78422C8548",
- "derived_salt_first_section_no_de": "8BA5EE107011D34CE135814DB4A36C39",
- "derived_salt_first_section_third_de": "26DED05A406D910D01FE755370A59CF6",
- "section_salt": "CF1E5697391C3FCF816F07C04C510829"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7CF77BC6C3731FE43317A8BC",
- "extended_signed_metadata_key_hmac_key": "641057A59413F1E854C4DB2A831C63E7E35356F78D882ECEC9A3D4F3DDD6B4F5",
- "extended_signed_section_aes_key": "72BECDF837A19BF0744F4A4BD15C8B5D",
- "extended_unsigned_metadata_key_hmac_key": "41722F4959EFBB23C9B42F5D418E27B5EDA880211FAF1D3FEEFDC2842CA9EA69",
- "extended_unsigned_section_aes_key": "BF8C2C691C512DBF4F5CEDC8E063BF31",
- "extended_unsigned_section_mic_hmac_key": "7D62640B7525DCF0C82472AC6A7C6D4883B4E3EF8C37C1C71F312231FBB248A6",
- "key_seed": "51EB6880092CE831F134651559DFEC9795929D7189E6709515ED23274C2A284B",
- "legacy_ldt_key": "05AFA640D685C42CD6D6FC995506B7DEE2FAB92A42886886FCC6BFB141965735D5F0E3712631498C63D934022D6132EFA3278FAD8E3ABDD017D03EFF83021E92",
- "legacy_metadata_iv": "997C3C450D4AEC5347E5630A",
- "legacy_metadata_key_hmac_key": "9DBC405A2AD25C7535ACA6C542932E6AB7B798068CDFA4EC6848C2B8FE722CF4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "75BC",
- "expanded_salt": "91BD06EACA3A378794CC6FBA3D205A5E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "85DD051F984F5B8AEF8DFAE4A87F9630",
- "legacy_metadata_key": "90595BDB112588D183E00DB81C6C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4F6A20F4EAF2F7DA0F69C326D0FA1421",
- "derived_salt_first_section_no_de": "F0CA87C973CF16101CA943D759B4A4BC",
- "derived_salt_first_section_third_de": "78E9D5D5FED74BCB4771B08F5C5C2B06",
- "section_salt": "060D22899AE031AE2B378AE2D3D7412C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "52EF54E1E68FCE595E2EC93D",
- "extended_signed_metadata_key_hmac_key": "553958CA1C60BC13F93F61F3DC4215FF486200BAD0E4264BF78F448B61B673D8",
- "extended_signed_section_aes_key": "F4A2635D2D57BD627491C3D82BD63562",
- "extended_unsigned_metadata_key_hmac_key": "D742051957AEFB0D0041D9F5DB9462527A2D6AD80FAA0CFAA0C337D2F678AFAB",
- "extended_unsigned_section_aes_key": "C7C24B93145FF66F3DEA78D67D8959D5",
- "extended_unsigned_section_mic_hmac_key": "14637C720BD8BA429ED78BBD158639B2723C9FBA8AB5E148FFCD5ED8276F6130",
- "key_seed": "C78375106A9C174309D4920673CE0E8CE5D8596ABB580FF3F8338DA36245E3B5",
- "legacy_ldt_key": "92F0EEA4538354DC407C40B06EA66FB13BE1E8418AEFB73135937A5C9EF6BE07120F5316D0B680F35B30865F91EE7826299D0F40C40DC742A8CA65E53AE12651",
- "legacy_metadata_iv": "C5FD0637D3AE08A4DC13CBA4",
- "legacy_metadata_key_hmac_key": "513B4B32F112E9455632A71CC0B716D3CEEA508CCC53324873ABFE576605EAB0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CE36",
- "expanded_salt": "09BF780427C4072CE518E473BA2DB720"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "70BED876CECA4CB28F3E2117AE8023A4",
- "legacy_metadata_key": "037B1FA692A5B90DA872C8C787E8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F40EB3949DFE782D4513879AF98315B1",
- "derived_salt_first_section_no_de": "1972118DAB9DD37C3230E888D4963EA5",
- "derived_salt_first_section_third_de": "81938C383D05CDC219FEF5C3BCA483D6",
- "section_salt": "16BCB44BFC11D4DD5C66869DC7742B8D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E50780E9589A6DF6BB8E07EA",
- "extended_signed_metadata_key_hmac_key": "BA6BDA9D95D654E37C67D05BAC4D481344DFD5223F0A83A48055C80E327CA359",
- "extended_signed_section_aes_key": "5817BD50CB609C77A0AF5388AADBE4CA",
- "extended_unsigned_metadata_key_hmac_key": "BFD8176BF3827DAFF1EFEB5C1AE8B513A5BEF3F1A343DB3155C205D560353F62",
- "extended_unsigned_section_aes_key": "E392E4DCB306A517FC511AD53609D084",
- "extended_unsigned_section_mic_hmac_key": "846D81FBCFE21D96B72D897E297BD937ADB5125C37A75C66FA7607DCFED70417",
- "key_seed": "E1E8C91B245F511DBC96E7B00CF7D821088A1CFD17770CCAB7C82F18D87B568F",
- "legacy_ldt_key": "6064F52FC4E985FF206CE2BAD56161F6C75A0F1FBD3A9CFF5C804A6B6E00601FD2FBE9CF21A2379BD6CB58806744AC8E52DD638F16AC492C77D91F42B811F8EC",
- "legacy_metadata_iv": "F81509BADA56C340076D8F1F",
- "legacy_metadata_key_hmac_key": "EFA7A484920F7FDBB50420A85F0DA1E0860434383CA9B28CDF57E8C52E7B6569"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0ED8",
- "expanded_salt": "89D2FF3CE54903D3998857AFEDA39BE5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1421E1EA008794B67D83D8FAF2211249",
- "legacy_metadata_key": "2CF1FF7DF1EB7E51A7303BF56DFD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D8C8E23525E43EB98F2CD3C73620C0C4",
- "derived_salt_first_section_no_de": "701C69E28BAA663AD38922A5FDFE1BEA",
- "derived_salt_first_section_third_de": "9CD54A81C18443ABB1512DB164535070",
- "section_salt": "F0D2FBFAFCCAC6C52EA0C453A720CE28"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "764C33FA2C46A91659E49A43",
- "extended_signed_metadata_key_hmac_key": "F9EFB70E5FD4BC57208D9B88F2B26B1BD5B49B653C7DB9098BE83FAFF3C4F5F5",
- "extended_signed_section_aes_key": "D94A8DF2F838797B071EA72A7AC8CFBB",
- "extended_unsigned_metadata_key_hmac_key": "5A7AAB23649FA2B1ACD908DF33B57E36FFC7F8A2FEFA0027B0356763DABF4918",
- "extended_unsigned_section_aes_key": "27BE68E2E873FB1C36BDE0775C5C3C25",
- "extended_unsigned_section_mic_hmac_key": "CB8C44463BBA9CF80409234E8AB180F1A8E9175847FDB34D17103833ACE52296",
- "key_seed": "D8EC765E5B08A66AA9D72C3B0BB62E4DC71C75A3EF34A109DD092840D2DAEFC0",
- "legacy_ldt_key": "189CA0F4D5E1E6BC40DAE473FAB865D6DCF7B507ED1A0A9C196364173CFB41CFB6A8197BD1C4AA7A848941299D0263B4F5D1CD1EBE503E9B08F80DF4B79AFD12",
- "legacy_metadata_iv": "8081209BAB079EB850E97031",
- "legacy_metadata_key_hmac_key": "1E852887D446E5269EF0AD18FB5F104D7FE0FF1D9F6E7BF80B9D5CED9A6FAFBF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A4AF",
- "expanded_salt": "05CBA7335BB2199B41F0304CE049BBC3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2D9AA50AC8A84A9CDE853E19D482C375",
- "legacy_metadata_key": "4B2B50FDD5C993591F3806476516"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "53D9B5CC77C1E381734671860EFDFA0F",
- "derived_salt_first_section_no_de": "BAF50ACF44ADAECEA8670A4DD3C976D4",
- "derived_salt_first_section_third_de": "6883C874AF688FC575E441DF4F20E934",
- "section_salt": "E14E4E4238454EB069FCB79AF1591960"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "72A8FE8C439A44DEE46BDE8D",
- "extended_signed_metadata_key_hmac_key": "5E049E91EE68E7D3A57A3FDCDE6BAFB75E0F91DCE10885A17C180CA766448802",
- "extended_signed_section_aes_key": "D4E9A4451FBCB1BDB9F2B7D9F0F5285D",
- "extended_unsigned_metadata_key_hmac_key": "0A3A3068B0440FD643B573A11A5C931056CADF0EFFA8B5B09F7411CE27B0C5ED",
- "extended_unsigned_section_aes_key": "9885CCC9EF4A65E0FB36C5B4DF497D96",
- "extended_unsigned_section_mic_hmac_key": "47A78D4B1C67D8D96B6E6BDFCD9D9BF1EBC23484DCAFC89195E0C6785D2554C9",
- "key_seed": "5019BF5C212AF2EE90D3D309AB4EC4AFB8242A2634D030C2CB55DFAE50BF8C49",
- "legacy_ldt_key": "8C27C0CCAC3C9D294E67566FC9106215D6EC58ACE79B8CFC7361A696D84E756ADF0C27C86BB749EF8E4FDC85169C26941F1488823D3910D485BB3E75600C5BF1",
- "legacy_metadata_iv": "235419CB61A3245A159B46B9",
- "legacy_metadata_key_hmac_key": "3D9739A9EFEC3CA30E0D73D3CBA07FB457E7F62C7B00ECC18BB5F734FA629AAF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4F20",
- "expanded_salt": "8454429BD7E195866778D4F5104EE4E2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C76376594500CE24EA679DFC732B7F90",
- "legacy_metadata_key": "CFF70A7EBE2D6B1DA3982A2200EC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9D6E799D78835CBBF44CF43B3244913D",
- "derived_salt_first_section_no_de": "265EB6864D360EFE356A05BB1FCE7CB4",
- "derived_salt_first_section_third_de": "15BAA104157A9F7255CCA18C90C9035A",
- "section_salt": "4EB1EF8D7A36FD63EF7BD1093830B364"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2DEC2C4D50629338D4916846",
- "extended_signed_metadata_key_hmac_key": "1B4772BDEB79650BE3D41F7B31EA05E16D0F6B4EB4BD7AC74C5463140F1ED809",
- "extended_signed_section_aes_key": "99A77B44769E2020F939D28AD096F5DE",
- "extended_unsigned_metadata_key_hmac_key": "F282BFCCD8E1D7E1785D9D6573C3905C18EB9FFFE78BB92351354BDBF3F5E0D4",
- "extended_unsigned_section_aes_key": "C002425B23F334E9920A3EE1A62EFC15",
- "extended_unsigned_section_mic_hmac_key": "6891FA3B378207B204352F08C9BE2C7C5E17465A512E35E58FE0067A10D12A12",
- "key_seed": "6E38C1E086531DD297EBC63E8050446A3665297B28BEEB49898A2173E2DF8DC5",
- "legacy_ldt_key": "A0E12F41C25816397A059938E2AADCFCE8DE9941847235162CFFFFDE37A9C1BF6FB311C9433D148C2C7514B1501AB83FCF455F37425517209B48468A2241456E",
- "legacy_metadata_iv": "C8A3333F9E913BC955218494",
- "legacy_metadata_key_hmac_key": "CB14080757E8D1C9DF32CD14B57E7D35A5A71CA9BCAA00495020BB5BCA723543"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4BF2",
- "expanded_salt": "66DF3152F3F8E3F23162785273AC816B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "65292128366300C3E95A695C0D468933",
- "legacy_metadata_key": "00A0F7576FA44B9D5FE942AAABED"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3429C5A1D439423C553BC56769F6ECCA",
- "derived_salt_first_section_no_de": "823FC779E4A55DBEFB901525BFA79E6A",
- "derived_salt_first_section_third_de": "D7B17C5EAC75227914D94FE8A0BEE892",
- "section_salt": "26A4279A7A96CB79C36E0CA0E6805FB4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5D69566DC9F6FAEDA5F8E653",
- "extended_signed_metadata_key_hmac_key": "18904D858F69A51711DD78AB7894399A159014B2D023294F83D8F5B4BB8A6CCB",
- "extended_signed_section_aes_key": "7E1CA2C4AB23DDC6C70D419480D415BD",
- "extended_unsigned_metadata_key_hmac_key": "04BFB4DE4B9B0246B08B027CBF631AA96E098BDB22DE36C27EB7E877F6316665",
- "extended_unsigned_section_aes_key": "C27808AFFEE17ACB88E0052363ED3A74",
- "extended_unsigned_section_mic_hmac_key": "9553693B269F2793A0DAAF769E45E6A5AE7DDA6512D9F9BEB52C07EB8062812E",
- "key_seed": "815A710AC8FBF7224C0AFAD53E9DD8BA29A7B87FB3F7A249520FEDB016FCB0E8",
- "legacy_ldt_key": "3D327EAAA5D6973E8D5F0E491350D60363622C15A4011A11B26E0B9082A37275A4183CB76EBB9F43877E39CCCA3BE7ABB0BFC3D17DD63CF068069F463F8BAD16",
- "legacy_metadata_iv": "C57D5C3C888A203B298E0267",
- "legacy_metadata_key_hmac_key": "E21B63F97BFB29BAEBDE2129CFA3928D5045D13AF3FB15E07F82C055F52DC22F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BC6B",
- "expanded_salt": "9EBAFE33113E11B04986705FD49F1071"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D351970E6F3631825AD35215BA1C75D9",
- "legacy_metadata_key": "BEC110CB9EE496604849E577419D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "320C17A639F154F96A5D9B02EEFC28C8",
- "derived_salt_first_section_no_de": "E3866DF3FDE9D06FBA03E010BB68CF4E",
- "derived_salt_first_section_third_de": "647615583CDC027C2E0BEBEA0E740609",
- "section_salt": "0A1EEBDE4DC2FB4B8F57B1A1058B323D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "01B3AD7C01FE70F7E9FA8536",
- "extended_signed_metadata_key_hmac_key": "230D4F8361F9E119E3C93301B6C8D58EF8BD95D12B2D0E4479A1199EE110D7A5",
- "extended_signed_section_aes_key": "067BC0245F2669E675C9FFC60FA54CC4",
- "extended_unsigned_metadata_key_hmac_key": "02132C5214FDD2190BA96C24B600BC59A69911D549BFF327ED6F1B826ED7C70B",
- "extended_unsigned_section_aes_key": "C1FB4FCC602D7BFFF91DDAE7662BCBB5",
- "extended_unsigned_section_mic_hmac_key": "D92C32A6AD5AACAF19F261DEAFAE45B08F0D2CAF9DF865DDD6E5A9FFAF98F1FF",
- "key_seed": "DF352508F2E2E0FDC175B91423494BD76879A1DDEC9A9CAE5801FAFFBA5B747B",
- "legacy_ldt_key": "411AB17DFA302CCC7C8029BD2EFAD0C791234EFD312FC6E4022A11A810A9047B76D0BDF339E3886B866DFAD959096F0D9992DF4446C8FB68116A1CAFDD36E240",
- "legacy_metadata_iv": "AB0925E695A44EAC3AC63838",
- "legacy_metadata_key_hmac_key": "B061DE663A73A50C0DF517B7FFB59B4F3BC661F1673762E48349F8E5CF3E6E36"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9A13",
- "expanded_salt": "926845E8B8764424EA2BEE34D46E9975"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B32F89C39CDD015246F9AE64B75009E3",
- "legacy_metadata_key": "88DEE352AA8D3E94E5C0FD51B06D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5DBAE1DDEC8066BDDB5112BC2D61726F",
- "derived_salt_first_section_no_de": "9CC711D5D1BEE61DBD42428B3E22BD6E",
- "derived_salt_first_section_third_de": "77DDD243830C0E8292A8116CDF4148A7",
- "section_salt": "8C0ECFBCCEC179A49CC7D80E297D09E7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "787302FA2709EB1E405C7012",
- "extended_signed_metadata_key_hmac_key": "5C20423A0515AE0C228CC0E7B2E1E1355B1186E120852BED841D5E308D77BC79",
- "extended_signed_section_aes_key": "7AAFB0CB4B42DF0E158EF2E33B000C1E",
- "extended_unsigned_metadata_key_hmac_key": "BF9738304079A8624E414AB8F34B809E0C8EB8F53860E0E2815FB9773F5D421C",
- "extended_unsigned_section_aes_key": "E1AAE04D996A1DC2AB94F0D15A0379BC",
- "extended_unsigned_section_mic_hmac_key": "EDDB27AEDACF67DAA378B7D33D44ABA07C5B4AE2FBAAACF012F6FD84FAFA42D6",
- "key_seed": "7E39FE7F9A0A546D53C74EF9B696D99D92E8B038DAC3F96CB46668DEE6C0616C",
- "legacy_ldt_key": "330149B132A0AC6E8AEF8BA783D1DF410AB9FFA5FC1E8D4BF284DDF4082FADF40C88BD7D0F57894F9ADF319465E260FCE71C17C91EE63F37FEDD5E1B95366A41",
- "legacy_metadata_iv": "463E9412B9A2B3C702272574",
- "legacy_metadata_key_hmac_key": "CE9E0FE5E468C0D3742855E44C75D8C4AEE7CDAC0FD32AF448AE47A4F808C142"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EC2C",
- "expanded_salt": "A767D8554060AE4F9D789C687B3C68EF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "99D1866F8FF89153E8F97C5C5DF15CAE",
- "legacy_metadata_key": "9EF766CF29870498666F6E0C8031"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E4F8FD84F7A1D32C4B539B66BBD93199",
- "derived_salt_first_section_no_de": "6FC9CA757D0AD73989C62C93B030498C",
- "derived_salt_first_section_third_de": "8E66577BDCE5DF95396A9CDC7BE81B9A",
- "section_salt": "F2B520F28F7A7EB578401ACABAC55896"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A2EA9453023D47D105D44C74",
- "extended_signed_metadata_key_hmac_key": "D485963F1967D474A7E73BECB8A0287560F97DA37A2EF8B6B29776A303D96AE2",
- "extended_signed_section_aes_key": "2B1E0494A1B4CFEBE742BA05D9B63595",
- "extended_unsigned_metadata_key_hmac_key": "37CA7ADE8AC5F8CBBEA3E010ED33D94CDE18257FE3D3A71A4D90F625BB1B9DE7",
- "extended_unsigned_section_aes_key": "75A653E410612DB170DF21C6FC33A829",
- "extended_unsigned_section_mic_hmac_key": "232455A2E9ABD493F2A9BBDEC28C8547B1D1D83584AD419A7AE5CE0B94ED8AAC",
- "key_seed": "DEB72AA5CA5DBFD894B9B4F921F948C85FFC709AB5454443C4714B0FD8F04A88",
- "legacy_ldt_key": "4BC38C6A82624C12806AADF95A16B760C1F5D39FF3230BBDA2CE250F6E5C287D39C2AAF1C88D378CE5974AF3612A9341EA27FC6A866A41B05A8588FE81C662E1",
- "legacy_metadata_iv": "8C0BAFE682E5D13EE466C3B8",
- "legacy_metadata_key_hmac_key": "24B1FD3B3F9EF7702EC7517EE233BBEE4257D90CFD2D22FA49A50BFF337145D5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E9B8",
- "expanded_salt": "2F79478069D9CC19F76E3300F511FDF2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "553A716B4DD9B2575017041E77477640",
- "legacy_metadata_key": "84021B7F67E4869DC5BDDE173043"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1C5A3C664E708F8F87AE03CC27549827",
- "derived_salt_first_section_no_de": "428959CE65504108EEDA614AB69C9FA1",
- "derived_salt_first_section_third_de": "31D40DEFDE6BB0AD875C7B90677AB96D",
- "section_salt": "2437F765677CDCD80A3C975FB883A4A4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "22809A1FB9ED62E140107F6A",
- "extended_signed_metadata_key_hmac_key": "F1EEC43F9E77419230D0BF971AE2A2F495492A5C57E2596D22259BD2611B44DA",
- "extended_signed_section_aes_key": "1AF7989E2D7135236D589224EAD9D020",
- "extended_unsigned_metadata_key_hmac_key": "5C1DD73BD344C7AC5694CB5DE21DB910D40CC89BCC3198D9C30E316E6EDD114C",
- "extended_unsigned_section_aes_key": "F73E6CA758832298DD4779E0CD1F9E4E",
- "extended_unsigned_section_mic_hmac_key": "4BD64D8DFE9D13F2C3A0E5CCF3C1A6E177CF96B04A13EBB6F4026651C5870139",
- "key_seed": "D5DD67023E2455E3C536CC08196B6E64B9C87A8BBC2CDAF0505A22051875323C",
- "legacy_ldt_key": "1911DD80F20A363F8D3AA8C0CA84C4734A0559E2112F5C24F11173D8227633D5B5D911E59169FD9B98D401CB89394C3D28C103AF2261C77A003ACC15C33B5BD3",
- "legacy_metadata_iv": "51A56FA07CE10F88220FBF9A",
- "legacy_metadata_key_hmac_key": "C8BCDFB5073CB7D98724A408B8F377D8E6996F0D221C3D6DE739D04124DF1251"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A56C",
- "expanded_salt": "65FEE8FB5EC21CFDC02775A626B9C618"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C442E81B5B79B58C31746143CF81B279",
- "legacy_metadata_key": "92FC94A14DE054C939C9386FA35B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AF4D4C240D7C64BFFB822DBA365F0FBF",
- "derived_salt_first_section_no_de": "AA2F0BAACAC0E04D976ADEEEDFC06664",
- "derived_salt_first_section_third_de": "36C87526EAD0C9DD8E5BC5AA97FA93D7",
- "section_salt": "92268FC0BEF7CCB5934BBEFA5A6B94D6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FD727EFF46945B7C2D450EA6",
- "extended_signed_metadata_key_hmac_key": "1FB687546081FAF01987A3FD7D4A06224E8E2F18F96B095DB54505EC08F7DDE0",
- "extended_signed_section_aes_key": "7F90DA6B3F1846D4896ADE203AC92B93",
- "extended_unsigned_metadata_key_hmac_key": "21B4939D5E61C481369DC1255D0433A5B9A8865E28153FB7E4D5551A5817A0C0",
- "extended_unsigned_section_aes_key": "28D9E17A9E62567AD8A89E8D84C907D1",
- "extended_unsigned_section_mic_hmac_key": "B29249F127287112FF6B428BC3A02304F1A125D35A3F05A2E07B6297D0629983",
- "key_seed": "40527EE251C177DB5056952122EA86272927D4DE1094ADFA7C16BBF0F38DF2D1",
- "legacy_ldt_key": "F60E3FB643753BB8A0BB9AB6E45159299322A3646EAECF37FB378837EB0FEFAE085588CC50BA2CDF8E8C6AC024784D16C4545FCE0DD48C6C459A530C5938AA74",
- "legacy_metadata_iv": "A28E5CF6DB87556597DA7BBD",
- "legacy_metadata_key_hmac_key": "58462281462F14E7AD84051F47706EBDB19EF9CC8C807464849B4382DA219EC8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FE33",
- "expanded_salt": "BA8F73CB7551DA61B396A1DA682039FC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FC28830011085553115FACF7D45B9CCE",
- "legacy_metadata_key": "D8AD493E0EA4B05B986A6DC48818"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0B4DCD10A08FFA11DCCB9D682686C189",
- "derived_salt_first_section_no_de": "8C034B4234D4F488DA86DE976FD37F26",
- "derived_salt_first_section_third_de": "9E0EB61C0C9AB7391B5A5FFA02B2E437",
- "section_salt": "71BA84ADC9373C3B76E5A89F4C6F07C5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FF033809F843F34A28300593",
- "extended_signed_metadata_key_hmac_key": "0C23CEDC22AFD98C8937BF2B1641739524F5219A188D7F51455EE25AEF7ECF0B",
- "extended_signed_section_aes_key": "ED7DF3FFA4736656F102F9A0C4F3782F",
- "extended_unsigned_metadata_key_hmac_key": "B639E5E351E4D9FECD7ACA4F52E2A5DD29A279DBD59AF834D9DEBAAC6582C5C6",
- "extended_unsigned_section_aes_key": "33C0C255CBEE9FDBF861E62EDB11C4ED",
- "extended_unsigned_section_mic_hmac_key": "03433C77CFECD17765E49853CD357E21DB5F88D2536B9930A55CAA4F8C946243",
- "key_seed": "D024AF1BFD599B603FFE46327D5EAD8097A516D38BA4EFE6D78655B4491E4E19",
- "legacy_ldt_key": "39EDC6084FAF1976165363375E04AE3D1AB41751B5CB2B08DAFF2F08253810C5347FAA59DF14F5309FA3B991514835329CB22F127A8977F0CD9A1C5472C8A68D",
- "legacy_metadata_iv": "47AA80F0502BB593B24AC9F0",
- "legacy_metadata_key_hmac_key": "BE5BDA954612A2051381A8FB9AEAFFC188887779107E4C89066609A42C2A3EA3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A0B3",
- "expanded_salt": "FA004F73757293991B80D833FB2DFEE5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F0EC6373FA543B07CE9FC0DAFDD0E671",
- "legacy_metadata_key": "20221895DC5C7DBB89767E5B7AF8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7AA1C68C81B26A108F35273D944C4F73",
- "derived_salt_first_section_no_de": "FAA116506E25A001DBFC980225F8875C",
- "derived_salt_first_section_third_de": "DEF7EE6D2E36A991102274E2E922784F",
- "section_salt": "F0D056FA3B032A26471208D30BEFF4C9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D40A38DFE0B94A0BCFF8924E",
- "extended_signed_metadata_key_hmac_key": "3BD1BF8EFFCB909C319B65061F14C217642FFB4A9D037276E594302D01564EA8",
- "extended_signed_section_aes_key": "B0FD5170C893A6D80BFB85F38C6CF7F7",
- "extended_unsigned_metadata_key_hmac_key": "3FCE19DFBEACA1F25B87F19EABDA54D0CB88B469F5163ACEA6FAD329BC047A5E",
- "extended_unsigned_section_aes_key": "18BF57FB6DD75C1A0914BE492E7B0226",
- "extended_unsigned_section_mic_hmac_key": "D7EE2D416CC389D72F68759A98394719001797977C5E72E2AFC72C78F75BF6C1",
- "key_seed": "E8D3E9F896DE28375F1A17C53A02D22B1AF0E51F32829BBAAAD56B7BE15D5A02",
- "legacy_ldt_key": "4D80B3B2F006D8434B845FCF491A1FE4D7B88D3D647C33E86FD5B90D754678C928574DA46D5523E68714EA769E04E9699BB47D0D87FB63644BC3384D34830A1B",
- "legacy_metadata_iv": "A4A91209C9F46DCFFD7EC998",
- "legacy_metadata_key_hmac_key": "13C4A637D0D3391411D93E4B3365A5828CE1D6419351388DA30B43B1D8004B9A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3004",
- "expanded_salt": "E5C72D5E00976507B44B245494D413BC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9E288E3CCC0DB077F11D9C1694E71A68",
- "legacy_metadata_key": "DD6626F88C472372F418662C12DB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C45D095D34C8D210A22E8906C7A880EF",
- "derived_salt_first_section_no_de": "2DF352E6BE9F57518764C1AA877B42C2",
- "derived_salt_first_section_third_de": "BF146697975C60E89662DDA56A30D38C",
- "section_salt": "DF4DC302091B2004FF352E5A90BE0699"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "519DB3C599A204DA20B755CC",
- "extended_signed_metadata_key_hmac_key": "7457CB1DA5200608C6A3B66500A51818F2BECA467145B6A3A531FFBF05E230FF",
- "extended_signed_section_aes_key": "3E37FE66F3C19EAB32767F962C0E6B81",
- "extended_unsigned_metadata_key_hmac_key": "04229C6D6BE6BE55F1E3BD48C3CEC57C8AC63508270B0B829B2B7F47C6F1FF83",
- "extended_unsigned_section_aes_key": "C300EDD71ADDD33B3DAA6BB8630BE710",
- "extended_unsigned_section_mic_hmac_key": "675DD05ABDD382592BE70A5B97227BCB6C3A77BA289866043D407C07893DF835",
- "key_seed": "1A70904701FFD03181027D1DA6725EB43F7C7B73E9FE1C1EF40ED1BB5C99E129",
- "legacy_ldt_key": "781A98DF3B01A4F4504FFB9EF5CE8F04DC652F2036F9CB58282FA24B408BE1F492FB52139820F5005FFEF218D4375EB9EB7CC40BF3893778F42FBC2D2D9190A4",
- "legacy_metadata_iv": "73D7A2F0B17673162FDD29A5",
- "legacy_metadata_key_hmac_key": "C627055B26786295E741E752519289ED307D343A49A2B0CD377D9725CC096CB3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5A1C",
- "expanded_salt": "5DAF0FD9F53DDF9E31A36F8949F33DDF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9BC54235DA2EE56F945FBD6EA37D1D77",
- "legacy_metadata_key": "14F5265F8137D25DD4B41AA55B72"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "341DE92C522EFD2D8B2971F62F426536",
- "derived_salt_first_section_no_de": "535F696631CD049A0BAB635C991826B2",
- "derived_salt_first_section_third_de": "FD0943A6A685353B8EDA0987445695F5",
- "section_salt": "EF55D960BBFFCDDD7C658706F7FE018E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B1DD09D14798284A2F530FC8",
- "extended_signed_metadata_key_hmac_key": "119587406B30025B989B993FC356C9D420135C22D98294FBC4A9531FDF96DC1D",
- "extended_signed_section_aes_key": "777A014CB2D1299817459DC68C782CF3",
- "extended_unsigned_metadata_key_hmac_key": "6E8E1977D3E8887D4B6191B0838F704020708ACEBA6C0276DCF68BDE1769F5C0",
- "extended_unsigned_section_aes_key": "245DAF8718402EB53AD391E574554361",
- "extended_unsigned_section_mic_hmac_key": "EDC77B9286F40896174AEBAFD50BA0C30E9C1CF6900EDD803515E5326AE70BB3",
- "key_seed": "3B95909D18BAD2945915E0E8CBF57CEE32F8015D4843613DBAB0E7E2EC8676D9",
- "legacy_ldt_key": "7544391E39F869EB315288922E8D488ECE211C818FC01E0E30529018F43607D379085CE51A67370A2862DE3DD31A95ECF75135F8F9D9BA78DB79D3E4056E2645",
- "legacy_metadata_iv": "5A6626BE0F56D1C01A6F3DB2",
- "legacy_metadata_key_hmac_key": "EF5E5667A6379A68D1D910F36166389850EEFEAA2F6E7DE99F7B89CA3CB6796D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6065",
- "expanded_salt": "9AC72BF270728FB4A85B67A769EB227C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6B4310046B283428FA5F4FF4A360D4BC",
- "legacy_metadata_key": "628AFD0BFE5C5CD52113298366A1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E80FFAB2284BA096A9F94C75C83BE883",
- "derived_salt_first_section_no_de": "A9FCEF1ED1AFE7CB5A57FCFF28A3B2C4",
- "derived_salt_first_section_third_de": "E7B6BF128509C878A00DAECABCBAA9E4",
- "section_salt": "0C308CB11B51F646508C278E17EE0222"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DD0DD577BCE5DD503E2F60A9",
- "extended_signed_metadata_key_hmac_key": "7EF0B1E4222D9FFD4B83A3B78D7A1E7BC5747B39485F2562DCBF1C23F13E6B7C",
- "extended_signed_section_aes_key": "D1E431B46E3A3206B6DB8804557EB843",
- "extended_unsigned_metadata_key_hmac_key": "091AB383B465E565215E5D42061BD369EF91DB3555D353A5F9D1E46E0846B4B5",
- "extended_unsigned_section_aes_key": "6280026CE33E9580B63DDCD92AD15AA1",
- "extended_unsigned_section_mic_hmac_key": "5D01186AD1774CAA824DD3D9A449AF8BDDCA1B1E6F5B152C54C4C4DEB075B829",
- "key_seed": "02888A29079A1FDC5BE53FEC90CAEB1B490340EA0079F08E04F3CB35D6148246",
- "legacy_ldt_key": "1E7B25DB59411C01C209863C70B44D6C9134ED18556F954B7FB23014AD01E10672888256281282410C91F654454B9BFD12C1DCF4D542B5E1CAB4A3963A11AA87",
- "legacy_metadata_iv": "30322FF5E6A38F6A5BC415AB",
- "legacy_metadata_key_hmac_key": "D6A1EFB4F921AA74CA281A24407AE3EC2918DF9FA61BAD1DF1FBA029C269129F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EDE0",
- "expanded_salt": "1C30C5619B8749D564FF4761E99095AC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4F9441A3A1CD40EBB4242F9DAD1071FA",
- "legacy_metadata_key": "93488EC57BA20CF75C3D8FBF3540"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "76C3A0DB4493A52BC620815D7118F968",
- "derived_salt_first_section_no_de": "39E9A6021BE9DBF9F91BA08EA2976C75",
- "derived_salt_first_section_third_de": "D4DB35A63EAC6190C5A9099296A58091",
- "section_salt": "570C971EAF3EBE4291A5E976300099A8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7545D8BF0F1C09A1BE8BDA81",
- "extended_signed_metadata_key_hmac_key": "D7815E708DBE2E21C7ED9222C20C543FF6CB0AD2E0C6E65B66D475985DD72905",
- "extended_signed_section_aes_key": "899D158DC275F6D71F1E4C0C60A7DBED",
- "extended_unsigned_metadata_key_hmac_key": "C090E1BDC77517B5F3461153CB10C5E4E24A3566BCC8DF7DB586A1C039B1475D",
- "extended_unsigned_section_aes_key": "B0B7B4CE2B0D699B8656319B7ED99359",
- "extended_unsigned_section_mic_hmac_key": "D1810DA9C47B8FC5F8A80205E6898BF7DC14FB37E9A86E2E1D803917B16D4D15",
- "key_seed": "0680125FE6A81D090D0AF2A930634289D6348A8BB46EAA07C4BD6CDC140DCE80",
- "legacy_ldt_key": "BB322304CF705F0B0E814F813C2C400EEEF1E72E06FA5D1E660E17B2949704DADD3AD3CAE05B8E00D45E3AEEB880A20F9EADA94CC74064623388AF25D8E85D45",
- "legacy_metadata_iv": "21323A4FEB3470F80AE1EE0E",
- "legacy_metadata_key_hmac_key": "D97351A33907138568D0A6E220B2278ECD51E2F06294801AD3F3A65821D33ED5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5274",
- "expanded_salt": "834C95110F8F60BD2026C3D788FA8C06"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "828EBC060BB6BFC519EF5D33EB51CC28",
- "legacy_metadata_key": "37DFE9E312C03579D43F4577394C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "975FC14A1580EE56BCB24C22B68029DA",
- "derived_salt_first_section_no_de": "331C377C7B2D62E20511045E0284138F",
- "derived_salt_first_section_third_de": "29CB1CD3A4E69224F8E42CD0D1121367",
- "section_salt": "A764F3CC46436644B7A215F786D31731"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "853EA270A55E38D5AF7CF6DC",
- "extended_signed_metadata_key_hmac_key": "6076AB2076D84AA20AA8D1606542B0B3EF31FA191EAA3E6F59B8CE526A0D3AEF",
- "extended_signed_section_aes_key": "2B334DDAF13E587DD69E21FCF3753637",
- "extended_unsigned_metadata_key_hmac_key": "E161C03BB42B83A838C27C5FBEA81BF4DC328FF275AF0B66CF51AABD91AFA6E5",
- "extended_unsigned_section_aes_key": "4765F382FBC4C03285AC0B2479DDE759",
- "extended_unsigned_section_mic_hmac_key": "90F6CDBEAC117AB9DBB341113F89AA2FD5A377C6F220FC106D0F0CC1FDBBA3E6",
- "key_seed": "8843094246545C69C7CC65DD9F3DF0BFCBDE76070D17F0B4B0F3BCD198BB143E",
- "legacy_ldt_key": "258B35F71525FE3EE6693B1DE58E48F0C8AD4026E863E4D2AF891F877B570BAD67C4160D73AA0012632450A2D78D465B2EA1DE7022180D7D88C788373B24139A",
- "legacy_metadata_iv": "5101177537B386465496E920",
- "legacy_metadata_key_hmac_key": "122A36B706BD3976826D64290E97461027A197C8B07E4C4773656A45EF388112"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "32B8",
- "expanded_salt": "455A283D1F575748B6244A3ECF38F662"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F6C21E296450F7E9DC34EC6E947BE49C",
- "legacy_metadata_key": "5AC75BA5D32BC72F9315F482C504"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "729B9A5AE5E6BFA5ABCF1681DEF92B23",
- "derived_salt_first_section_no_de": "958BFC7C4CDDE031D8B1BE9F5FEA2213",
- "derived_salt_first_section_third_de": "154674C29042804AEB386E8ED0333991",
- "section_salt": "1716D30A1B9FC8BD73188A8B736F03EF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DA15BE5485103521A053B24B",
- "extended_signed_metadata_key_hmac_key": "793288BD8D99D2EBF77AE70C3191B2C818EB499817BA640286FCC2E7DB8683A5",
- "extended_signed_section_aes_key": "3E98A49C41B88A2F54AF23CD8A952FB7",
- "extended_unsigned_metadata_key_hmac_key": "6CFA58619C55C53DB262D55405A1642B1EC73F44FA25184E58A0A7F3989BEBC4",
- "extended_unsigned_section_aes_key": "BDED7B7E8DBF544D5B31A9ED9EC95C75",
- "extended_unsigned_section_mic_hmac_key": "FE493C50E481E9E2678597FA85A6F4BA963A0244EAD5458AD019D9A9743D70AC",
- "key_seed": "6A9BA1F17F71523B62E873641AE6D93F1019656EDCC90868C37258AD35578F9F",
- "legacy_ldt_key": "95754B7EC4CEF2ABE83EE927733B9CE71ECB4AA895379A8672AE75D3D39F5366366438705FD31572E00B1AF8EC241A77D92055A0A6438486EB31528692BC70B2",
- "legacy_metadata_iv": "910DD7CE6957456A45E408A8",
- "legacy_metadata_key_hmac_key": "9E8D3A12EB9448BAB53E1848F2B9B5EF324E503B6CFFB1754B36DF264207B41A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5240",
- "expanded_salt": "CCA2C603B56AE719482E8F5487BA30C4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C64C99D400F615216E5EFA099E03D8C9",
- "legacy_metadata_key": "E17F381A13DBFFBAB1331F065AB5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8DB6C8AAAE7315D7FCE66F6091D6D86B",
- "derived_salt_first_section_no_de": "FE05D27B0B51FA3FDA2FAFE085738433",
- "derived_salt_first_section_third_de": "9FDB2EE47F967271720BF18D0AD56AE0",
- "section_salt": "8BDD869DCC278461AEE71EFA71C4E526"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "043A39C1E11D8DC51A8B1297",
- "extended_signed_metadata_key_hmac_key": "F8370B4CAE7B89231D29F70A5CE667B08BE46915DC5A77EA62BC58B62B1E3332",
- "extended_signed_section_aes_key": "E959B3BE38190B9C6BEB7C067DA39468",
- "extended_unsigned_metadata_key_hmac_key": "267F9CCF376A479E923BB0195ACEC696F7B892CB836FD5635D2AE36115CEFDCD",
- "extended_unsigned_section_aes_key": "94429866EC246EBD8F8CFAB0AADEDEAA",
- "extended_unsigned_section_mic_hmac_key": "FA224D0627E4582EF5FB64F89B991B4148A07F2018FAE38B4DDCF8F40E1BB02E",
- "key_seed": "9A6C55D61FD56C0001B9037D039ECD2B129B2C289AF37C37F10DB736CE400626",
- "legacy_ldt_key": "7F054D35E078F3AF8B1505847F6646FC55C05ABDC6028EB325E0676B1C7FB6E55930001D38960F54F88D2556E86FDFF9BC9A160CAC9993CF6817CD5CB0FAB1B7",
- "legacy_metadata_iv": "55B3C2C8C90789BEBD82AB9D",
- "legacy_metadata_key_hmac_key": "97D1F353A95AE34FC541BE15B28547E1A84BE642A5E1277011CA24C2420E6B19"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "70DE",
- "expanded_salt": "081571F6B7E4120CF1B8F2675193CE5B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "49C88193EC3FA8B8A500E649D25A7A45",
- "legacy_metadata_key": "3F8A00002CC3A595F6A4E0875BE1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "477E3115A24554A8FE823E7A3D00A5D2",
- "derived_salt_first_section_no_de": "6CC30EA7B116E3C1F3C04C5DD00B975D",
- "derived_salt_first_section_third_de": "B2E462E01F2F33A850AC74C9ED7636B7",
- "section_salt": "B86F29AF04B20C8191F3E58EC83F23B2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "37AD16D24F9BF90FA3FF6023",
- "extended_signed_metadata_key_hmac_key": "F99D17D0FCD295ED68908E69C5C0A0BED0D9D6797B51E807842CCD9B424D74B7",
- "extended_signed_section_aes_key": "5EAAF9AA010E02FD70D74BAEBE2828A9",
- "extended_unsigned_metadata_key_hmac_key": "8258AAEC8868D09A7409C7FE25CC561CD90E819040B6645F2BECC54DE2B06E1D",
- "extended_unsigned_section_aes_key": "7C6216BA421438C023603C38D3CE53A5",
- "extended_unsigned_section_mic_hmac_key": "0FE1F9EE92A09A9D48AD03E419D043C8D11F0D14D45B2029700D66936ABC40C6",
- "key_seed": "092699393870D322E7EF4C99149FFE626FB5E430258D9350DC64BF9B25CD579B",
- "legacy_ldt_key": "95FBDA34B267AA221B5DB06D3BAA83FA0AA1864B9900EAB7D41B7476CBB55BEE159FB9916E6F248042C0F8944A449686610FEB2007FF4800A3E8F0676C6938C9",
- "legacy_metadata_iv": "F66B007ABF1F928537BD21C3",
- "legacy_metadata_key_hmac_key": "8CE398047C92B654B61BD92861C3A2D134645E512C72D7AF2D16B2B98EDA0A0B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CDDC",
- "expanded_salt": "6641CFCBBCF189F632ED8713CB093A8A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "677548250282DBC0516B54D193E47E73",
- "legacy_metadata_key": "9576AC0DA7878F39CE2C763ACDE4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "91DE2CA3F988FCB479D1684F85435283",
- "derived_salt_first_section_no_de": "260EEB6E6F9757666DE02F193C8D34B4",
- "derived_salt_first_section_third_de": "DE31B4E9F4078FEAE029D83A51B1D6C0",
- "section_salt": "6677975B61E29ECD37F037D7F1F7F0D0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "37ADEFD82E7B98C93E2B2134",
- "extended_signed_metadata_key_hmac_key": "71B6379E8497BDAAB3EAEC1A6DBD60D265AE43D0BF3FF6578B948E05BE2D2E2F",
- "extended_signed_section_aes_key": "744E03C7277877172F47929730DDF8F0",
- "extended_unsigned_metadata_key_hmac_key": "D38CA5343B5DF2144EF90309F026B1D8B3C1AAB003C1DBECB33F9898E300F0EA",
- "extended_unsigned_section_aes_key": "E27F4BA909F15A4A4D760AD833E67B92",
- "extended_unsigned_section_mic_hmac_key": "903E252C7D4FC4582725558EA37C84330639EBE8DDE6D5B2AE3F3E995235BF2D",
- "key_seed": "27427F71C2672C578FD2D92F46A0943FAF7051BF5494A381AF549C1B279AFE3B",
- "legacy_ldt_key": "E7CE3C95F4065103A4EFB2A5FFF4FB9C7B966DCE2E3916EF11AA47C2AF4D5ADC4B88EFE322800923AB202DE662D8C62EA31FB61F97A62EFA4F28F4429189897B",
- "legacy_metadata_iv": "840C5F56169F04CBAB956FA5",
- "legacy_metadata_key_hmac_key": "B69188B184437D5642871D8C3D3C8A20BB5990E4CAC2E9978B8D53BCFCD2D0F2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7E96",
- "expanded_salt": "2C88150CA5363EAD2FF3FC7A74A0611E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1E530606B9D83294F7A23CF01614EF8C",
- "legacy_metadata_key": "21057B693057AAEB41F695B34C8B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "80E554AB8EAE28640A36AAF3EC99A815",
- "derived_salt_first_section_no_de": "501A970E25689D554A02AE4A2FBA3C5B",
- "derived_salt_first_section_third_de": "E746DB5B813B79CD2C8E7BAC3067C6F7",
- "section_salt": "071A9BD3B331D8A05F548F98CF3F8238"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "86F14980637D8279FB3DDDDF",
- "extended_signed_metadata_key_hmac_key": "6F16F0F963DC5CB3807850990F4D385AD81983F759910C1B6F0A9DDA7572E255",
- "extended_signed_section_aes_key": "39BDB4F5CEC98BA07E251D6A79BE1958",
- "extended_unsigned_metadata_key_hmac_key": "69BAE5EB968E421998C2F79D18245F1DF5A717F75A230E4DA8EB80603E81D0FB",
- "extended_unsigned_section_aes_key": "96C7B01044BDCBE9CA3F5114342EB591",
- "extended_unsigned_section_mic_hmac_key": "D342BA1044D009E2EB7E1A74F415535112D5FD382DD94299C66BF9C6685B4180",
- "key_seed": "1EC5BD08C9414B18714CFE081574426B509CCCE2858A6351AC1ADB081847C42B",
- "legacy_ldt_key": "2731628887A5F6DAF9A427E371268D4D85E298BCDB1397C5A6A7B5D1F7CDD46D4753FB3E827D198C58874B0ED698A104EA8E040D668D06A4B62B00ACDC9B6345",
- "legacy_metadata_iv": "1B533E7411B33685B83E6FB0",
- "legacy_metadata_key_hmac_key": "B92D36B6765BCE73608BDF83D3007B28A489626AE9F398E31D35F076B557219A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2D2A",
- "expanded_salt": "078488350D0CA4245C224C7EC28B9FD1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1A465B72D7E147DF5A378A9DE34C29EC",
- "legacy_metadata_key": "B0FC8C704FF769DE5D5DA95F8171"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6D02F8DD1878BDFEA3988CFDB3DE2EB5",
- "derived_salt_first_section_no_de": "CAE22EA729CE7D3EE7C8F269CD784EAA",
- "derived_salt_first_section_third_de": "4DE8E8BEF0B501BCE5DC3CEC516A2769",
- "section_salt": "20578FC079652572D070303C231F2BD1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "18223290983FC503FE8CABAD",
- "extended_signed_metadata_key_hmac_key": "63C74AA6C612AA8B2E834A3A34746BABFC21C69FDE13BE930FE98DE0855A835B",
- "extended_signed_section_aes_key": "2E70E50467FEE24FD3B77F3D6BF311E4",
- "extended_unsigned_metadata_key_hmac_key": "1708213773542A1610A0A67C4DBBBB818DDB113954A5F0ADA21FC6E9C5448E3B",
- "extended_unsigned_section_aes_key": "84884151E83CE1B1E99C86AA76F9C6DC",
- "extended_unsigned_section_mic_hmac_key": "412CB446DFC3E435ED523C7E38DF5062DF691FAB650887D72F202E10E7C4FBA5",
- "key_seed": "5537DF54B88DCFEEBFA83F3F381EEC4ACC63F2508D000DA08278CCB0C645305E",
- "legacy_ldt_key": "ADED18EF683CAC7D4673A9A3711EEB775AF0C374761D6B53806A50F4ECCD77083E3F1E4347D0635EEEADC14661EF08847095AA21A874C64101BDB129C03C9007",
- "legacy_metadata_iv": "EDE116F87CEF154ED79F4A1D",
- "legacy_metadata_key_hmac_key": "5A295B532543074FE1C28C6A77FA7EF2B25138A9EF969EFAE089B81B8BD2B430"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AE7B",
- "expanded_salt": "7BF35DB386CD5F49D0100B9B1871BC01"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C9BD234FCD73962A838A0E35D1F45768",
- "legacy_metadata_key": "79D7FA6CE3D3623337FE1EB6BD83"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8ED3E5BC8CAC9AEFDA544F60205BB70F",
- "derived_salt_first_section_no_de": "AE63C935817585CE43E289C7DE8812FB",
- "derived_salt_first_section_third_de": "073B9F194294FC657EA20D1DC5E4F20E",
- "section_salt": "3539C41F03A2A84649EA18BB35D3E11A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8BAA30F2F333B0D6BEFE36AA",
- "extended_signed_metadata_key_hmac_key": "527131CFE626758B962E08C907798CBE5A8C1DE2A9570ABC42224AFB44D66B14",
- "extended_signed_section_aes_key": "486754F7B9DD19B0F663DE87346ADD3F",
- "extended_unsigned_metadata_key_hmac_key": "C9D7C93FE0AD4D745460F34FF8339EB8A71E27F0E76B8E8F632327EDCA1CB06D",
- "extended_unsigned_section_aes_key": "38A3D972034428D05EA5D5121480C677",
- "extended_unsigned_section_mic_hmac_key": "99E5A006A8EFAAB21D1EB005D8F17EEA0F06A755AFC527EE7A1FD2D93FF5298B",
- "key_seed": "215E7CAB995EBEE98B4B3E8ABE889237D1E81AF90117E30BB45DD95A829ED758",
- "legacy_ldt_key": "090709B2C955C29FC4A62741C25E8775537665B71BC60E847FB621F6BDB6695798BD03CA9A77599B99091B770C816B2C6222C3BBD775BC7A4736A42E09890FD1",
- "legacy_metadata_iv": "0966C2190FF3E0D1593ECD82",
- "legacy_metadata_key_hmac_key": "2A6ABAC23D8F8FFED1E45C7169A1DD0331AB65EEB75578A99542FED8CA5E5A3A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C614",
- "expanded_salt": "661E1B1937F4A98F236EECAC4D05D66D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A5FC316EDCE5B7C7F20094D26E309840",
- "legacy_metadata_key": "C77D58791B32338E0820C894003D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6BF8389DDB34F1442378F0233041AC34",
- "derived_salt_first_section_no_de": "9A53C753650F4AFD61034110E06C0F14",
- "derived_salt_first_section_third_de": "3DB89D7EEEBA759FA76DB8D5B1DC292D",
- "section_salt": "3833F40C4974B38BD57570C497EE5902"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "401CCB9D66AEB61847B15900",
- "extended_signed_metadata_key_hmac_key": "C462E61176CA3B00E36B6646EA77FEFE27CF9BBBD0B1CFE8A3B0D4B7DD53BE6F",
- "extended_signed_section_aes_key": "6B4C832B1D1A9DD2DBA6E8DFF282ECBC",
- "extended_unsigned_metadata_key_hmac_key": "2A269005BDFFD1F95C9F32C0F11F5A1DBDF3FFB81DD158FFFADFA798AA6E112E",
- "extended_unsigned_section_aes_key": "D5A4E3BEA29D4ECA4DA23157F5424B28",
- "extended_unsigned_section_mic_hmac_key": "6A9D5EE345CC73EDED244E5B751ECCBFEE36F5B3D324D9F7FA3F3B2EAB9CD507",
- "key_seed": "77F7D27C7310AB2751129C1538669386170211F516B8943680B637CF65115922",
- "legacy_ldt_key": "0A5C7250219C035C18904DC9A0EDE5A908C2269A7335EE94B996EA8D8A9BBD68DAE33565358D97C8173DADDF6BA40F1AA652105733D69A03598C46EABF7424D5",
- "legacy_metadata_iv": "54CE3A7C78ED5BEF30544D97",
- "legacy_metadata_key_hmac_key": "6AEBDB9DAEFDCEDF36567A0E00922581874B23CF315D1BB5A37E27C0A76444A8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EFAE",
- "expanded_salt": "073EFF9D17B507883F9DE696E97CC159"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "29BF47AEE08B9947A6ED248BC8A2812F",
- "legacy_metadata_key": "DF5A73536DBC553831639AAF91D3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0637C165F309E25F84BB141730DDA90B",
- "derived_salt_first_section_no_de": "15372A5233398780C8D2DACAD8759068",
- "derived_salt_first_section_third_de": "E3FDCD0C19A3A8E25A2245886F936E7D",
- "section_salt": "F7F76998EEC097CF359DB5526781F922"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7B4A53E43819DF4C2628FABF",
- "extended_signed_metadata_key_hmac_key": "4A797DC19E4E74632DFA939391DD22A1285A588E8E83F450C848B17D2E7188B0",
- "extended_signed_section_aes_key": "18543734F0CC7C83FBED4A6D2ACFDCCA",
- "extended_unsigned_metadata_key_hmac_key": "E50DB2A585BC8619B6B7B1D3D34D62163B8C954D1F2035E55CC65F0AD5A1DD24",
- "extended_unsigned_section_aes_key": "A897E2610119613B46860D3A079753E2",
- "extended_unsigned_section_mic_hmac_key": "E71ADAF96492060F84C4226A1AF82B09B138C0AECFA6AD22C79BE12A75848A9B",
- "key_seed": "948CF867973C255DD717A80B5DD56BEF6DB8351F82C3EC171FF89996800D7B2D",
- "legacy_ldt_key": "4A692499BDA8A5886CD9F5C132110CFC1FE0907F185D7510CA4368DC8BB42D9943429C9867ED81E5B246F8F2B45215F458E9C34D76924FCA2D2CA2E0BB28B614",
- "legacy_metadata_iv": "7306795D770C9A30B2D554C0",
- "legacy_metadata_key_hmac_key": "110C413DF09CC4F31BB7F4F02728B97DE57055855EA8FF6A9901F00AEFC84930"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1991",
- "expanded_salt": "AF1A6586D46A19C2E4FED4BDE96E0597"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F35CBD9AB3F05F44DA4577EFC9F4F760",
- "legacy_metadata_key": "B86A5BECAD7AA2058DD5B4D9F971"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A6DC988FD71775EDF05B97FBD744C140",
- "derived_salt_first_section_no_de": "F2536E1E1DDF421D85CA5BAC1DA90FE4",
- "derived_salt_first_section_third_de": "FFDC5FD04FD047639ACB940BD1A55440",
- "section_salt": "4C516DDE3A716FB69078ED9A50590A3E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "91FD8CA6A25A71F0B4FF2E8D",
- "extended_signed_metadata_key_hmac_key": "895F857AA41F6233E117BD192B1C498CAE98C0A53572E901C942E9C55C7E730A",
- "extended_signed_section_aes_key": "3852E3BE071C3FBB8184787D7C938151",
- "extended_unsigned_metadata_key_hmac_key": "BA28362E73A1ECF477879DF2BB3863DDA6DAF840C8C3D11C857F061D0B364C2A",
- "extended_unsigned_section_aes_key": "C0DB224DBAAF2A2D1F4F32547FE99818",
- "extended_unsigned_section_mic_hmac_key": "DA9AEBD24A56ADB334E77EC4B5BA6143EBA90F9D482F5270F337F56773C328F6",
- "key_seed": "4F4818C654C55CCD9EB278B27F0C9B22F01A1E277D47483CA91A5967E600A435",
- "legacy_ldt_key": "493DA6AC64A255AA71075317B610A3D0843A90E7234B7F964443A8EB6799FBC31CAEE4E03D0597BDA423B4C2D6F2867130A94FB972371CF486DBB73924F1FC66",
- "legacy_metadata_iv": "0FF682FE0F69CF270797AFD2",
- "legacy_metadata_key_hmac_key": "FAB640C6FDCF60188DAF8F8B4768DF5C1C76A839C958152314D1E53A8F948FA4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "07C5",
- "expanded_salt": "DD94DC3924D02E0707DFBA8A6F96739A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "962B5616D6BEA587BB90CB7F50520831",
- "legacy_metadata_key": "7EB0D0CE89D2C7B89A118BC4B333"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9E4DCA050E74D798B14B96B38196AC1D",
- "derived_salt_first_section_no_de": "5F3292A3710FE69CE323A8FCC7FB93C4",
- "derived_salt_first_section_third_de": "C1938982F9420E51E4EBB9649C4A3871",
- "section_salt": "114F5FD3F94CF108932B23B195483B09"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F93CA28BC1FDCB236AE317C6",
- "extended_signed_metadata_key_hmac_key": "F1A371F80BCEC9D12CFE489C07769F279287D37235ECD929C4C510636D82CF8F",
- "extended_signed_section_aes_key": "4DAB4639982F3BD85C9D21882BA21D8A",
- "extended_unsigned_metadata_key_hmac_key": "D251AD040C9D5F33DC6BFF9F54A01DDAFC8FCA501670DDE31C1E3F6573EF4A1C",
- "extended_unsigned_section_aes_key": "DFE43453F5F367C8378067C84B48CF34",
- "extended_unsigned_section_mic_hmac_key": "820BE35B0DD0031C7FB1B1472F8F5308DEBAC9F5B9FA8ACCF10142346656239A",
- "key_seed": "D7723FEC88816D161453D8ACDC673E2DE88F7AC07B05775F46415DC734FF338C",
- "legacy_ldt_key": "38698CED4CDEB3C296C378788BD6216D53895C6988903C1E0D4E91063F53A8E4C27A71D5E90A1E92DD4C9DFC13DD9E80553B4AD4DC3DB50F88BE0026471029C2",
- "legacy_metadata_iv": "7E3ED84D7D46D801F87A3E08",
- "legacy_metadata_key_hmac_key": "98F7D55A6AF7B2169CAA82AEE553882A8BAEA252F8918F9AE68C94F1FE97AEF4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1CDE",
- "expanded_salt": "AF25E0B3514D43B1C3545324F1727F12"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "88937C374550C3EB3B866FF5D1D14C8F",
- "legacy_metadata_key": "5A7B5EDD475399B41A37A89124DC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C1D937711FD96A2E54ED7FFFD5FAA1EA",
- "derived_salt_first_section_no_de": "53721574ACB0ABF7B6D2466357966D49",
- "derived_salt_first_section_third_de": "10EF1CB117146514623BFE08AB43FC0F",
- "section_salt": "A24110770690D07C7E04526B479EBD1C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F151E5E54345CE546405A709",
- "extended_signed_metadata_key_hmac_key": "80ED1D84F84AA5DBD9619710E732B77CEE0B4BB23A06BA7426A419BE55FA56D7",
- "extended_signed_section_aes_key": "6333D95411651EE7F5557BEED5C4885B",
- "extended_unsigned_metadata_key_hmac_key": "515BAC170BD196A6972413CC173E4A4B1E8524613B7ED09F5C2E5CA93FD5D592",
- "extended_unsigned_section_aes_key": "6D29E64D0CF85A0105481127903875BC",
- "extended_unsigned_section_mic_hmac_key": "7DBBCCBE486AF2FCB09963BAFE3DC746CFD0B73D545E76806A325185AC69E5DE",
- "key_seed": "D0788EA21E90D9806659CEE1C156DE6B64710ACBC73F79FBDAC64BF52B91CDC3",
- "legacy_ldt_key": "C3EDEBC6725AB5EEF71E66FD1C814F97A0430851D308DAA5BAC5A037E931018568478021D25F06BA1C50F9837F0F3FA529DA367B5551B56898D49F719D568B01",
- "legacy_metadata_iv": "80E7BF942F2CB230244B2906",
- "legacy_metadata_key_hmac_key": "67DDA4CB8FB5561099891730EC1CA9FC47DC0A2F3FADFDB8593A13689E778CDE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F4FD",
- "expanded_salt": "C69CC61FDEC89009B3E55970E8A9F501"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EDD3C87C8560CBFA7C0A0ABF0EF57356",
- "legacy_metadata_key": "8A83B0A39B929086E6153FB211FC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D42AC0B3CF77F1B02220D5E5E3CC19F4",
- "derived_salt_first_section_no_de": "D326FC53F0BA067F656DAF903A22F470",
- "derived_salt_first_section_third_de": "36C8EC0F5255D4E4EEABF75FA325A43C",
- "section_salt": "6D356C05711F33C1981F9BDC68F51154"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8C998481F6DDB7DFFCBD8181",
- "extended_signed_metadata_key_hmac_key": "4A3AB163D8BD0BE8DAAF86C0519A0756DDAF0928CAD42584C5902700B9353C51",
- "extended_signed_section_aes_key": "8D5354DDF97508E39AECA794AFD8C77E",
- "extended_unsigned_metadata_key_hmac_key": "F935CB2ACFA4E3EF9A35C81AA94F8DC06682F00B0593CD2633965C4719E423C5",
- "extended_unsigned_section_aes_key": "DE2DBFA534B245571D4BAC0FC2D5DB58",
- "extended_unsigned_section_mic_hmac_key": "2B90F9E32099BB4A8B9D73541C1BA4319B137A4263B1C15CEB7233C7748C5664",
- "key_seed": "DAA47AA55A41D1072FE8AB53DD373768BD94329FE6575F01DA919032975CD830",
- "legacy_ldt_key": "003BEFC1AA9B2FAFA639E5F6244A3229CE7C6070B12AD410E828F4559463B165864C3F9F998CBEA0F3ACE624F9E0110D29F51D25CA2EAE6C23EE40C25C785675",
- "legacy_metadata_iv": "F1DC7EF49491DD315DF75CB4",
- "legacy_metadata_key_hmac_key": "F7038D72B1B558D9642602C7F4E55EFA4B90E5CF691811843C06E007E382E671"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "00AA",
- "expanded_salt": "7B4362A0F267F6A8167B5823C264B0BC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1CD68E9DB1CFB8A657FA15E91215FB78",
- "legacy_metadata_key": "6939B34C06E988B7BDC1DA43870F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CB27FAEF54E9B4E2693A66A0DE6BD1B1",
- "derived_salt_first_section_no_de": "E3DC5EDB4D56CE22A8AFBA7A65BCA513",
- "derived_salt_first_section_third_de": "EDECB3D06281791B10BBA209A2AA34B8",
- "section_salt": "66B75530FDB435B66C0C0C0FDD9682E3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1B12A719DEDCCB2CDD82553C",
- "extended_signed_metadata_key_hmac_key": "A1EB06232ED2B153F2E8C1E2BBEBB98A2BECC15935EFEED5F144F519377C9669",
- "extended_signed_section_aes_key": "E97771BEBB674A49C848B8A6DC865FCB",
- "extended_unsigned_metadata_key_hmac_key": "28364FCA89F44F090F55509D989F4512641668A787960C4727543ABDCC8E080E",
- "extended_unsigned_section_aes_key": "B1F8FF914DB3FC14811746019E609C5C",
- "extended_unsigned_section_mic_hmac_key": "D3DDC7268B6E68D8E153A94C94087A6196CD8D54E68B3AA1E75DE203588CB1A2",
- "key_seed": "980B285DE5056483EE4F14CE2EABC8FAB53D07A4E41BDC56B890B73F28015592",
- "legacy_ldt_key": "43A08CF5FA31D60334E5887932735B0DFEBCE0C4BAB6C29727897DB2CAD47F8A135691F09155EBC8B85B01EA8E46D66F86D2598ED58DFEDA8C7AF40CD396AD3E",
- "legacy_metadata_iv": "F70307ADB07B467872BF31CF",
- "legacy_metadata_key_hmac_key": "A25FB90BB8740868ACF3C5C5F00BC597E1766B2470ABD430D93F0A6607535D92"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0F2B",
- "expanded_salt": "06CE490BBF593B655082E9559440E195"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B55EFDCE6205469519D28BCD9C0A8FAE",
- "legacy_metadata_key": "856A3CE5B171D2B24B32744BBE56"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DF0B579CD266AEB471464FE7F1263B1F",
- "derived_salt_first_section_no_de": "EA3E9A0E964B1D6F898F7B17382A9E02",
- "derived_salt_first_section_third_de": "B700FDE6C71B1F660C7DDD6A371BF345",
- "section_salt": "CD6E552B642FEB4122E75E5A47D63A42"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0501CCCE0CDE882425365425",
- "extended_signed_metadata_key_hmac_key": "4A2F0AFBC23092AF4771900ACB1AFE839230766DA262DB3127F38EB83CCDF16F",
- "extended_signed_section_aes_key": "D7B88F35743A84D27974F0DF0240433F",
- "extended_unsigned_metadata_key_hmac_key": "1B995B3C628EEC8971C4EB11800883DCD874A1F4FF0D7A726AC67925E701F6D0",
- "extended_unsigned_section_aes_key": "23A667C216E5DC20DED18DDE3E5DB997",
- "extended_unsigned_section_mic_hmac_key": "BED4CE03E874C49E2F3DD62EB3FAFF9609B8764A65DB655C7594D60C0728B076",
- "key_seed": "CF400D6952A358BACD5351B4F3AE8773867116A746E6D9A5B77F6AE5827DFB4A",
- "legacy_ldt_key": "A57E9D327DDE64FD6870672574441894887EBD6AD52CB8D90EE669DDE62E159E26AB54E9C8AC738992993A73488B067C8AFF9BAB5D4601EDB8FBDCE9FA0FAEA5",
- "legacy_metadata_iv": "565674F6FC1B7E456293C577",
- "legacy_metadata_key_hmac_key": "5A7015283EE51CD9259CDA9820CE57581549C4FEF764794AAE36D04C0905B240"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E940",
- "expanded_salt": "173194076A90C2B149B61703898395AC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A7611F2137BABE25576D29CD3A71CFE2",
- "legacy_metadata_key": "72B5B4D4FE447E4A91ACB5210E15"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7027A6DFDE28876DD6A9392FCB35AF92",
- "derived_salt_first_section_no_de": "5F96AAA71BFABC7C38B4B09C7FC69931",
- "derived_salt_first_section_third_de": "FBE6F33228788C93295440D6258681C2",
- "section_salt": "A0DF1DF4C9893215B927021D0D0AB239"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "71B094C3E8EA47A03D3679C6",
- "extended_signed_metadata_key_hmac_key": "BB67CDC90945E78D6DB2D18DA8394F708589048554E802A5D04A21FEE5FCD599",
- "extended_signed_section_aes_key": "B051D64A438CCF9FE4634ACA682278ED",
- "extended_unsigned_metadata_key_hmac_key": "E7CEC85E0CF24E03FE9A982463E5E6C9AF30173C653B952E240F877C52359DA9",
- "extended_unsigned_section_aes_key": "C1B87AD84E400D61A2028E9732E3DA6D",
- "extended_unsigned_section_mic_hmac_key": "76478793A41487E0A1F90B186A5F6754BCDD08FFF487AC319BB7D39F014F078C",
- "key_seed": "6980A6383618A242692210981B0E415C6873682483C7E5CD012E2F6B96DDBD5C",
- "legacy_ldt_key": "83F7293764ABA912688C8E7967D826C095C0B095E354A2A93514A2637B24A60B726C9B08BF3E03DBFDBF9A173ADAF32962E45744115980C53B1FA1855C4C5719",
- "legacy_metadata_iv": "150250654236A08470C38C8B",
- "legacy_metadata_key_hmac_key": "73A6DBBBC29890835537AF89623173EE893762C1654FB5C3BF0781D73BCC6D7A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4CC0",
- "expanded_salt": "55F571FC86826AB892BD9C9B9165AA3A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F5EA9C4355FFF856B0A13C7F8A01FA0F",
- "legacy_metadata_key": "D14D99E7532677A065BE81FE1905"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "218DD3134D0EF8235AC643B5307F49A7",
- "derived_salt_first_section_no_de": "0511C756DF58F4BD5D061CC52EC7471C",
- "derived_salt_first_section_third_de": "A72FADDC95D3D5D050FE8ACDE6BB3FFC",
- "section_salt": "89857AE659B9258FDB092F4E264EADF4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1BD2E72008544F5B41734678",
- "extended_signed_metadata_key_hmac_key": "566A890BFF15DEBE0060A8CDE996E7807567E08B7D880EF27E76D656D36755B6",
- "extended_signed_section_aes_key": "ACA04E117CADD9B1E26B7B9AADD97D3F",
- "extended_unsigned_metadata_key_hmac_key": "FA3CB6065C9ADE3779934FC965DC587D1D6F1DD704AF23282781F7FE77AF2BC1",
- "extended_unsigned_section_aes_key": "C5C80BB65F213C3C69C4EB33E3FC113E",
- "extended_unsigned_section_mic_hmac_key": "8018FB6BE51DF1C2586BF6BEAEFE0B4871CD6F26731AF36F016B41109A2772A9",
- "key_seed": "C6BA51A817BA085DDE9C7073B99A9DD58F7CB02C0F1AF43E28911A2DD75A7D90",
- "legacy_ldt_key": "6AA3505DA5B60AF61A1E767F0D2723975261EB3B8181C9D1941D11F28894C03A2EC72DAA18914CDEC09B4A3B9B704F0E2D2271FEB1A1FE0205AB10123E480FE3",
- "legacy_metadata_iv": "94AC93F176991ADCB5CA6849",
- "legacy_metadata_key_hmac_key": "87484EB4EF357AE6C8EBE9FB0BD4823EBBEC8A1CA069B5DE68BF789CCCFF9888"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C07C",
- "expanded_salt": "4153B279721E1C6BD6B452D6F51BB5E4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D01536AE0A101100ED21D7B0F96ABEBE",
- "legacy_metadata_key": "6EBD3D1F64FAA9D24D8356570311"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0E001FA9CADD642092924F4A5BA27F4B",
- "derived_salt_first_section_no_de": "18EC947E2C565D6D47263C97A96E588B",
- "derived_salt_first_section_third_de": "D9BBC235E125AD95FB8F47934615E72C",
- "section_salt": "1617C68A4A3E0EFAA17101E6245BE3D8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6914D077ABCB0CF9B71869ED",
- "extended_signed_metadata_key_hmac_key": "40340928B39355705531E49B5075063E0E82780746484456631348EFDEF133B5",
- "extended_signed_section_aes_key": "AE1F07C689352E6F1D663F14657A74B4",
- "extended_unsigned_metadata_key_hmac_key": "3CC4ECDC8BEF679E1BD5A7C4F8A934D1388FAB20E8252D954569FD1D2F51EB35",
- "extended_unsigned_section_aes_key": "CF3AAF56FED1A2038AEC624FF7230F6B",
- "extended_unsigned_section_mic_hmac_key": "F54860EBA5D52BCC2BE526E19FAFBE4D0EF20CDB119FAEC87C343F813C2738E3",
- "key_seed": "A90713CE129F0689C5F7B43CEC1BD3B35F21363D18192AAA014872D77F772C2F",
- "legacy_ldt_key": "F4DD033EF1A39CEFC5D6F9118192397D1C8E9910EA2FABEEF5BB803F89E410AAEF624F0C92BD6851AA6BFFA7F8EBFB1AE6F0517674018808E30F24C40AB23B0F",
- "legacy_metadata_iv": "F423A10C6B31E699F9ACCF66",
- "legacy_metadata_key_hmac_key": "D0665AA6A624F316DE25DA94CB0DC28E70EEC86328BE9F46CB67C55673EEDC3E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F9F6",
- "expanded_salt": "4355C74AD28420C5D96B61B9900C26FC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "ED5EB3CD75F31370BE1D445E3F65DA2B",
- "legacy_metadata_key": "7B271F39BF4556AA887D999B848F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6AF3D9DE336E0220D989EC03C79B9EE7",
- "derived_salt_first_section_no_de": "E5F1ED2798892D6E29C8844D81BCF602",
- "derived_salt_first_section_third_de": "EF844FA2D48EB667241C5C56528798DD",
- "section_salt": "EAFBAD64AE491E671BA4234C533DF5B1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DE52D682B1829D96A5A15A20",
- "extended_signed_metadata_key_hmac_key": "AFF0595A514670329D076C09F6B9F3B6F91700072246CDB7206B634CC25B9243",
- "extended_signed_section_aes_key": "FFB47DE37409B42FEDBD886DDF1BEB0A",
- "extended_unsigned_metadata_key_hmac_key": "720FFB1840D28A02E4F23EBEC61D42AE19C4E95E14FA880EB5F4042D92CD3054",
- "extended_unsigned_section_aes_key": "CAB884BAF6C74AF075912408AA797F37",
- "extended_unsigned_section_mic_hmac_key": "9D1C7AA28F450774423D168589A38945B07F76A23D94D7F55D5B9CAB002743AB",
- "key_seed": "8444A4ECE85E0FC1C1EE9C3CA584548E2B342AC1E088F2CA8366FB61B94002E5",
- "legacy_ldt_key": "3651066723E7A7E8B9FC1BFCD1FFC3545EAEBE9F6072F20AC57DDE17C99E1BCAA954C5995A3D1400164CEA0CB0587D0188BC4599BF3B70C7152DE1A4514C3708",
- "legacy_metadata_iv": "907618E798509A7C1EB17369",
- "legacy_metadata_key_hmac_key": "F0A2FAC307C254ABF6F0A8E09F0415AD90119D33F6C784625E798EF4AC7CA94D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5FD0",
- "expanded_salt": "67A633BB440AB8179EB473D61BD5AB35"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B0E26F3B7631A5F8C08E208EBFF9DFBB",
- "legacy_metadata_key": "882725234AF9A40F15FCA43AF54C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7E997D19B26013375C2392EA575B9A8B",
- "derived_salt_first_section_no_de": "8059D3AAE5DBAD8FCC1CCC47549D3793",
- "derived_salt_first_section_third_de": "3D220A240FFF1EC72C725E2AEC377BA1",
- "section_salt": "4F7554C2EC0A9E7BFF55141B918FADB6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FB9870F4D610361CD15DE1DD",
- "extended_signed_metadata_key_hmac_key": "60ECC80D01BDE9D05C547D07AE561C6E11D99B8ADE768176596290037C44C981",
- "extended_signed_section_aes_key": "2E8262AA0C32D50F01FDB9DE2704890C",
- "extended_unsigned_metadata_key_hmac_key": "877D99575FF14FCF50B94AA66458A69C26DCE94442DC79556CF40961D229A9B4",
- "extended_unsigned_section_aes_key": "4F77724695CD7EC2BED9FD60D6E70080",
- "extended_unsigned_section_mic_hmac_key": "419D355C0E83F37643D10480F67A4B33CB353D0EEC131F48D2941AAD34455230",
- "key_seed": "4D4C2BDA42C6865875C1488C80E34FB8566CC90D74F6B45A5F6F84B728F254C1",
- "legacy_ldt_key": "303FF0C4F82C7A2A4F6FF65155728783B105740B05E47DEE2976F71BE1559AEBE351276D6CF1004DA4C0B50EFE5636F01B63CF2627BCC02098A19526B4DBB714",
- "legacy_metadata_iv": "8D2352D1C4CC446E2BBAADC0",
- "legacy_metadata_key_hmac_key": "ACF20E2DB1A67FFE33F70071DD7C0050005C729489A5E4981A4C82EE8D23EC13"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6314",
- "expanded_salt": "701B04F945EFE9063C0304AFD07E9964"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B50693651B3142F60E20E00C341B2C65",
- "legacy_metadata_key": "C2A13528885634FA2A62E8DC2D1B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C12C5762511E4B3939B4BA03FBBE6405",
- "derived_salt_first_section_no_de": "D01F1A6D9FDF49273A672B05E516A635",
- "derived_salt_first_section_third_de": "77866560E7E7F6F156002B7019DB8F8F",
- "section_salt": "4169E9D99BDCD5770DF4CF0BA8910389"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "21E9B4E6C2D4129AB92751E9",
- "extended_signed_metadata_key_hmac_key": "45FACC435C4E9F56755AEB093171EEB2EEE7AC5042C17A6493283F89D50D6464",
- "extended_signed_section_aes_key": "15EAA52A0B38BC0220648012041223B0",
- "extended_unsigned_metadata_key_hmac_key": "A7B741D87DE65DA765A3D332C456792D4BEF043F3E1353B3A190A63914AC2329",
- "extended_unsigned_section_aes_key": "FC7B7537002D994587840A4CF20D614A",
- "extended_unsigned_section_mic_hmac_key": "D32B4FC9B5A61C27B4A05C4C1EDF28B592BC146EBF24ED5056312BD4F9D5304C",
- "key_seed": "047E99E27F39D4DB1FF69692E1ECE59C0BE0F7F062C5F122D12198774DA80EA2",
- "legacy_ldt_key": "2DB538BC2115668F9DAB771D27757F26EE7A1D3113618AA91E0FA24479F412A9C90F99A8CDD6500B550AD29BC2F79EF023008E330F9908656509FB28E650FA3B",
- "legacy_metadata_iv": "92F868B318987DC0F4BBB294",
- "legacy_metadata_key_hmac_key": "68A27D8E2E5D43411963D1E352F3A4857FC240D9527A1C2D6805087075719208"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5AF5",
- "expanded_salt": "C871C91ACC93403EAE4A3D26DA046390"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E19F8F78C94B52ADB06B42E27F3EB1EF",
- "legacy_metadata_key": "1B4C107E6184FB18D64BE0BED831"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DD89E13B1884201BFF417CCE6B76A4B8",
- "derived_salt_first_section_no_de": "532F6D155A90564ED5453DCF53739D1F",
- "derived_salt_first_section_third_de": "77373CAB0C575D173DC00B9A00F16F66",
- "section_salt": "D3CC07C75B77DBA148E529F633F6F679"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5000B8BF85F1076405AF22C2",
- "extended_signed_metadata_key_hmac_key": "ADF26CD54AF200E77CD63E76417623AAFB960ACD742EFBA83A3F24B1E0D67372",
- "extended_signed_section_aes_key": "FE7DAB74430D6382B502048C224F85BD",
- "extended_unsigned_metadata_key_hmac_key": "ACC76CE380EABAE7656C3B055EB7FFF5B2A5D3290038D81DDC61976088852079",
- "extended_unsigned_section_aes_key": "C2C3B24F76A59DC3D0C1F8F0191D8CB1",
- "extended_unsigned_section_mic_hmac_key": "160C66C1CBC5D72EAFE1B112CB51625B2FA79D637E92C776AAE9B66D3A1607A2",
- "key_seed": "DA9FDCF72C10212971EA5907B9C5AFB77765575AC782DE091CB581C2E0C6B316",
- "legacy_ldt_key": "AB4883103482C1D85D9C27796541F95391B9F16DDED11114720C76605E8CF8BB5A9BDE1041EFA058E7F1DC911C4AD5A46C8F45BC1355C0DCA04BB1A69CD86942",
- "legacy_metadata_iv": "FD57C43CFED37E914810695F",
- "legacy_metadata_key_hmac_key": "CC8E2841F31830A3DFA45DCC514DED31180024392DB56D1F59FB5355C7CB8393"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8023",
- "expanded_salt": "07C52D9DEFD7A08CC034B6F5BCA381BC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6572932087860D91E16FB6E3BC97A14B",
- "legacy_metadata_key": "79989EDCE5111CDFFDD00D465EE8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DCBB4EE4A1BB716CBFF360EDDD807B71",
- "derived_salt_first_section_no_de": "D1E641065DFF265317B51C95BC6161D1",
- "derived_salt_first_section_third_de": "CA2ACD839793485FB277BE0550C50CAA",
- "section_salt": "26865F6BE2C3437349E0388C7733D6AD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "20A3137BBBE70F17E65EBB1A",
- "extended_signed_metadata_key_hmac_key": "6EDB4E6B485FB67B9A1C029EDF7A8318A15CB2044E178D16B85FCF7E3B0E43E9",
- "extended_signed_section_aes_key": "7B072521B109D4858C48BA584CB6AA07",
- "extended_unsigned_metadata_key_hmac_key": "A7A9C6CEE760A45C2BE95CE7614D979C515A90848EF63C182E1B79316BB0DA4C",
- "extended_unsigned_section_aes_key": "C5C4CDD98710E3BF3BDEFDE39E4D99C8",
- "extended_unsigned_section_mic_hmac_key": "75279EF86118A29391D85EC2033D3B68E0AA15E7052833304A29862C83124FCA",
- "key_seed": "A012A6B5171B8679EC098C53D0FD6F1BA87DF624C58728B1428D283BA7F48EE7",
- "legacy_ldt_key": "DB8B3ADE81F6C0FDB3291CC74DFB8CBE3527F4B7229A52404E7C52847AEB76AA5677329DE9E3B5ADA9240402605D4A81E0C4E51D59CD5499EC2A16E0BC4598FC",
- "legacy_metadata_iv": "D736806BF9D43FE8FE5CBBC6",
- "legacy_metadata_key_hmac_key": "318126119F194AA0F0E6D9F2938B90F8FAD6B15B97B174EE6E3885A7531B54FD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E991",
- "expanded_salt": "2AA3B922FC3814F29402CC3642139EA2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E78F89DD814920C2C0895B653B27FD6B",
- "legacy_metadata_key": "57C0A7863DFC402D3129D6E0867E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B0476E44A77E458A6332770438603B97",
- "derived_salt_first_section_no_de": "863CAC231B1A2FB4E841CE67A060498C",
- "derived_salt_first_section_third_de": "F250368A60150200519EF0D630A27B4E",
- "section_salt": "372AA85A5FADD1D114029F0E8C72907D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D4149AFA7B0AB2E9F36AE5CA",
- "extended_signed_metadata_key_hmac_key": "5924790F7B78A66E68A0020839FAE3055AF87DF002C8C1BA2AC0507FF5114D08",
- "extended_signed_section_aes_key": "EA3ADAF453FF1868AE8A64F0A82C6646",
- "extended_unsigned_metadata_key_hmac_key": "49C255097CB1F281CE6100337D459CEBED605A513E1F2F5352D0CEF69E0A2C56",
- "extended_unsigned_section_aes_key": "9BC6B42B93324304DB544C393351BC14",
- "extended_unsigned_section_mic_hmac_key": "FB856BE174B4E8F24362A0D29541E4A36842B0C551834561EA6FEEE404F656EB",
- "key_seed": "BF017F90B24C4293778C195B48ACCC6106B7B5E2E9556354FC55E717A32A45BB",
- "legacy_ldt_key": "31F9F6D2EDFD839C3336FE4E32105235FED5FC9AB0E052DF4C6A84EDD2ACCE30AF095B25581282B750C0C1BAFA809A917F49B78AA648EF34B0516930A4739F9C",
- "legacy_metadata_iv": "E6BB37B865154A826A5ECB79",
- "legacy_metadata_key_hmac_key": "1F5FB8D3D08E7E2BE36136C58A5248E67297680432F21E7D39EAB7DF5358BC1E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D1E1",
- "expanded_salt": "40872AAE4E72DAB18604F601CA86C18D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "715F5B337431CB5DC180CD65E3BABA68",
- "legacy_metadata_key": "1ABEAC5605E50F89DDEB17AB1CC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E4E322A6E39B806844B1D83B3A6EC4D2",
- "derived_salt_first_section_no_de": "BB4F9DA5824238E5CAA15D3720D0996C",
- "derived_salt_first_section_third_de": "371787320D0CED480290448CE7B2B3B3",
- "section_salt": "390BA6D7C179EB33B0FE3B1A4F29F93C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "377B9977BCBE5AFEAD4AB077",
- "extended_signed_metadata_key_hmac_key": "6CA78D0EBD884B2D04DFF7D87C37191B6B06BACE36795E4A334F1E49D5AE5275",
- "extended_signed_section_aes_key": "93D929BDF92EF86F47B91F320F88DE9F",
- "extended_unsigned_metadata_key_hmac_key": "E807E9F071DDCB8203FCD47F464D25D38A8C273FA3EF65093B6DC57CDF810116",
- "extended_unsigned_section_aes_key": "A308EDADCF636222AD98A35EC4B1850B",
- "extended_unsigned_section_mic_hmac_key": "B8A24FBFD01E6446254D79329AB6DC71291A227920EB3AE02876DCE71D70B6B7",
- "key_seed": "D24E30EB2940F00DAB5DB00BA42B3AAEA89230AC39A83A353F6249A40A6B4F9E",
- "legacy_ldt_key": "06A95E1B1C1EAD5158DA81B4AA06A0C6EBE995BE9DB15B7BB46E323A1D1E920AC41934A2F4520B795C832118D18A68F2364ABBD4745B908621C2CA986875F7BD",
- "legacy_metadata_iv": "9723A6D5A88E6905AC579EA9",
- "legacy_metadata_key_hmac_key": "D0D2653CC9AC7DE8F133650C41D85EA5451589E662AEE7ACD9699ECEB114A970"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2F7C",
- "expanded_salt": "BC9A10C4E8C4A0FF57C7AD857CA736DC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "432C2BF439DC440120D1DA61C91A44CA",
- "legacy_metadata_key": "DFE69AD2E557837C54078572EDD4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "591F0A097160B14272D7A5775EE9746B",
- "derived_salt_first_section_no_de": "35EABC0754171097EF099F0899206F18",
- "derived_salt_first_section_third_de": "3AF4D04F5028C7227FB7C693C4EF9AD0",
- "section_salt": "73121E139F68945396585111A1E79243"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B41CCC6F224F0FC8797CE26B",
- "extended_signed_metadata_key_hmac_key": "777A1DA394FAF4200DC0E81171206DB5E9276F5E9955299C9AF9464E76A1C84E",
- "extended_signed_section_aes_key": "E37F312E01FB4872625A2D6791C8A171",
- "extended_unsigned_metadata_key_hmac_key": "15D14C9B3BE5456DB849A00267AA01092019C21EC1CE8F9B7485B24FFD61E79F",
- "extended_unsigned_section_aes_key": "0C4E5A2A4A0A29B90508A858C0BF6AC3",
- "extended_unsigned_section_mic_hmac_key": "4AFA01196F5AEF6B48622D7AFB41BE4EF1266EB18BAFA5913A4910A7DB54CCD7",
- "key_seed": "4FE662BB8DA4DFA9680CB0D533D2CF271D29927AA495C781552094295219110A",
- "legacy_ldt_key": "A05F36E57A47CC78C7ABE666167A1AB241BCD159C96B321E085ADB7873FFB46534DD1FE4BDB6AE960D2C9AE17C71AC963BD54F67AF81413BAEDDAA261279F57A",
- "legacy_metadata_iv": "3D408C606D9F091B3C2B10C7",
- "legacy_metadata_key_hmac_key": "1B17FE339078C29600F5927FB4865BFB9B905BCD8E69B41371A99D66AE27A2D0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "632A",
- "expanded_salt": "733F0A4066584B79FE1CD992889E0916"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5B502E9DD2D927F475E4A96E60CAF70A",
- "legacy_metadata_key": "BCE694E5BDDD0B405A1A41B190CE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "55FFF55B522A10ECEBE636AAC44DEC25",
- "derived_salt_first_section_no_de": "AA42E7E4C89EE5E9F75C5A25D8936F80",
- "derived_salt_first_section_third_de": "35A0688FCA39A581A81CB8392AA84D9C",
- "section_salt": "582AFABC825142428FCD0D7410358B29"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "63B52431E1DC96FF0DF1294D",
- "extended_signed_metadata_key_hmac_key": "59BC114DAE5A884D066DD7B794F389CD79AC33F35132314F5A5CC5A61897AB69",
- "extended_signed_section_aes_key": "C5A685EF0926A13F1600181361EA76D6",
- "extended_unsigned_metadata_key_hmac_key": "4C13D77A4713454ACC836F035E2B945B6F9FF027E957C20E9CF3B3CCEF88D31F",
- "extended_unsigned_section_aes_key": "3596049AEB6AB44AEF61B589BFCBD68F",
- "extended_unsigned_section_mic_hmac_key": "EC8C839113E762BA21BB8D6905B5764859A3F0C450228C7DD31E18FA46B17D82",
- "key_seed": "377D16705BBBB64F5FA29C0AB02D12D214AFE23CB83F0C193C811C0C44735269",
- "legacy_ldt_key": "44B42B91EA3B6299ACD25EB3D748A631C501EADCFB10F76B4AF21BF4447C570A2BD10BEDE67CBE0278C201137BA10B4827FB43A7C7221F6A659C0DE44517DDEA",
- "legacy_metadata_iv": "1DDA18E559B05C0D72EF8B09",
- "legacy_metadata_key_hmac_key": "C7194C67B404CDFB6023106B2034A2FDB88ACB63D66BF8038FEAF492DBACF4D4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "39B9",
- "expanded_salt": "6F45525C32BBE87EB3A5A88FA15952EA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "65D2A219B41C6B7F0F4F25521E7E723B",
- "legacy_metadata_key": "393F2E857ACFE1E680AF8655593D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1B026CC9C55A447E7E78ABA3E8654377",
- "derived_salt_first_section_no_de": "9A8B63456C63A40DB9C3AA4484597B09",
- "derived_salt_first_section_third_de": "223D6D1726BD6A8ED2A1563CEFDA5923",
- "section_salt": "113D527CA8D86BC5FA50CC64B0E674B7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F6698D9A2C99D04D520ECF5F",
- "extended_signed_metadata_key_hmac_key": "6F848C26A4186EBAB634C7BAECFABB1AA31CA71E13052D269364A33C9B33748D",
- "extended_signed_section_aes_key": "0D802AAFE845150CA727E5C187CDE14E",
- "extended_unsigned_metadata_key_hmac_key": "3C88CBF55D5020907F25693146E39C4B2D70B0C2A36A2A20149987C493489BAA",
- "extended_unsigned_section_aes_key": "D7B5C666335D570EE9FB3857698520B0",
- "extended_unsigned_section_mic_hmac_key": "8FE80FE04F64802E4A463B987B7B58B5ED86D0F14B5A3842AD383B4E1C931058",
- "key_seed": "45BE0364C7328DE3660C309477F4995DE3A708AB52CB6A33753500F294B91945",
- "legacy_ldt_key": "631DDD6E539D0627D6FA848A4E8254812D7D57CAADFB5FC63D1C99514F462FAD1794E310484F63DDB3D976EE9A3FE361ED2B3529C1EA07BBBF2782F7E0928FAC",
- "legacy_metadata_iv": "69EE6182E60BFCC3A9F7A997",
- "legacy_metadata_key_hmac_key": "7DDD8AEC5E19973870F2CB2B127C26E9F1EF3C81447AD3E92FC439550A7B1353"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9189",
- "expanded_salt": "67130CEBB9840FC125AB9CC5BADEC5C1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7933702E50E717420A908F84027E2EED",
- "legacy_metadata_key": "BFD03F45079AA6A24D4635B3BE9B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "53E203A5D606490FDDAB22176D718CD7",
- "derived_salt_first_section_no_de": "ACBA89C869B201DBDBE2D4151146EB9E",
- "derived_salt_first_section_third_de": "0DBF3D4C5AF25F72B89B2B9DA2B596C4",
- "section_salt": "BE9406CF5DDAA36F8988A889FD88F18F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "16C7474EB92AB713B18C44D2",
- "extended_signed_metadata_key_hmac_key": "8148B5BC9419849EAFE8D7B9CF925AD4509341D7F2A9176CD516A366589B0500",
- "extended_signed_section_aes_key": "FB2FFAEA87AD05A97396839DFE0ECAA4",
- "extended_unsigned_metadata_key_hmac_key": "AAB8E002272F6B44662D4F6A5C12A9CBB4EAE99812A8B0D23A06193AF55A9D04",
- "extended_unsigned_section_aes_key": "2AA2F8B524E6A9AFF8491ED1B0379EA5",
- "extended_unsigned_section_mic_hmac_key": "BE33347E1CDE8D26E70B8E09F2CC98F89E76F07578F0B35D42145D06DF1CEE4E",
- "key_seed": "F6C2C6108F0F12E5597B5E22C0513B0482518B11BE441FEE62D82A0E46E38F5A",
- "legacy_ldt_key": "630E8525FA54B20BDBAB01DCE07A18D8DD95E485904A744AE98217F9929FA03EA2A083B51D8F3485D2440B23DAEA878006869E37ED4DE755E6C9B9A21B5EF516",
- "legacy_metadata_iv": "69FB533CDAC46A301F73FA69",
- "legacy_metadata_key_hmac_key": "804724B931EA317D972326D54B9F73AAB815182CD742D47B024888B17E74A12B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F577",
- "expanded_salt": "9E244EE8F0F18E52CA42EE721792BBB6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2CEE9B1D7E983E583A9322B75D05A01C",
- "legacy_metadata_key": "D6225211E837B14A1E9A9F99B7E7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EC30311E20058791802DEBA7988D6F7A",
- "derived_salt_first_section_no_de": "D03EF0F193921FF4D578E7576CDB5081",
- "derived_salt_first_section_third_de": "BFA7C0A81FE39B7C3BCE4F7094413124",
- "section_salt": "1202C01D7DFD13B68A351CA1BFB58A9E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1749D4F40DCF21829C14DF04",
- "extended_signed_metadata_key_hmac_key": "3CC02C7412D83B2476ECDFBD9C6CDBB5C4C58D4867A7060F0FB11EE0C2EEFDD0",
- "extended_signed_section_aes_key": "02B203FC67EB9632FC77A542782A9D92",
- "extended_unsigned_metadata_key_hmac_key": "BA9F53AB763E05D2B71963ADC09BE56390AEFFB32F950911C5DE36FE01816A46",
- "extended_unsigned_section_aes_key": "7FFB4F7623A08E20A1FA4FFF03BFA369",
- "extended_unsigned_section_mic_hmac_key": "0838AFCB1421F4FA27A585ACF4C1D8C61F9669F2AF4D9E0614501542923CB31A",
- "key_seed": "464538F05A109E4157FDB74313434E044D3E798952D15B22BBDA1A163CA95611",
- "legacy_ldt_key": "7290F2B01E266F8BD479149D5F105136AC49206C8E32C66FB036E4BE17D78B0455A3B6F6C77330D0FB861B6694CEE0421FFCDB58226CF3812386B634D9AF8B3E",
- "legacy_metadata_iv": "6C91854C8C52E9953FC79B67",
- "legacy_metadata_key_hmac_key": "CAD9C5C0D5B9FA7C64C65F85968960F3F81199480C6FC916B403169E9A5CA478"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EF4F",
- "expanded_salt": "08F05C3695B52DFBCEDBE08F4D294EC4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E453B592DC036F421876A8BF389A0540",
- "legacy_metadata_key": "DB4A76B59314C101EE1F0A6AAA4A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "34E1EBEFBD7E0E41D284B7FED1C7DB33",
- "derived_salt_first_section_no_de": "A061BA0BD3B19FA7536C73758AD94312",
- "derived_salt_first_section_third_de": "FD49641FE8DDFFA35A8F839C4A375992",
- "section_salt": "2E0444BFEDDFD9E0433CC493553DF99A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D9B9E8E0C591A2A32A1D9941",
- "extended_signed_metadata_key_hmac_key": "88853D57706245DBED312E6BD179E388DA1D1B97C2B159AB617479A3794FDBD5",
- "extended_signed_section_aes_key": "43AD02448FB0E53D6B50FC82231ED6F4",
- "extended_unsigned_metadata_key_hmac_key": "86BBD9A4FD5E1EEA910DB02C3BC3B78278ECDF4A006DEF7FA83C76B9D5BAA228",
- "extended_unsigned_section_aes_key": "68EC548B772F7ED702AF1936899B1667",
- "extended_unsigned_section_mic_hmac_key": "1BE784B32BF0F03FE06E0F29CA3DDADC032719C42927260C995B65B0985D22E6",
- "key_seed": "BCA37134AD06C9131C7B82A916173CD12A35C8465F46BC02EC34E7F22539FF9F",
- "legacy_ldt_key": "4D4BEB4398A793820F54EB8DBDB2A5A5C906FFCFCB2D8153209F8DD52082093918A19CD607E920D413B61C6B79EC08B72D6929BBB800F00FCA30A5C8C8025413",
- "legacy_metadata_iv": "B4EBB14F3B0AECBCBD002CF0",
- "legacy_metadata_key_hmac_key": "FA75588BC99DEA3C726DB85AEA3A4664A01D05ADEE60BBB5032F7EE93446CDFC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3A82",
- "expanded_salt": "4EF64EE4FB1DFC0AA327A1402A291BB0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1F338D381D31C708C76F35D79260F4E4",
- "legacy_metadata_key": "A6203E5F4C146CE7D00620DB3A99"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1BE038069B494C9F6499B33CFFAC5338",
- "derived_salt_first_section_no_de": "77B297AC242ACAC030146D8B1B11BA03",
- "derived_salt_first_section_third_de": "016FCBC30F4BC3FCDFBEA0F6E79BBFEE",
- "section_salt": "6EFE42038529B5C420CE4DF832BDF63C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "51A8BC7A1DF952C56CA7E2AA",
- "extended_signed_metadata_key_hmac_key": "451EB954D6B44A075069376367115E4679C31A4B625074E6784E7A65C0236B34",
- "extended_signed_section_aes_key": "7346BFFE0D6F9B96CC43AE94B15C6E8B",
- "extended_unsigned_metadata_key_hmac_key": "06011FBFDA43CFB69265CC1200415F8911ADB4561BAFDB8A1665936697D9F4A1",
- "extended_unsigned_section_aes_key": "81930CEAF123D9CC0C42AE6C24DB60D6",
- "extended_unsigned_section_mic_hmac_key": "435B7CFD7853B5B6F30DE351A15A7E9A15AF32AFE209B8C609757C7C2879FB8A",
- "key_seed": "833895712635D366F97B0B2904D472B42463CEBCA1FAB0CFC697D613F0EED0D0",
- "legacy_ldt_key": "E633C66D102183DEB37E7FDED0071F0EA5DFAE41C7E3FE4FC6FA415CC3CA606B38F7AEE8EBF313CBA51938E49AA0B7DD335379102B45EBE26BDDDFA64ACEE184",
- "legacy_metadata_iv": "1946879C873E2C797DCC902C",
- "legacy_metadata_key_hmac_key": "FD4727AC8447DFF7A05B416AD6361CF81F52BCF3F6679F086711828DD38354C2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8F9E",
- "expanded_salt": "BEE6C67FCE846EB320E2A17293729ED2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E416F9AC6D6E6ECEA1CD82E7365062C3",
- "legacy_metadata_key": "AAEE5B88B6704AB1B804BE07AA6D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1208445206D7B39947B997F60128F9F4",
- "derived_salt_first_section_no_de": "6CFFF0CAEB960F4AA00E0F6D592E6ABA",
- "derived_salt_first_section_third_de": "F865B7DB3C3A3C26888EF06866647E39",
- "section_salt": "2CC4C36E8C29604546D5186D08C015C9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "60616FC1E502C5FE9123FDB7",
- "extended_signed_metadata_key_hmac_key": "472CB5853E9D85499FACA6EB7551F89AD9929DC0695B3666CBAA1736487698F3",
- "extended_signed_section_aes_key": "39ED2AF21F9D191CB1214DD64A6B7CC4",
- "extended_unsigned_metadata_key_hmac_key": "BC84E015C123C500DC76891C740BCDF078A6D18431884CC5DAA54CD501733E95",
- "extended_unsigned_section_aes_key": "F65CDFE30419EC6DDA1582F443217BFD",
- "extended_unsigned_section_mic_hmac_key": "DCDC4723B6C8523315736418A465BAB6E3CF20A10C49A372C6223DCA96FECA5B",
- "key_seed": "794D4194CD32FDD9B9014B7C68DFB478B4BD69C8722D670AC5B85F763F838ABF",
- "legacy_ldt_key": "AE5B51EF13D340D3DFCAC7CCC903A7E8AF8A75D7AF41F32EE67E4E0712D79AFF722051253CC5CC8F274349FF0013A17B3DDFC62652E63CE2C2E98FDB5168A66D",
- "legacy_metadata_iv": "B61A0963474FAD5F03AA532E",
- "legacy_metadata_key_hmac_key": "F29D808053AF391A0D83E5DABDF1FE3851A1B64DBAB59868193D0AC6E1991E44"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C86C",
- "expanded_salt": "E8B609A772B8F3A8C5C9090BE656B5F4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "22FBB6B7969D6B698F241D220D237F97",
- "legacy_metadata_key": "93BC2A219B842F8DE8BC13539300"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1EE815BA3B8E43E2ADDF0E860C5AC25D",
- "derived_salt_first_section_no_de": "881DABEDFE503AE4CDDCE7C6CDBBA360",
- "derived_salt_first_section_third_de": "EFCE00D82BDF199A709CEA67CC95DE0B",
- "section_salt": "7E1B94C17BBB7A83821B963057FC67ED"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "62F230E68D594C09D2371AB7",
- "extended_signed_metadata_key_hmac_key": "2A83BFAA341EF8E8CEFA08AEE818B7F871213BE43BFC716C0EF1FF9BE6A2AC9B",
- "extended_signed_section_aes_key": "5B0DAE370AF1503C47B23C2FA69C7AC0",
- "extended_unsigned_metadata_key_hmac_key": "FACBF5C78DBDE71F8AAF55D909C0EFC4C61402C2DF34E6E1AA4FA1EAD4E37F18",
- "extended_unsigned_section_aes_key": "41A93148D24480CB1A4737E697E5C5A9",
- "extended_unsigned_section_mic_hmac_key": "69B6FC8BCC64A8E06270DB1BCFFA109D82BAA50DC93F8C2422D96DEB17866E35",
- "key_seed": "96BE27DBB7D87A6C7A5A1B919399BF7BB5AD5490048995E190389885CCF75F6F",
- "legacy_ldt_key": "30B086CD8313D9D3974CEEA8F851E5B98B7CC9BD245DF30058C685528B6E440BA94E8715413695EFA15C7AFF7441FAAB30C1ACB365BD424DF0AA6791C736FD09",
- "legacy_metadata_iv": "872C73E8685A7445858DC410",
- "legacy_metadata_key_hmac_key": "E06A997C45E40C3BF7949694E7730629830CCA808754A8CF2A594087EBDEC4F2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "71BC",
- "expanded_salt": "55933408729A8C3E84193C1E3AF29C60"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "687BFA70FE93E7409DBDBA14CE977C2C",
- "legacy_metadata_key": "3F6B039C97749A41DCFCE356F24F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "44130A753AC4B3D24877DB88B660858D",
- "derived_salt_first_section_no_de": "419C6971021C1675BE67831196B2135C",
- "derived_salt_first_section_third_de": "1902E2927EA1B4FC894F2668E037C366",
- "section_salt": "B8DB67BDCB0D3105B6A4F4E433349945"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7A8ABD52BFDACBF8CD21BE57",
- "extended_signed_metadata_key_hmac_key": "98D77F120A7445539125329704FFE036E4C63B6E445769624BA5284F10A40890",
- "extended_signed_section_aes_key": "FE9F185BD4D51187CAF67BC7DF2F2762",
- "extended_unsigned_metadata_key_hmac_key": "34B7A26C787E440FADB2491E3906706793736FE9D33A9DE5552FE881A720E3F0",
- "extended_unsigned_section_aes_key": "A4294D6E895F33D15E0068224A9DAE12",
- "extended_unsigned_section_mic_hmac_key": "6E8B2573879B6EB9631A0FBA3672FCEF01ED09668E25CAD7B4B0B05B183CC000",
- "key_seed": "BB97455ADD6CC2135DF8E261F4454A730A598C7539F010113687590DE0108C1E",
- "legacy_ldt_key": "B4D6EB089D9D03B8CBA4155D036402557927E188252861BA2138090D37B5771BF9F3F25398453C1D4B78CB384A27F642485678333758FED187311531C246A12B",
- "legacy_metadata_iv": "BA54FAE87BCCC8442FFA7D6E",
- "legacy_metadata_key_hmac_key": "33F6D0B0B3B2D63DED50E1AD3D38EBA397EAEFB85F12E4CDD44612299590CAFF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "362E",
- "expanded_salt": "C027A4F4A4D8E4F9953811D053D26C38"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F0F334246079443A093306BB1CB149B4",
- "legacy_metadata_key": "15003E33835C05967C157B232590"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "92B6F36E742E0F0F054670928CB8D908",
- "derived_salt_first_section_no_de": "CE9ABAAD6B833F392EEF7B7EB27C6E9D",
- "derived_salt_first_section_third_de": "915E34891BDD26EAAA57A05AF94DE0F1",
- "section_salt": "2524AFF4A698699F0021385EB9D087DD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D17D6A2156B1959E3EB52E9F",
- "extended_signed_metadata_key_hmac_key": "A31FF14C1FAAAE5E22B7A78C818EEAD3D21DB977B916409F7A6A8D11928FB987",
- "extended_signed_section_aes_key": "EF2C1D721BBCC31F4D81448E5E185175",
- "extended_unsigned_metadata_key_hmac_key": "EBDAF27F6ED0CEE7F6AF052A906BE3D97001A6DD1AB6762FF6F212146C2DB4CA",
- "extended_unsigned_section_aes_key": "C8C3B173B4C5AEB818671BFF1DD7A480",
- "extended_unsigned_section_mic_hmac_key": "E45170C9C9C39E97590B081984BDDD1C092AE24C1DC781401075A4D0A7B609FA",
- "key_seed": "8089CB5782662EFC3A71BCBB0DF7C3155722778991B16F0DE46721465EC9DE14",
- "legacy_ldt_key": "19B007E763A2489AEF30FB3B3957F505EC454AE6137E48B8C84CEEC5853659E364F912E2540CA36FF780FB19AD9417A831DCE6C2A2C99F2BA3115733F6A2EF50",
- "legacy_metadata_iv": "7EC43782B6CC153DD7363BAA",
- "legacy_metadata_key_hmac_key": "85AF550D7F9FF3B67332E751C928E131E111259BDF0E9EDF61DB8B788FDC8DA1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BC18",
- "expanded_salt": "78809A23A7E90F4A8B4066C1ACF00F4A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "33421402AB524F9F8CBBC640CC981D3B",
- "legacy_metadata_key": "5F3FFA1658732A76CED85013EF84"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5B94D208EB9AA61B2362EF1D087C6B40",
- "derived_salt_first_section_no_de": "2E62F9693A066875E1A19E821E072F6D",
- "derived_salt_first_section_third_de": "B644D51DC8F59C526D028A8D10DEA655",
- "section_salt": "E199E0613832C97C2880194F295320EF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F3D8AD2F3CE24011ECC66CDA",
- "extended_signed_metadata_key_hmac_key": "1E09812838C1A65DAD77634823259A6FE00B7CD0241A2E235FBCA00E9EAB8E36",
- "extended_signed_section_aes_key": "07ACA6B7277CBB213248F886018E3783",
- "extended_unsigned_metadata_key_hmac_key": "782AFC3591607F961B3C5FA1B3480A76F4F0562E8EE669B2581F478700126C8F",
- "extended_unsigned_section_aes_key": "D83869A72CF75B7F3545B2A3C4C65009",
- "extended_unsigned_section_mic_hmac_key": "87BCF3FC141F04B45CB854D1B06486BDECC11611CAB4A29F923A6DD155FED50B",
- "key_seed": "6B63FC39E6B55DD5B280028EE1BDC06D849AA7F3B459AACB4C8E382D05BDB761",
- "legacy_ldt_key": "18847F39407D0DF52B08A962103682331486954EC8BA0AF13D8885CF2F9FC83DEE57E37B875C937AF248481E89DA338C05A4BE9BCC584794CED7BCDED6ABDF7A",
- "legacy_metadata_iv": "3DCB3A9F2FFD580ED9D7D3C4",
- "legacy_metadata_key_hmac_key": "CB4B3BA55786AAA580D6ED3624E6981AEB08F969AF08BDAC880781D8635FFAED"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0B1B",
- "expanded_salt": "ADB893D6146483CD609E68199A7DA941"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1C788247A7F162741ED945B5F7F497AE",
- "legacy_metadata_key": "CB1E5A98FF90880F922237CF36BD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "71877FB98B16D15D12B8EF2C25A1DB9D",
- "derived_salt_first_section_no_de": "54F1FDB478BB3D13C791028BCA8F9FA4",
- "derived_salt_first_section_third_de": "F152278C03EFF16A68F94B6D291CFD66",
- "section_salt": "F6615E20F2D694808DB99520810D69EF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0B15E337E1DFA4ADC59E731B",
- "extended_signed_metadata_key_hmac_key": "DBCE1E16D00CD4D4B47E1E32AD2A53096B4247200B0A6E29E1E0866EFA365B59",
- "extended_signed_section_aes_key": "57D11F24E25A22B6F1914FE768C90298",
- "extended_unsigned_metadata_key_hmac_key": "6584E467FF36FCB6782B7BF9ABDE82D8A2A72136C73FB0F6BFA23A3279EF2A8D",
- "extended_unsigned_section_aes_key": "82D53A611997A2030307017B9F0412F0",
- "extended_unsigned_section_mic_hmac_key": "E63C46F3865ACDAAB698C076D7868E33182F85429A9027238F628FC5535728B5",
- "key_seed": "663C54CD7441F3CB2D2214FDD4446A477113B9F2DADCEABE8132AEF8010A14B7",
- "legacy_ldt_key": "6DB12E7993E09AF1055420ECE3654F579A3577A47A468BE7B65480D062D76DC75F574A74E75B7A9FD454B48842DAF018F2D02BB890155F3E85EAFE01B743334C",
- "legacy_metadata_iv": "AC87482D686F00399A4B9144",
- "legacy_metadata_key_hmac_key": "B8E6D639ECCA989B6DA111FC1A8E7ABBA2AC25250441C7F5051A54ADD0922B7D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "51C5",
- "expanded_salt": "548BAE76EA914A89BA18CBDE508586D3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "24AEB05DBEF48E1B7995FFEEBBABC9D9",
- "legacy_metadata_key": "2B3FEE60061FCD44548744E88D6C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BC7D0CEEE08411268DC7751D7CAF9D62",
- "derived_salt_first_section_no_de": "3100230526CE98FA1E0945E49BCB403D",
- "derived_salt_first_section_third_de": "B277ED058BE8532522321A92FF0CCE0D",
- "section_salt": "5D1985B90652C7C135A74819F3A5DD76"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FDC9464A8903117D2FFED65F",
- "extended_signed_metadata_key_hmac_key": "4973C91DB09D43DA37352167BF389EBF7700F25DCD35537743E0C69348DA3A89",
- "extended_signed_section_aes_key": "4ECA4B2F32FB5B9BFB88DE3AE371E747",
- "extended_unsigned_metadata_key_hmac_key": "4BE005A9952487B41576F6AA608CFDB126B1BD01ADFF159751FCA74E4EFD7FAA",
- "extended_unsigned_section_aes_key": "380F4E7F782665BDDE260706948C3EB9",
- "extended_unsigned_section_mic_hmac_key": "CB4584FC26A6CC9308C06779E2AF91F04ABA7A811FD0D0291C9814BCED2AD9DB",
- "key_seed": "3AFDD9A82101F5B8EDC85EFD9CDFB75EE4EFE707E1939E3E578B18AC3AA9249A",
- "legacy_ldt_key": "4642A8B2D170921331758462B5DC7C209E862E03BEDB634846946227F69362BA6324E8DF8CB53C849840AA6C1F28C60EDC998B4B59CC1BFB8517E656E84C71F3",
- "legacy_metadata_iv": "3A4BFCB73B2786B8EB465AA0",
- "legacy_metadata_key_hmac_key": "46EE61E9A3909B6B9EE3009C3436C192D0D3C4988CF6C2A0CF21FC76F8DA6ABE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CE05",
- "expanded_salt": "6008FAA6E00C37F9DA6B4DF8AF1EC4A9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C65BC5E89D013A8D7DC8CC4DF7EB66CB",
- "legacy_metadata_key": "CEFC50FDB0061D4BC075B906EB6E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "046E697FD313C1F74B246D9D33372564",
- "derived_salt_first_section_no_de": "D61ADDB77A0A841D302E473B50122299",
- "derived_salt_first_section_third_de": "8D0404F32D8153E4411D11970E5EBA3C",
- "section_salt": "F8C5CDE1A7B74CC26F288A2D1755AE1F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B0D85D41BA274599B0297A78",
- "extended_signed_metadata_key_hmac_key": "3F357FB98B076E01CFAB5658944F89D3658EDB84D5A88230A261CBB51D8A301F",
- "extended_signed_section_aes_key": "7880D07919159C1E31B689A7D8D0815F",
- "extended_unsigned_metadata_key_hmac_key": "F9BEF69CB1073697505E54E152C1CF70FE228534B0606A55CDC52E114F0D3D82",
- "extended_unsigned_section_aes_key": "FA69AAC1982C54538D6446DC4DEF9A91",
- "extended_unsigned_section_mic_hmac_key": "7A34B3ED7ACF619E0E3F2015F7F2972CD5CB7CBC025DAB9F91435EB6AB73E355",
- "key_seed": "296C9C48B69ECE3F3AAA7B587954792224B0686240254AC21DA9377DB363D87C",
- "legacy_ldt_key": "84D72BE149A2741AEF4006097E8FC37F21E182E74845511D6206BD982B825BEAE3AEFC30E7283CFF5FE1D0EBB5ED7B9FE0E5C418D0DE256C6C5672144508821C",
- "legacy_metadata_iv": "FFAE119E23E7B91649B758B5",
- "legacy_metadata_key_hmac_key": "4F5B800A44D4401FC4E03270ACEC23792F0AFAEACEB486C921B8ED0E497D7141"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E04E",
- "expanded_salt": "C53E933D8CD70A8C49C3BC8236072BCE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D775EABADA92C50D2989466E89314B36",
- "legacy_metadata_key": "CB298B74FF25857B86581C2BE3B5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5FC17CC99842830C1C188CC63147C2F8",
- "derived_salt_first_section_no_de": "DE9C8DC489161585E9CA440BD62FE1C1",
- "derived_salt_first_section_third_de": "5FABDDF843F4D8EDC1C24719AC8A375A",
- "section_salt": "B2C492BD6A72C19D23FAF18A75E1D945"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AB34DBFC722984D154CDB897",
- "extended_signed_metadata_key_hmac_key": "9C924A7DD702CC8B5518BD34235257AB1D5204821FBC19DFFD34010A82610E36",
- "extended_signed_section_aes_key": "7E27D3256382F45DB717056A69735B8D",
- "extended_unsigned_metadata_key_hmac_key": "30D1E8CC732C35F3CDA9FE02323016E7391C839700F6C00C196A8F3FD0E3020D",
- "extended_unsigned_section_aes_key": "944E2D0BA184B1CA6F56C0424AE48AAD",
- "extended_unsigned_section_mic_hmac_key": "F379C6F0EB3D12C0A5E174E2B8CFE75AD521B104FB506CBB731045B35C7484B2",
- "key_seed": "9652EBFD1062141ED1170E9E06FB7F002204AD7431D85987224913CCFE7129BB",
- "legacy_ldt_key": "60727D9082F1CBD848C3089BEC009F1632D6BEC8C524F60143FCE6DA3497F8E36B072F052C4845F1CD0060EDA2CA484972654F75D743BFFE554CFA5E02022134",
- "legacy_metadata_iv": "398C1545BEFC8FD3F3FB1675",
- "legacy_metadata_key_hmac_key": "7E9DE2DB8EFC8AA60D21005417EBA306FF2B077AC1D0AD117693A02A465FF6B1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5536",
- "expanded_salt": "B697A5A336BCCC3DCFABDD3C6F60F3C4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "03A8348A5E3358A324B51DE539D55E3F",
- "legacy_metadata_key": "80C3487090C7E8F64BCFFF5AA0C9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1A1C293EA4EDA78A394DFDA3A1B4AD6A",
- "derived_salt_first_section_no_de": "55C19D6802F0157EAB79B4F60D65D2A7",
- "derived_salt_first_section_third_de": "8ECA5D893BBBA13DEF81720C146020E4",
- "section_salt": "510C4C2DB2F87CF1B413F6D6203A56DB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8D8870C3D2F7ECDE5C87B626",
- "extended_signed_metadata_key_hmac_key": "29BA6EBA6527405403441474AD7E4686E05CA5DB85BA686FD6FD6630332F5E3B",
- "extended_signed_section_aes_key": "BF415BA06B28D665D0225767FEB2770D",
- "extended_unsigned_metadata_key_hmac_key": "80D049CE28BA727704F46EFC9523BE59662BDCA71785964B1BF1C1D5CB820AE9",
- "extended_unsigned_section_aes_key": "89F1669A6A290A2567CFA85E8D8345F4",
- "extended_unsigned_section_mic_hmac_key": "4C783145CD466E8AD945AC42E6230D39D000E48E3FFAFF9A9B1112A48990B9CC",
- "key_seed": "460D265A05BEE3376E346481648EFCBD9C5AB5F93EFDADE839C82866ADF5D5CE",
- "legacy_ldt_key": "2BA2C6C0D51555B902D1FD94CBF990DCCAF2C25D5C9680A3B6B95492F34E1279DCA2DE1A273E61F55842204FF75E0A2704DD97C8F01D5BEDC65E61CB4C0368E5",
- "legacy_metadata_iv": "DCA270796B339619E959203D",
- "legacy_metadata_key_hmac_key": "75699567BA67A690F98890042351E2DFF5C5B3F6066F2E64998FFA47F069A0BF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BE9E",
- "expanded_salt": "E41D2A4CEA952CDEC466CE961118F1F7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9045F1A587B7077CCC348E56EA743B8F",
- "legacy_metadata_key": "84F70DF90FECE4141883D3BF32A1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "27743FB7090F21150880BBC42233EFD0",
- "derived_salt_first_section_no_de": "9FFA1B382BDFA95CF750A3CAFF67DE15",
- "derived_salt_first_section_third_de": "6539E8EE412D26F8E56748441DFA68D6",
- "section_salt": "272CC47DE3BC43FE60F80B951E9C3BCC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FA406D3609E37204D8CD246B",
- "extended_signed_metadata_key_hmac_key": "AA89DBF07BD92850516C50F9AFC535F1893936A41468C4286A878128944E5A2F",
- "extended_signed_section_aes_key": "9A951A4EA6F527FBAF8FEA4D76DCCF00",
- "extended_unsigned_metadata_key_hmac_key": "407842A1A923545E1721249AC8A5853BA8FC970C134E82AEC926102E62F432D7",
- "extended_unsigned_section_aes_key": "77F3249A9FC8855B6AB51C69109E7405",
- "extended_unsigned_section_mic_hmac_key": "88641E26535D9F5B38364C246F6C07D45B784B7686861C702E03BF7417EC3835",
- "key_seed": "40C79BC341AD7E45398CF07DF15C454487875E70BF27EB1FB70254BD07D948F2",
- "legacy_ldt_key": "85B4ECDC4EFDE8B4F7150A1764292F865C15ED2A116F17AF090C9DC528EF9F075977C87F627F8F5EF345C60A57E465B31DCFCF4A7FB1CF9A3B1966164C0604FE",
- "legacy_metadata_iv": "6EBB89F76F19DB50E532CCE8",
- "legacy_metadata_key_hmac_key": "69A57C3989A9AE0B17A86E3C8F040B2200FC66FBD0CE14DE8DBC306AE8045D50"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CC13",
- "expanded_salt": "4FB71E73CB3B4EAABD70067F2AC44C51"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0077036DB37AB1B200264F8040F743B4",
- "legacy_metadata_key": "A11593A01FAFE6B6623ACE5D362C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "16C7C10CE65D37C91FDF8238D71C0E1E",
- "derived_salt_first_section_no_de": "9464437220F9206D2E60C767C70EEA26",
- "derived_salt_first_section_third_de": "A9CB5D76453B5BA974D775875FC5D5F3",
- "section_salt": "6D4C3D13505DBA45170002DDFA0B0C75"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B1C0CB62C49B2164E3DF80FE",
- "extended_signed_metadata_key_hmac_key": "7BA5536B9B5641252B3CF5C70E7F2924571614E0FF41D0A0611763757169FD3A",
- "extended_signed_section_aes_key": "75ABED093BB6B68FB2E2C7884F1AD0E6",
- "extended_unsigned_metadata_key_hmac_key": "32AC7D54EFDD55CFF69AF0A1143A5362B730A9FEE8D977297E1BAB565B8DB5D0",
- "extended_unsigned_section_aes_key": "F6EDECF0F0BEE4BFDAAC791D88B12F81",
- "extended_unsigned_section_mic_hmac_key": "B4A105AAD90CA69F9CF81E290A5454AF7A262A9900EFD00B7B851FCD503561BE",
- "key_seed": "2C8FFF9AC286C94C745B1E2AA81612B7779A6B65C703D95217CE67C64F98C581",
- "legacy_ldt_key": "AB929E5A87CAD87BE8A0B5782ACE9768F56B35B9DFF03C1F77AAC4CAF137212D6CEF4E70968A05A5324B68B244EB68EA16BEF13ECB9756AED7AA5737A5C8A465",
- "legacy_metadata_iv": "D748E1818F8E4AB6F58BA3EE",
- "legacy_metadata_key_hmac_key": "CBACDCC9A2DF5B57AF98D43E8CB81E79718798A6FAF6D2FCA96E5E5E657C29E9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E845",
- "expanded_salt": "77CF37336201F3BCA931A7499E0A6FB7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "631AA2F4C9EFAFD2D4BF34DD3D7D4A03",
- "legacy_metadata_key": "DF923FDA51D70B31741A5A29613E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "122A138F7ADA458AC054B9B4BF7D4B1E",
- "derived_salt_first_section_no_de": "6E89F9F37A2245BFE3605ACE09ADDA06",
- "derived_salt_first_section_third_de": "56EBD7BB5CA745E5EF4389E82F1454DB",
- "section_salt": "ABDD281BAD1A7B8151DE03F9CB5CF669"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AF24BAE544B3B1987898CDDF",
- "extended_signed_metadata_key_hmac_key": "14C4D1E5C7AAD62886AA84FA5DE73062EDC6400473A30885822FBA38B6964F13",
- "extended_signed_section_aes_key": "8A9F260614E3447CD87B996E218E26FC",
- "extended_unsigned_metadata_key_hmac_key": "EF6ADE6F87B5774068B5F990D1FCBE78089A3607DAD807831B651CBE028ABDF1",
- "extended_unsigned_section_aes_key": "12F693EA27E01D38BB58A980FBA293B7",
- "extended_unsigned_section_mic_hmac_key": "448C746CFBB08B284E505948663BFB6DE28155EADA01C2C0A29AF6ED0FDAD01C",
- "key_seed": "25D68684C3A6A710EB8A4CC3D5D9C4BEDD02457CB006C03C04BEE3694A74A37A",
- "legacy_ldt_key": "A7A270D8A56076F1BA5FF8E653744D2AE4EB0D08C5FF665CC59D192472A9989CBB7ACB30CE3E25F0CE7F28F3C0B8B520DE147873BB642892F7D6034A6E4BB4E5",
- "legacy_metadata_iv": "51929F2185D616EB1E43648E",
- "legacy_metadata_key_hmac_key": "52D790349A89FCDB84C9637ECFBF9AFC591A77432C2BD218C3C6A0B618F29647"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "44D2",
- "expanded_salt": "25E386E3111B0D18C582CC72D85991E5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "87A4429A0702422565611716D9FF16DF",
- "legacy_metadata_key": "D26F8CD9B5887540632106EE18E0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4FBDF84740BA183CDD1FE0B84FECD7F0",
- "derived_salt_first_section_no_de": "DCB3E4320C818747EDD37B1462CAAEB7",
- "derived_salt_first_section_third_de": "FD7B7E515C8C24BC752BBA61CF7E6284",
- "section_salt": "9F71D7FA7610F398C641C9BE2D728E5C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BE6D482E3652B275139370E5",
- "extended_signed_metadata_key_hmac_key": "C9E25BD6B062F37EA17243A49F2F73271E07EE8059DC70925EA17B91E02E249C",
- "extended_signed_section_aes_key": "E33B04284FAED08F9073FF3A4613FD87",
- "extended_unsigned_metadata_key_hmac_key": "C6090557EA31F3B92694624AFC5CF613F7073F27CE80391A2ECD055D580AA001",
- "extended_unsigned_section_aes_key": "7FECCE4A761E224C5E5674C833629214",
- "extended_unsigned_section_mic_hmac_key": "5C454A7278959EA5BA265469583BFDFFEAB3DC37AD95683BFC9D25C7875EE14E",
- "key_seed": "ED0FBD51B1A893E92EE5F219093CCEF7327246C5EAB49B2AA432C747789A5E83",
- "legacy_ldt_key": "1C5659CC567894592C8670111B0DD426A3ECB78ED57F8CD8E150580FCDFC88294AB0F7F3DB0D97F0987CF1A9E94A442C390153B8C82A415FB33765F103363960",
- "legacy_metadata_iv": "34CDB3EC44C7C33B300D1129",
- "legacy_metadata_key_hmac_key": "A5D58795AFC17A6B4B4BE8F2DC675C79E5A3E45CFA929D09136B9E8BB289AC54"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1987",
- "expanded_salt": "4579E0BC68DDC39D2A40252912A2788E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BB5FE164D6927BA318CCE613745EE2FD",
- "legacy_metadata_key": "3F0FCE2666855EE993CA56198B4B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8454365587AA973A1B7FCAA3FD272301",
- "derived_salt_first_section_no_de": "DC327BA6313F26A60907C0DC71C3EFE4",
- "derived_salt_first_section_third_de": "2BD0EC3293CC632B7819BC128CCB2F6A",
- "section_salt": "BEE8C2D2A11644E89206BE3DCA42AFEF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BBB00F041E56963ABD89BE8C",
- "extended_signed_metadata_key_hmac_key": "EA6C459733907EB1E2D4921AD9EBD13177A8E690655F118C191FEC8D1EA3E685",
- "extended_signed_section_aes_key": "26459A7D923A87E2ED3A09AD6F8FC1B4",
- "extended_unsigned_metadata_key_hmac_key": "1EF530AEC6710AD58A2876565FEC508E6596E01EBBF92B0520B334802403192A",
- "extended_unsigned_section_aes_key": "1535CFF8106744ACAE6032EC839489F4",
- "extended_unsigned_section_mic_hmac_key": "470E52EFD40BBC4A8AC12F68AB8A86D1DAC120B22682D987527881EE8FAAFC91",
- "key_seed": "FB74639E885E83A7A3B3475A6BBA9E36B0FC9F2941362A98C92FF634772E0688",
- "legacy_ldt_key": "6BCD6D64FE5E0F188AB208CD90904D3212ED88946E550C31B01CFFCC9A6057A3AC07B8DABC7E6A243746B2DAEF8DF91AEADC5C8748EBDBF1603D51C9842520CA",
- "legacy_metadata_iv": "6DCBD4EBAE06B8423B4CF01A",
- "legacy_metadata_key_hmac_key": "012A787ECFB7B5406D95624AF2D4E23F37F8F03106C71676CF902CF246827D0C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "13C5",
- "expanded_salt": "BDAA3BCF0E40EC3214CE22F9B425D545"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "763B836BAC308B513023967A7B9CC3BF",
- "legacy_metadata_key": "8940B06041E78C2FBC698EE75377"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E8E75006770717CB1CD37D5B3A89F59E",
- "derived_salt_first_section_no_de": "06CCD1ECC3DDF14FF39E31879FF9651B",
- "derived_salt_first_section_third_de": "0DA482112BC2BEEC8DC31F4617487FCC",
- "section_salt": "CD49C85215313C328B6291E85D1A5CA6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C84F4BB7BEC6D4BED6A6543E",
- "extended_signed_metadata_key_hmac_key": "FF4492CE38AA44FD5FFAADA633E86905AC9E1CD54C888814706A89DA75B2C14A",
- "extended_signed_section_aes_key": "1DD0FC7C482BFDA25217D1B99F2A63CF",
- "extended_unsigned_metadata_key_hmac_key": "4D6EC9082D483558D6FE02839D1BEBD28C22935A6C90BE7F26A96DF7FDC4631E",
- "extended_unsigned_section_aes_key": "8CD933423E8C17552C9C09ECD9EE87F0",
- "extended_unsigned_section_mic_hmac_key": "7B7D5E2E0BCB7CA12CE2B430B3785EE93911E4F3179E08857CA9949A7F34AEA2",
- "key_seed": "D534DE5329F9660571A4D39051B63A442EA7BA84A8F94D64F440D9C0FF90FB89",
- "legacy_ldt_key": "5EB6E282247E832D608ABD6E2E9455999225619D07C74768301511BABA9F1D466425E9EB16575822522FDE719F205A6EE8CF4F7E25B9F0963F0F48A1847B406F",
- "legacy_metadata_iv": "BDF3AB50866C148FCDB85553",
- "legacy_metadata_key_hmac_key": "6EA620FBF1B417393CED9D63399919ED51A0145FE2BF8E41DA80788ED7145E0C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4106",
- "expanded_salt": "F7581479C87401EBBC6571ED39E71C38"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5DC9D5547918E2ED87C7E7E3C975A4E5",
- "legacy_metadata_key": "8312B5F3999899ADBC1A6481B2D1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0F775C8F8EC954708FE3A0E96E743EE5",
- "derived_salt_first_section_no_de": "6C9F46768050815A6A818FFF6E6A8B5D",
- "derived_salt_first_section_third_de": "34F1E1CABC08E4508B30D96ABBEAD439",
- "section_salt": "66543AFF6DC0F59B83DC37700255EB9F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A62A2047A414FA4444E290B8",
- "extended_signed_metadata_key_hmac_key": "D3CF3C152A5BFF251E4331DF7F4A6E9C791998C8C4E3B2D0DDF64F11F3C965FB",
- "extended_signed_section_aes_key": "CF821FC5C1A02A96371E5B30D0EE4679",
- "extended_unsigned_metadata_key_hmac_key": "E8EEEC14D70F68ACF67747E2B499BFDBD823D48D5E6D431880598B18C16AD24B",
- "extended_unsigned_section_aes_key": "EC951A2F02A45FF56678C877F2FE6982",
- "extended_unsigned_section_mic_hmac_key": "62E5C5EC832AF1D11CFCE6E1292E3FE81A9FB68B96E552CC7950FA9C0B9E1DDC",
- "key_seed": "424F34B20DDE8318FA3A2B5ABAF9B6AFE959447972940D00CCBC476DB17E19CB",
- "legacy_ldt_key": "41038D566A6D669B81857A5AC282A583DECCBB7B5952633C6B7B35C69296889A8B963B377C77FB94AA81FB2C1CC44D763788B1B4690B9ED58482390C40E323AD",
- "legacy_metadata_iv": "1F220EF0C6C8C27B352A6C78",
- "legacy_metadata_key_hmac_key": "91E8D0FB23A345204E267972057EE074612DFC822A0E4C474FC53460A200B03F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5E57",
- "expanded_salt": "581D191DB84120C0DACA7D8663EBDB2B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C03A6CDFA1AC737E611AE76242AF81F4",
- "legacy_metadata_key": "68DB9780AA3577FF3E2DFD19276B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CDE930B73D91C77991419369425C48BD",
- "derived_salt_first_section_no_de": "35F586B7B173B7B66442C61A1975A160",
- "derived_salt_first_section_third_de": "997BA68DA818E2014E85F3503716EEF0",
- "section_salt": "A2E519BDCC6AE67681A7AE119E2D2A4A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3429574AA007BB614480ABE6",
- "extended_signed_metadata_key_hmac_key": "5B0E10F1D3F97106A18D6B29109AC97D992750CB5A2C3F1CC2EE654888344F8B",
- "extended_signed_section_aes_key": "806AEC71A2B703D6D696E3CF3B70C572",
- "extended_unsigned_metadata_key_hmac_key": "812B694C60A6A5FD53BE2F0555B10CD875261FCE38F72666D334AEB02DE7690F",
- "extended_unsigned_section_aes_key": "4F6B93BB64B2513EF13B4A420AC0FCF9",
- "extended_unsigned_section_mic_hmac_key": "033D25399EB6D57D4F64D8504F900BD88870EF046220F0246B8A0AE3E25444E7",
- "key_seed": "DD0A78D8E756EBFC22A211E92E49AF03DC1DAAF9F7F49B11C5247BD54BAC3515",
- "legacy_ldt_key": "360A6B23750D7590E482260D39E224ED528E02EAB260CBE4536F07346D9605742CF8AD43B816775535FDE424CC87B4C98DF23B3B157F427F530B927CD7DE2178",
- "legacy_metadata_iv": "6C5778C069872F648F975D3A",
- "legacy_metadata_key_hmac_key": "E7674226298CF9F476DD51DCDD1427AC8EC891709FDDEA553DDBA8ED26046FB9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C9B7",
- "expanded_salt": "E8CA711430887B3E3CA78F926A62006B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "833B5619D72780012AB0319384A9C67D",
- "legacy_metadata_key": "D2EF0C3E5F4652973A8DD95F5698"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2D546D652D0A7EF2A01C685A5F944DDE",
- "derived_salt_first_section_no_de": "C7F125CA0589CCC7DFF949FF5D796E3C",
- "derived_salt_first_section_third_de": "67DA46931F56C28CFBB1F7C483C2CF63",
- "section_salt": "ED879C8D4A1C86F158090233033991C1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AE93DD98076FAB5E9A995E56",
- "extended_signed_metadata_key_hmac_key": "EC9E472DA5FA604FDD31CB1BE5ED69D9D574AA6E4A02DF3BF7DA9B042A323309",
- "extended_signed_section_aes_key": "6440552BDC23A15031D299C9CC3672FD",
- "extended_unsigned_metadata_key_hmac_key": "11AD4A61E7BC4B591C23554A17C543AE6F8A72ECC222EAC473B4FCDDA7496B66",
- "extended_unsigned_section_aes_key": "A89914CC8B5EB4B5059E6CCC06521ED3",
- "extended_unsigned_section_mic_hmac_key": "E6A7F2C8ED4BAAA104AE71869D34570906190D5774D852FB0810BF2AC7739BBF",
- "key_seed": "65A9EE574917167BA3DDECC9139B96668C11083686CC02B24AC4743AAA7729D8",
- "legacy_ldt_key": "D503AC840C4A2403162C5395BB18ECDC307795216B462963AED4FD8295D2A73111B3C16C16DD05F664DC34BDC3A67C965957393CAF0E6713C6AE9643EAD3752D",
- "legacy_metadata_iv": "83420CA5AEE7EE52CB22222F",
- "legacy_metadata_key_hmac_key": "E997061B241A7A7AA2DBBA271E57A184EB98E093F0F0781A4C98EE54F87545DD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6C13",
- "expanded_salt": "4B058B1D1588837AB8241FFA9111CADD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DFD75149032D343792EDCE0ED236D3E9",
- "legacy_metadata_key": "D8C620A392BE6B0BE0CCC18CDDC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AC3EEAA02098134ED88FA0868762009E",
- "derived_salt_first_section_no_de": "381D36D7106D5FC889286B75179A3019",
- "derived_salt_first_section_third_de": "5456C97F9DC3509199121B1FB422A9E8",
- "section_salt": "90F307A8577DD3CBB0E94BF95C6D7C48"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AB2EEA212BBF33339DD9D974",
- "extended_signed_metadata_key_hmac_key": "CF52FFBC3970DF53E0F2CC7561FD28A7DC835584FA48EAF467DAA0C47C1FE144",
- "extended_signed_section_aes_key": "DDC4D29B0B26B74919BD96BAF4DC353C",
- "extended_unsigned_metadata_key_hmac_key": "89756B18AAB374B9E411AF3CF4A18D7D36860B5219C4F3AE1A5F3E94B203C3D3",
- "extended_unsigned_section_aes_key": "CA81919735B5E674370606B44AC6354E",
- "extended_unsigned_section_mic_hmac_key": "F6D237858B6223183E3F161BF9ED29B51568B4A1B5D6BD5873291BD9BF885E9E",
- "key_seed": "A46C50F17F9ACF3FF2CD5BC3E9F21C6B7EE83F22D4401364AAA141DD8D61FFC0",
- "legacy_ldt_key": "47571433FC63228274A5995732821CA8DB8C9E120D7D664DC7EC1B71843AFFE4A68F83B2E9D626443D85D66EB6C8A86C06070A9A8B7B7C8E003B1DF219094FFB",
- "legacy_metadata_iv": "E6AE7C2B459CBDC8329795E0",
- "legacy_metadata_key_hmac_key": "DD788F00367249E94ED61FC715FE58E6384CED71A892BA164DB4F9D0488EF1EB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2C81",
- "expanded_salt": "47F8CC3EFAFBF6E3D146E2A8C87D1337"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "144DF74DBE2B03A94EC1BD1F6BEB874D",
- "legacy_metadata_key": "53DF4583B0AE146F79326A180486"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3A5C2DA3EA0A0642773DD2EE2BE2E7E2",
- "derived_salt_first_section_no_de": "70A30418248FB61829D0A42775CB8A31",
- "derived_salt_first_section_third_de": "78B9E07584942C780720BAD92FEE29FD",
- "section_salt": "B1C4D68E339EF3FC572A7FBF364F3874"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "57F07C99A39BC93C5A377E71",
- "extended_signed_metadata_key_hmac_key": "34361DE8E2BE8C577B4C5C77778DD1CB7E082FAE1F1452D6FDD394BC377AED56",
- "extended_signed_section_aes_key": "E69FA9F853E4AD28FFAC849311EB3E9F",
- "extended_unsigned_metadata_key_hmac_key": "EDA39EBEC73222176640158DA3D00A40580338CB13D8572153E74A89CE7FF515",
- "extended_unsigned_section_aes_key": "5BCEB8E227FC8C9EB86EC614E73B1205",
- "extended_unsigned_section_mic_hmac_key": "879FE47C9F01DE3F82B9D57863FDF5637FF1BF41683742AFE14372F08367DDF4",
- "key_seed": "067ABF71A119B2994F15B94EFFF90C4312A200087D95F139CCF0F48D01EA7056",
- "legacy_ldt_key": "FA770513DC5883BC11480429B14272E06483C63EB6FCFBA4A9BE98363CAF2440BFF1FE62C7795A18423DCA3B93CE983032BC645C9DCE930AECC3C62305761619",
- "legacy_metadata_iv": "061C92A6C12E682BB02DB8D8",
- "legacy_metadata_key_hmac_key": "2D4C44992C677ABBE9DF91283D2D86A1967F7E3B5C92C41EC74B6BC3A5DB8DA2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "04AD",
- "expanded_salt": "C48EC571C457D88D95E181E635D1DC0D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0D17643257BFC410B72491AC50F9BF83",
- "legacy_metadata_key": "8C9CBADBBD6EBC1690EC24994EA0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "25CE303D234C4160FBCDED7F376DFD86",
- "derived_salt_first_section_no_de": "0F2A46756C98CA52F12F980E441E9103",
- "derived_salt_first_section_third_de": "2B9C40F9EB0E45018FE306218D81D70C",
- "section_salt": "A5DF91DE4121844ECEC9CA4CED24E080"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8E9CD10A1A60F2894733993E",
- "extended_signed_metadata_key_hmac_key": "3E4555BE5712D6C4BF8AF971EAEE2BA27A6D196A46084AF8CF63822C51AE59B8",
- "extended_signed_section_aes_key": "3C7835AA3070017F239717379B302569",
- "extended_unsigned_metadata_key_hmac_key": "FF02B7A9CFDF81D7B3EC67AC26DB8050B5936121EE35F06EC5CF731CB9970C9D",
- "extended_unsigned_section_aes_key": "71A74C5F145E6DD666ADE2DA06FBA1FE",
- "extended_unsigned_section_mic_hmac_key": "FA40FE92BE4DDE9AEE89AC58F5329AD680DC4A40BC23FD14F49E650CF9DEF1C6",
- "key_seed": "BD8BACF4D506C09FC7A7827795AD1ED49AE7A1A8FEC4E7A3C0406EA8CD893F52",
- "legacy_ldt_key": "D9D3BD0285814A2C77A12CF2C40A91C61390FC4DAAFDFC62A5F8E7F8AA63BF19417F253034DA6A592148CCA2904D761D13076A73E9A6EBC33CB8AF97B4FD4427",
- "legacy_metadata_iv": "BD12A74866498944DED5C3DC",
- "legacy_metadata_key_hmac_key": "5E605AE7A2B823E7920389FA9C58DD46A10DDEBA178CFA8D377FF9A914823278"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "329D",
- "expanded_salt": "9153C8309E515CCA82287CABF62DD6D5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FDC468F28589554938C2C09ED5A584ED",
- "legacy_metadata_key": "3D8CA73F6702F850247AC6FAED20"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E1C47D9256D61D0D9AB87CFDE518E35B",
- "derived_salt_first_section_no_de": "FCA26112B250E757A55022E2F303A22A",
- "derived_salt_first_section_third_de": "12D3AE0C030AF10936DC444F8CCF3AB9",
- "section_salt": "8401B7A1EC86BB71E9A4E6EE66446D85"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A2ED48F1FF36FAD41EBDCDCD",
- "extended_signed_metadata_key_hmac_key": "E3286AFA2773364AACCE6CA73FB174D4AF587C5BD5724D12D627AD7DCB4DC5D1",
- "extended_signed_section_aes_key": "E0561FDA74AC52687C266CBD91EA1A43",
- "extended_unsigned_metadata_key_hmac_key": "2B55D027F85BD6C06D8EA4B4E53A16B525F75B851C1C9FE70FD7F1CA94EAB076",
- "extended_unsigned_section_aes_key": "388A140E6CB97009B52E0A7E938F7211",
- "extended_unsigned_section_mic_hmac_key": "A528F28D3E085E78A2148B91974D65FE58960699F3C71B06E4C9DD6CE966CD74",
- "key_seed": "7993D89A8A3C34BB2667414CC2DB4490186F0FF55C174A4BDEC5A307C648E033",
- "legacy_ldt_key": "135B72A171025D1D4A84D12C3AEF486942D5997A5A7BF20AC79E4BF31CA27294349E80FF4DE8B1D44D0E16884E02C81771126A5762BF1D0793930110A8D64CAC",
- "legacy_metadata_iv": "1A09F4ADE88890D51162181E",
- "legacy_metadata_key_hmac_key": "5BCA7D56B9FFB10610C9078F3356C6E1FCDA2097E095FB1150776FCF8AD430EA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "43A5",
- "expanded_salt": "423273BA1F1D357D1C4C2D2D875650D3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E6F812DC20E82D4F79536855BC15FF3E",
- "legacy_metadata_key": "C2613818FE64701A791FD7D96AA4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4CE61C65B78F94B9A45A40FE53A47F3D",
- "derived_salt_first_section_no_de": "7E014773EDE953E6F33A239A31CF7EDD",
- "derived_salt_first_section_third_de": "850586F00A69B974CE312E947DC34D05",
- "section_salt": "B9965964465E2A86A50FB5382A533BE9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E18E86F7A330F18C3CF24D93",
- "extended_signed_metadata_key_hmac_key": "BAB1A8704CEDB1DA65D08C8D5E9F699277BFD166C258737E217F9C1E5EBDBCA4",
- "extended_signed_section_aes_key": "BA6AFEC1F78D9B0C09E2E1B0FA735D61",
- "extended_unsigned_metadata_key_hmac_key": "FFAEB8CC5B9CA78DE9FCEDEE9D0DF033E91EECBEBD2D80CDF7843A33D2442187",
- "extended_unsigned_section_aes_key": "1ECA9CC191618B62B4FC94A164A5BA07",
- "extended_unsigned_section_mic_hmac_key": "38A1EA9809F2ADA64A7364848432DBFF65E583042A20DB7AEE53B86AAD56614F",
- "key_seed": "3102A9D668A0AEEA02190797B90BCEEA63ABDD2F22F4859B5DF5559ABB072B8F",
- "legacy_ldt_key": "09F03801795C074B8EA0D9A7F3D73BEB4CE5BE0F182670BB28AF933858F9360D9F53E047D03747F99EC621D7CD6C13B7364BD04F9D213E23E7830719FE574279",
- "legacy_metadata_iv": "7872DCFD85EDADE406551B45",
- "legacy_metadata_key_hmac_key": "B58D1A82E8E01ABC095995DFFFBEF4F2FA93B82C743CED352249C87EEB2570BC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "08E7",
- "expanded_salt": "53669B0C65EA2C9B1CB1D60D6C8D2D00"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FF3B041708DD01F842E598D5B00D7D20",
- "legacy_metadata_key": "202BAD52CC429EC7170C076EECFC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "33A51CEB40BCB1DF5576B69AC153E823",
- "derived_salt_first_section_no_de": "C311186BEA8D9CA5DF53325CBCDF80EC",
- "derived_salt_first_section_third_de": "9131C4AFA18BA9FF518ABBD062E73630",
- "section_salt": "924D6F8F7F2115B48B2B7390142ED7D0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0A2F449A7C382520EC5792B9",
- "extended_signed_metadata_key_hmac_key": "F303C8919F26104F57F9B52B1F2F0DD57BB615ECFFAA21E1CDA03F7DBB22A576",
- "extended_signed_section_aes_key": "9CADFCE668001EF5F48DE96760C2EAD0",
- "extended_unsigned_metadata_key_hmac_key": "92D001D0769B73A45653717408EFA384C388C3B846A0DAEC980E96A83E99DB54",
- "extended_unsigned_section_aes_key": "014DF82836BF2FBBD0C2E9E15BF7832B",
- "extended_unsigned_section_mic_hmac_key": "634D11C9B0B45465711B954200C0AEF7A33712AB2E81236A17C04037DEDB9413",
- "key_seed": "1D75FE26E852CA367CD000BB763FBE79CAD9E2CBB7D0EEBF88F47799383FA968",
- "legacy_ldt_key": "095284E86932F02D7327F599A63EE338E53344525393115FF926296D31300E9E98511FA81055D0F2FA0D86A919804CF253F533D0A75FDB2D24364B27E62BF0D8",
- "legacy_metadata_iv": "084F602AD049253372C4A0FA",
- "legacy_metadata_key_hmac_key": "0EC192DB5BB527D0852E2549378427848C1159AD964680CCE333F98905415F9E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5245",
- "expanded_salt": "A9AC60D0B86540326E0212C497368447"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2107662A27CCF496EF8A0C7C5421BF69",
- "legacy_metadata_key": "5D56DE39FD7FFF51E3D4E55E0EC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5679DB54A5861CD263DB9AB43700352A",
- "derived_salt_first_section_no_de": "9F9B79E0785F08C7782ACA164DF319C6",
- "derived_salt_first_section_third_de": "CB5902575B4D99FC070C1314FEEBE361",
- "section_salt": "EC0E8ABBC4DF3823CAEFEF1363B33819"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B752A25F5E472F32A33BAA3C",
- "extended_signed_metadata_key_hmac_key": "9AD2F72457F437FD42AD1EA978D11C8DA38AE1D67D99CFD3220876A4B3610407",
- "extended_signed_section_aes_key": "0EE1C5DE743B05F7171A849FD0988163",
- "extended_unsigned_metadata_key_hmac_key": "27BEDC77FB845E15D4DE3B3C06CA6DB2651E54B1DCF0D5D29D75B0FF80A0E92F",
- "extended_unsigned_section_aes_key": "0057E371A19599DE951BDFFD147DD2D0",
- "extended_unsigned_section_mic_hmac_key": "4914638AE9BED07A3458E8A270C1E22783F15C743E2A5978750205C18777481E",
- "key_seed": "A99F064FC8C8381998035F69F013346F0582C26F29B403321BBF87924E82E791",
- "legacy_ldt_key": "6C4363C3F4AF4FEDA16D10E692BCA520C36EF387BF7A845044C2DD3ABDAA66B0955601F4FB28F9F2C654A48E2A71DF237CE75BBBE98AAD545B936248823775B1",
- "legacy_metadata_iv": "A2AE63980FD801B24A2A427E",
- "legacy_metadata_key_hmac_key": "F4CC4805F26A03760177E53B77A31435E0935204798973AE57870717904BD4B6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9EC9",
- "expanded_salt": "2B725E54739ADC17E10A4B1CAF908ECF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8CE4CD4D8EEBD331CFB037578F5F12BB",
- "legacy_metadata_key": "27586352A07D1F71386D62F3CC59"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4EABBC1155209266591A7589A58F99CE",
- "derived_salt_first_section_no_de": "393ED358B3124C4667BE322796CEF16C",
- "derived_salt_first_section_third_de": "2C6BD58E96E8F334246B3A9E04B86A67",
- "section_salt": "D43453F08E7DBBC4A829B9AD044660CC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "20CC20563C2ABC245EA1C253",
- "extended_signed_metadata_key_hmac_key": "26C6DC68A0DA72586019AF928AE7C7598EB97D8A3D763CB1E65619D4A614A62E",
- "extended_signed_section_aes_key": "69215E9F8C603B69CCECE5A94D6C4C35",
- "extended_unsigned_metadata_key_hmac_key": "FDD10EEB6144EC4821A77F560419EE5EA93109566F9ED2189404546F27D89249",
- "extended_unsigned_section_aes_key": "B8E5E82D6472202F460230EB54F69DEA",
- "extended_unsigned_section_mic_hmac_key": "50166401218F415412C0E958AC141C758482BEED906BA3D1CCA924EBD681B272",
- "key_seed": "9C6D70E9577A23A933E54DB3D1EABEAD03AE70576684CD1EADA7C58BD93EC905",
- "legacy_ldt_key": "A67536236F15DE8796E503ECB1E94F04313AD8B1635C94B3DAB7D245BEAA0BB3D846F95F922AAE5264B0DC720A5CEFB5948697D6EBCD772F44BF9E1893AB8FD3",
- "legacy_metadata_iv": "CF4F79CA31F1C81D38A63FBB",
- "legacy_metadata_key_hmac_key": "FC8B8191D00CB31BEA4E1D54B0BA8572F6692484DF819F894C676AAC07A6F041"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "37C4",
- "expanded_salt": "25497E369E3F64FEEFF513FE1353026E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9FC5F5B044C04377C704E14F027BE7F5",
- "legacy_metadata_key": "70985A559931B596D6BFB74C3EE4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FFC730F7007A975D08444478C06E5C1F",
- "derived_salt_first_section_no_de": "34374595D41724F382420AD0C2036C81",
- "derived_salt_first_section_third_de": "80D5CBBFD26AF357ECF913299BF14FE4",
- "section_salt": "B39CD816B649D51B6926156A4C017639"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4592462192BF94D4B672E558",
- "extended_signed_metadata_key_hmac_key": "116791CF242EF8DD8A47F3671B5963E03DB1113D438D0ADF5966CFCE006FFD6E",
- "extended_signed_section_aes_key": "19832FCEE1790A62651C9DAB9F548441",
- "extended_unsigned_metadata_key_hmac_key": "200D2A47FE6DB5B8B707DDDF37A786D164FB2C8BC679349713AD8CC26F240446",
- "extended_unsigned_section_aes_key": "8D6921F2C9C89E1EDB881328F872B281",
- "extended_unsigned_section_mic_hmac_key": "030A55E4D267EA58F4AED14E3CF6CB714241EE95E3A5BB416F162A2377C2A15C",
- "key_seed": "BF075853489A9C2A711F294091DAFCECE8CE02213541A09FF6A08C4E4FA248A2",
- "legacy_ldt_key": "E54016C31A2926BE1B3C1A28875E37AB8E17AD737E1182112F639F4E659FA39B9DCB41E65AC0C9D1CC2915415F71F5371C9647C43466F4FE9E805E40774A5188",
- "legacy_metadata_iv": "3D97B4694E5FCA41D195E342",
- "legacy_metadata_key_hmac_key": "95E30481505C0F3827F946D262068269BB370E7DAF86E71B07D1160C96E000B5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8758",
- "expanded_salt": "1E02862B3A3BA659A0DA2EA9BD3F5BCF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7F0E5E8EFC42C7BEBCA9271786DEB8F4",
- "legacy_metadata_key": "A7010AB4B962D22A26C992FBEAC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3F18D485FCE81F26ED4EB11D8B8AC738",
- "derived_salt_first_section_no_de": "FE2E02E54F2BB7EC2995386E0ECE157C",
- "derived_salt_first_section_third_de": "49A65C01326151834E57A9620B6F44A8",
- "section_salt": "6665C59FB784B10496F6F4A5CBA5514A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "36824964B44DCD9FF7CB1C7C",
- "extended_signed_metadata_key_hmac_key": "21F0FB4D9A15B493B735701ECB4BD63218096504DA53807D8821A0B1AD3EB8BA",
- "extended_signed_section_aes_key": "1B4FEB101DCDFF696480F1BF99E5F54C",
- "extended_unsigned_metadata_key_hmac_key": "EB0FDC76FEC365443BDC720033688C58AADF7772E9F50C7B45B3647F5513935D",
- "extended_unsigned_section_aes_key": "16588EDF016DC389D81662B0BEE71E47",
- "extended_unsigned_section_mic_hmac_key": "7C39B9700AEAAF1DA269ED0DF991595DDF452210A800EEC1A18FA98171ECF89B",
- "key_seed": "54EE7E557D6623BEC2A4C2C2D2D874A87817760D2780AAD41E5F4382391C0EFA",
- "legacy_ldt_key": "832532CC6E046DCA02E62DDF840264DC6B72C4CC7EDD3CEF5547E84931A00D7E3E272C4BDB8F610F9CC6A9EE128F804BE532872D117E3D0B30C9ECACC298FE80",
- "legacy_metadata_iv": "0E50410D6C6B56BE7F560E07",
- "legacy_metadata_key_hmac_key": "9FE415CD43226FCCC52AACE9ACEC868AD2C26D6E263815D653B2E1AEBE25577F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "244D",
- "expanded_salt": "35883763800D4416620EC13245E7CF4C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1EFBB5B060B266B97438932D7DBCA029",
- "legacy_metadata_key": "1AC53753EE5BFB289938A69BD7B9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ADA0002497D68478FDC5530735F606CF",
- "derived_salt_first_section_no_de": "417A36000F8FBBB1E0AFB048A5A7D6A9",
- "derived_salt_first_section_third_de": "135AAD092DB6C362C477C32630AB97E6",
- "section_salt": "FE11E2333094F0F50086E327183061EC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B190933CB0E3DAA1B8CA65D0",
- "extended_signed_metadata_key_hmac_key": "AE3A0A03CF308C36B0FB0B8035172F6436817DCFF036EC0B6A745C90E3B1C04B",
- "extended_signed_section_aes_key": "A7BB699F04E4A1A8D989A339959C5AF9",
- "extended_unsigned_metadata_key_hmac_key": "7DBABE03B77ED88913B04266223DF35D5631D49814BDFE77DF473237154B2C7D",
- "extended_unsigned_section_aes_key": "C203C83135ACFE4D1332FD844D167AD0",
- "extended_unsigned_section_mic_hmac_key": "1D3A5077370E8B854D80A773D6C515D008AC5B4A1E19208A59EE2E6AE2484E22",
- "key_seed": "0550EE7D8E04449B7BB835AB981C80BA7FEA491E911249144FDB5586ECF24CED",
- "legacy_ldt_key": "A98CD9B12C2FDF90BDDDC9B3B972240ABF787BD5120E2C684073368E15FC0542B5158B09E7A76D24B89D55B72ABDE3C6241133C45D22BDC693F7764581883791",
- "legacy_metadata_iv": "62671FACC951A52DD82B0B2A",
- "legacy_metadata_key_hmac_key": "CD2F6099B1E2E7A4717BE5E5ABAE95243502CBF1C71DC61A606376CB8F17E009"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EE54",
- "expanded_salt": "BCC572A95FDD1A72BC34C4F605BAF3D7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "49B09DFBD239819ADE5C7143C46C30BC",
- "legacy_metadata_key": "C565B4487CE89D2D1E6678204C56"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "101B10317B96C66D5F1E6131275A8CDC",
- "derived_salt_first_section_no_de": "8FC7F52D1ACDF662B1C47EC7EBE18988",
- "derived_salt_first_section_third_de": "21375808065854AF4E49AAF81B799C8E",
- "section_salt": "EB2E0B4BDC5F097B890137738DBE07C6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1AFD2F97F13DF5AF73651D9E",
- "extended_signed_metadata_key_hmac_key": "93795CD012D7660FFC4C1E6B631D35E4C6F4126D80EC01411AE49CEE54C9AAE9",
- "extended_signed_section_aes_key": "09478994ADA274D32CF261D30D2C1B8D",
- "extended_unsigned_metadata_key_hmac_key": "9B449C525F8592539D67C95B35B353B3523A719FD6FA4D07ADC24ACE722D2ADD",
- "extended_unsigned_section_aes_key": "D04D752CBB46A01C0EAFAC0F70842132",
- "extended_unsigned_section_mic_hmac_key": "14769E08100F270F4E8E90BC1A476EDA1075CC9DDFD7BB39F263B115708FC4E2",
- "key_seed": "D22A27940E592C93072B8FF2AFA9DD0527C308892433615D72DA76D5F3DE90E9",
- "legacy_ldt_key": "84E36A5E07AA2C21B4680EA657FC3F36A44CB574BD755FC7AB9B88A8FD81745EDC410AB2A1B9133A6B46AC50C062C0CBD1BB7307AE230FD19E8E4E5C2651AE53",
- "legacy_metadata_iv": "0377C43BB388DB2ECAC2951F",
- "legacy_metadata_key_hmac_key": "6CE57757157DEF177DDA85D0EF385FE05073354CA5333463684C305FDC7343EB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E4AA",
- "expanded_salt": "D8A6ED1B373DC47C87B9482DDB2D730B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "304F93C10E8B335036AD0C630830AAED",
- "legacy_metadata_key": "2EE059DBA194B16E8DEECEC6404E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0183339BF0D531A3F8B57E6C51A813AB",
- "derived_salt_first_section_no_de": "90DFA6FD5FE2F8D15186337A1B3CEEB2",
- "derived_salt_first_section_third_de": "9A4B719D22B4160C902A7584BF3BDB97",
- "section_salt": "FDEF3EDB339C9E7CF672AB0415CCF3AE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1E4F1B36122116B1CDA445AB",
- "extended_signed_metadata_key_hmac_key": "786B7543903AAAC3FEE1C458CBE8FDC21CD73FAC71CF7B8E3C43282DC4BB8F8E",
- "extended_signed_section_aes_key": "F9B7D994F05D58F5A267350C477C4524",
- "extended_unsigned_metadata_key_hmac_key": "4D1188E130CF1D2A34BABB65CB8DDF26B1877C9E21FAA54047AE3F7EE5FEC272",
- "extended_unsigned_section_aes_key": "F2F6E46F1B38393523970D8DF27C9B98",
- "extended_unsigned_section_mic_hmac_key": "33A42AC9C3475B8A622B758FE30442C87806A94FED1AF7C290E7C7BE92FA4ABC",
- "key_seed": "CCC16A6A5F00128EEB9684B99221BAE0F40FDF9B1BA5F98F7343DE26B6E18DCA",
- "legacy_ldt_key": "8B297682CCF940CA6FD605F53EC88C26A4A09045054E722235135C99A9ACEE42B111D608EBB160CEEEBACBB774910A68BE7AC42B61966109A66127F22F34C377",
- "legacy_metadata_iv": "9B10F5F1D682E992498B474A",
- "legacy_metadata_key_hmac_key": "07C9FCCA953C133DF72C7EA240EE9EF4D8BB553ED42F21B78E629D3C1FFF8F1D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "960F",
- "expanded_salt": "4C42558978F66033CE369C0D73668257"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "433A7C6218FF8EEADFA73FB56A0402B4",
- "legacy_metadata_key": "4B961F233A3A1B464FF3BF0A0503"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F37B4962ED3E1FBAA1C5115FF3237277",
- "derived_salt_first_section_no_de": "E98C323CA75C444456DE83524528AC18",
- "derived_salt_first_section_third_de": "B9D45A8B333A4BEE809D5E94391AC1E9",
- "section_salt": "506B2447601F4FABE413D821929FAFCA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2BDBDCFF965F815F77F5F45F",
- "extended_signed_metadata_key_hmac_key": "A11C2293485B1738EC6448BF6F8D9E2C400E369974C84FC2D993C561C615546F",
- "extended_signed_section_aes_key": "5FCEB9C6905D3D898AD549566A3A5723",
- "extended_unsigned_metadata_key_hmac_key": "4B2C5536AF794C88D3B6C70F1CC4F0C8B9D35CB5253D4F0A263ACC744DC1FD41",
- "extended_unsigned_section_aes_key": "0734755DCC9FBFD78722E9F16F69FC0D",
- "extended_unsigned_section_mic_hmac_key": "7203A4F9E4642C1CD0C84212CD1A3FF0F4DB5146F9A06F70EF2758E22BF8FC06",
- "key_seed": "CE16F350789C4044AF63049822BDD747E1B73CC00D40DE7A13DB9AF8B9646AA9",
- "legacy_ldt_key": "C3FB24362C4772E4245E97181D3969E03292ABE8982122B0604FA003D6592B43E92CEE6769A774FD82730CF10A952BD80255204129EA569170F6273D9D2344CC",
- "legacy_metadata_iv": "5D4F98D56B4C439268B23B83",
- "legacy_metadata_key_hmac_key": "DA41383E7FD5CCA52133BA8F9077C87A0B90305306CF634CF8E62CF2D2ECE7A5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BEDE",
- "expanded_salt": "617E546F55BEDBD437FF8942E461B536"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4B024511A67FD4AFD6EB40FB09B9217B",
- "legacy_metadata_key": "C6D353D3940DC51139C008241F50"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D77272D49F3F41206CA88A6207F1F706",
- "derived_salt_first_section_no_de": "8F058A1E1816D0131DF1987C8CE06AD4",
- "derived_salt_first_section_third_de": "F0D601362148206C72659214242581F6",
- "section_salt": "F6506FE33AF8A79AA12A97B77071C882"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5AA369464392B71EDE65AA9B",
- "extended_signed_metadata_key_hmac_key": "2C1F20B01F5E866544A18AFA201A73AAC04FF257AF81B57DD50AB047D2AF199F",
- "extended_signed_section_aes_key": "C7818635B10FBDE600C1FF13B0880A4D",
- "extended_unsigned_metadata_key_hmac_key": "F66CAA452DD0D8980832C5013E25B237AEC64D265245E69FFCD03575158CDFC1",
- "extended_unsigned_section_aes_key": "E36B21858ABAF17FBBD07E2D358B7B4F",
- "extended_unsigned_section_mic_hmac_key": "DA3F988EDE20D8F8382DA9ABEF017509EB9B6746CC07B968C715A694B273DF57",
- "key_seed": "0E14DEBBE61D759B1AC7F96119C2478C6170E232EE9FE67B76E14CD3292A74A1",
- "legacy_ldt_key": "F2F9D7C86E95B25E4479E0901F9105D3EB22A0D5DC555680F25BF7C27020C60C5316CF9FF88FCCB0588580C271535F37E86AD0472BD585A019DEC77F7BF6A99F",
- "legacy_metadata_iv": "3DCB2866805C26764398FBDC",
- "legacy_metadata_key_hmac_key": "E6029EF2E8E418C42291059AE0D2497F8BAA6B65A785AF7A9CD9A8CC4E817789"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BCD0",
- "expanded_salt": "678D3AA2782FB935323838B9CE5FB88E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A67E0DEC8F57D673ADC02CAEA064F8AA",
- "legacy_metadata_key": "31B155D12BF235605B8B0921CBD6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6B3A4AB491C06776C3FF1E26CCF90943",
- "derived_salt_first_section_no_de": "CCFBB57DE097C1B567B06BAF001C14AD",
- "derived_salt_first_section_third_de": "43664799F511F0236C44C5F018BF216A",
- "section_salt": "E713611FCBE114E5920C1774C1ACC7B5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1B1020B98D672D890FFA9ED0",
- "extended_signed_metadata_key_hmac_key": "DB5F0B9239FE24E4DDA21FB4D55D1858A281B2E22191022DBEC6E2A1D826821A",
- "extended_signed_section_aes_key": "92B37B10F0D85437D0D258B8FEADD8B6",
- "extended_unsigned_metadata_key_hmac_key": "1E2653F099A257FCA23D7B64FB13575B5437297B038C408C4AD446D209C5B9F6",
- "extended_unsigned_section_aes_key": "9F7C85EAB09E5A9DC3CCCF8F8446A6FC",
- "extended_unsigned_section_mic_hmac_key": "C944A2B5CD43D965CDBA2A37B6C4E616601414847C17907180FA250FD3CEB710",
- "key_seed": "E4DBB6E733E462415B35AF48339A6DE5FDD55A5ABBA949E2BA703465932DE640",
- "legacy_ldt_key": "1E357009490A906E01E8D6A6DB839E3DE14E01EEBFE1CC35E44C95CD3D7392ECFF59E0F694920716432E378FFA3E8C9FFED2E280893F7DD680F3D47326C98B32",
- "legacy_metadata_iv": "63CF76EFA273136D79A45D5D",
- "legacy_metadata_key_hmac_key": "D0CF06D9DD1D0D2EC4A5F536A487DFB887834685D4374FA1EE952C18D4A96EF7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6EB6",
- "expanded_salt": "A2CEC5D37B370D4DBB41F6E6DEFA9C40"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DF41B1600BB8A2083439F94388759293",
- "legacy_metadata_key": "BCC2250EE8B747D5460EB7B5D35D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A467692B274F6BD01E7A82FAA937EC6C",
- "derived_salt_first_section_no_de": "A89BB983E9479C8197072471CE0A479C",
- "derived_salt_first_section_third_de": "6B02D9665FA9F3C5E6E3469C6A167FC2",
- "section_salt": "823767D5C7C356E639C5D589501A4685"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DBD2E52D4AC114DE36C21606",
- "extended_signed_metadata_key_hmac_key": "3546E4377C0A5271DB7E11F76D17F491287AAA286B33D48124AE5D40F5F1CE96",
- "extended_signed_section_aes_key": "18E29D97495A9F88DB8EEE3FEAA7FB92",
- "extended_unsigned_metadata_key_hmac_key": "AA7B0692642EA19C991EC1C27A5EC2BBFA16FB60DD9CEE3F944E66B7108E45C7",
- "extended_unsigned_section_aes_key": "72131B26144C32C617D4B7C9B906EC9E",
- "extended_unsigned_section_mic_hmac_key": "7C6D09436FD3AD2E8E5A950C67DB690FA72176E13C9ACD3D53305077FDCB6E83",
- "key_seed": "339F274AE993003E6734B036AD792A1D4AF223E525178717F12E74035145806C",
- "legacy_ldt_key": "E04EF323A558CC10142165FCCD7269581422B9C2049CDC009EBBA5DD6717E85419473E25EFC05F9CC5008B4F4EBE41FC492B67FD5A7BFB19C8A3C2143ADD8B44",
- "legacy_metadata_iv": "BF248059BBE6D00A51E39911",
- "legacy_metadata_key_hmac_key": "AA24B9922A5094EA33329231CF87488223DA8A4B04482E442982916E41AC7423"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B9D3",
- "expanded_salt": "FE8ECA427EC86671EE5ADE0545611E93"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AFF98BD45B72E127765BEF1C7081614C",
- "legacy_metadata_key": "068BF08D5E9C5A606D20A4C79846"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F8A66067AE264BEC2E50D75D1304A919",
- "derived_salt_first_section_no_de": "5FE125B34BF98BAB9088318B80316659",
- "derived_salt_first_section_third_de": "139580130B8ADAD85971F89A40332772",
- "section_salt": "E1170D0F44426E8F5ACF6AF209498671"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "48EA2588E5305127566B30BF",
- "extended_signed_metadata_key_hmac_key": "678BAE8D2855FC66FDDD41A373565FC77701381F2ABBF5BE842A8D0A9B3F75B5",
- "extended_signed_section_aes_key": "C997A11AC36A2926FEC0660B256F43FE",
- "extended_unsigned_metadata_key_hmac_key": "FF7D94EA6FFBA772548AC50CAEF117C3AA555166FA507345074C9C8FACC60736",
- "extended_unsigned_section_aes_key": "8575B4D2A473DE76EAADAFC0DDFFB737",
- "extended_unsigned_section_mic_hmac_key": "7E0EFF8A911FFDEC2E0E7A24C99B4674FF057193DCBF1C705B05D1DDDC736690",
- "key_seed": "1CDBDE9F25A41DE3D518C994CC48BCD238A814A7027EBA14B315A55DBEBF542B",
- "legacy_ldt_key": "BF10E01CD1FEE6C193B652406E17B740C130BCF4F99E48900FF9A1EE53D27BAF50174194EB075432F660A87004EC1623296246397E4DDA14FC72D7C40604E2B7",
- "legacy_metadata_iv": "3E41BA843B1232ADC8B4EA97",
- "legacy_metadata_key_hmac_key": "80ACF09EAF00E40EF581B249B0AC25B8A9214BD62893B1696C9DACB02BFB1AF6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "307E",
- "expanded_salt": "87C3D7EFDC2C2705F697F80C07137B8E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CF9A3C4FDBDD9EAC8C31AFB2DA4BF1C8",
- "legacy_metadata_key": "35F67C190761767EB240CFDECD16"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AE14B33C6CF8218B79AC44CEF13DA2C7",
- "derived_salt_first_section_no_de": "20CC69FAC2DD224D89FD3B14839DFAB9",
- "derived_salt_first_section_third_de": "C164A89FFBD2EC487EA34ED035E1CF63",
- "section_salt": "F90A755FBF306D5BEDF6345FB85BCF0C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ABA8DDFEE4AC35F0F0E05B40",
- "extended_signed_metadata_key_hmac_key": "35A7B91CBD714339D0953CB891A0D47F8251D1F9A1BFA440A379D51F98F2D13C",
- "extended_signed_section_aes_key": "521EDF23005D867A308B98C9F36E055F",
- "extended_unsigned_metadata_key_hmac_key": "4D774A748DFD31C24FC0C96A003E29641E04C84BFE8FC09CD32482279ABBDDA6",
- "extended_unsigned_section_aes_key": "D5AC2B9B6E8A470F992B5BA938BA11FD",
- "extended_unsigned_section_mic_hmac_key": "86BC69F7C5D0C8C57C7ACA7722D79C0778F0579F7AB2AED2F552D7E8B1AA4044",
- "key_seed": "0FC562C8915A28765B1560D2D3BACB880117139CE29A463BBD201A0EF36B1A54",
- "legacy_ldt_key": "2BCA4E24359560A9A946119D4BFB837D6A727C842E3ADB5B87BE8DBE695927229B04692143A0C656FD7D433052C6E5A63DCFE56F60E8FEFD4CC3683E26F92D71",
- "legacy_metadata_iv": "CE5662F53727A4C39A56A2CF",
- "legacy_metadata_key_hmac_key": "851701B72B2907CA0E09888976BD966D89E2DEFADED6B9DF3632B46604AD7480"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D3B3",
- "expanded_salt": "4279781ACA01B66950ABE75E6DBABA68"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2198FD1734B5094159EE3D8EAB7DD8A1",
- "legacy_metadata_key": "F59BCA3CE3E146603C56DD749586"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2E17913591E6C5DEB1C9D7E2DD6249E5",
- "derived_salt_first_section_no_de": "B710AE4536F3E7B96897B031232E35C8",
- "derived_salt_first_section_third_de": "175BE1F4AFBC9E0D42A9D85555A119E4",
- "section_salt": "DB3570C8076621B622EBD0EB9D227113"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "64578D3203061875AB5ABE0F",
- "extended_signed_metadata_key_hmac_key": "EE20365EF6A2F8726AF1A4D0315F5FBF66EC89718E1A7922B19E40997C8D5CDE",
- "extended_signed_section_aes_key": "E966F6D8D7B528ED0C7E5D5004F98B74",
- "extended_unsigned_metadata_key_hmac_key": "4AD4739C1B3E9D29ACE4994C550B72C4A6D4ABD9961FE9E9F76733F815EF1061",
- "extended_unsigned_section_aes_key": "90988C8D24FAF69917F0789C58D29319",
- "extended_unsigned_section_mic_hmac_key": "0251D7583122204E412329AD8DB17F05FBB06EF8EEBD5A7997757A54EDB96C9A",
- "key_seed": "81565BDEAF155771C6C61678DF0D4E8EAA65D031A2BE242AC621053D8FADF4C8",
- "legacy_ldt_key": "F3D8671C63ACFA216CFB1CCAA0FA1D85AACFD9CAA33E46F049F6725B2FCD72AFE7B068657C495F6467C6E87D320708371FE5CAFBDDB02888A401E02535A5F93A",
- "legacy_metadata_iv": "AE573FD8B6E8E8C0A3640C1E",
- "legacy_metadata_key_hmac_key": "335AEA12637DD5BE45998E30E5C709D17441819CC9965F76797B8AA93C2E6B82"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C9C4",
- "expanded_salt": "E2335638CC4DEE6A6FE652BE355371AA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "ED1F82AF193B0028ECB9F47846FBA37C",
- "legacy_metadata_key": "F397CDAE15F8601943BD9B1C3396"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8493BC269281AC1943B0850415E7946F",
- "derived_salt_first_section_no_de": "E01012CF8D36A2F485468E33947510D6",
- "derived_salt_first_section_third_de": "5371801377CABC896095B67647CC203E",
- "section_salt": "35BA27D752965A16F8F9108CD3D8DD98"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D435F82F672FC57524F758E2",
- "extended_signed_metadata_key_hmac_key": "96BCDACCDADCBA7BCDAD2C88F3105EA283BEC218168B47070945802A8E8FA12D",
- "extended_signed_section_aes_key": "FB3A364C6CFFC845C30219F461E0A43C",
- "extended_unsigned_metadata_key_hmac_key": "EDFBC6B41D5818D6813ABCA4942405A63541B349E93DC7BEE13AE070CB40C2C3",
- "extended_unsigned_section_aes_key": "F98CAFF16811C5CF4EDA4BA8EE7A6745",
- "extended_unsigned_section_mic_hmac_key": "BE8BE93C12E6C36AF21F72ADC272B6700AEA98A0BCCBD103EDABD93AE53D3FBB",
- "key_seed": "26B4C89E689B3E73DE1F12F1BD19170C578414D4E793D4601A2FFB887779AC6B",
- "legacy_ldt_key": "A35FCB3B193D9BA0390CB3E07BC3E76A2C36F6FA075001898AD267CAB25FB42BCBFFE81A7F6979BE8C1FF70EF581C650DF93AC968C3184BACF62BBB278DF2561",
- "legacy_metadata_iv": "D5BAA7183D87903D6FECE3ED",
- "legacy_metadata_key_hmac_key": "E848C3DB89BA5FF7F09A2F3D5425032C4D3B9A41A5106C7C4DAB3DE1C1EDBEEA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AB78",
- "expanded_salt": "7B063C0C664AD1C1AFFA17B72A0EA8C8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A717F6A1784D15C6CD25AAB841F53E7D",
- "legacy_metadata_key": "7638369629704F6814AE52ED243A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "079EAE1E3F06ED3AF6B844ECD1370E58",
- "derived_salt_first_section_no_de": "263B89EA12C05A56D5B89FA685197AA4",
- "derived_salt_first_section_third_de": "3B1150BCE2F3E3E44007DF1744E515BD",
- "section_salt": "0452895FCFE243F1DF5ED79D47D0474F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A2D5611AF83A9230304EDEBD",
- "extended_signed_metadata_key_hmac_key": "E51FFBEAFF8B6434735C30FCA8F7BECBBEC3E94B63569B550371B315F86DFBE9",
- "extended_signed_section_aes_key": "21FA8107D165B846C10461E9320FDEA4",
- "extended_unsigned_metadata_key_hmac_key": "4DBAA9073A4DF3727E9BCE557822D4D140630BB134A9B91022B8FCDF08ED17A7",
- "extended_unsigned_section_aes_key": "1AF570ED951F2A124B6D6EABD3D73A86",
- "extended_unsigned_section_mic_hmac_key": "D40360455FC38833D64536EA7342C9D83C6C92A5A0AC8F4BC290DAFAC6CFCC80",
- "key_seed": "B85BB031B337535980195F1DF255FC98893662710DDC8DFC4B1252B41DB78304",
- "legacy_ldt_key": "EDCD878E175F8A93978C7AEFE44774D7E50AC5A832A352CDBE9B3C60BEBAB560917E98D0011DB6A672F20541583A5FD6F1559160AD3C97F5A3FE6B0BED4FD71E",
- "legacy_metadata_iv": "F842279A6EBB41CE4F50F15E",
- "legacy_metadata_key_hmac_key": "4B7AF92528B4A4D9CD5AB38499D4DF68E5BBA69FF81B6EA6F748212E84DD7BD1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "99E9",
- "expanded_salt": "7717BFC003CAA84638252B83229170E5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "85D036C1A233750947A66EFFBCC4422D",
- "legacy_metadata_key": "6C3C48EA2A79190003876884A174"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ED91FE310B0CDA674742FD17BC9E09C4",
- "derived_salt_first_section_no_de": "E66761B79EF193B373324AFD77652719",
- "derived_salt_first_section_third_de": "FA572611967BD2D82BD8BB785FFE7724",
- "section_salt": "038CE5615DA05A6AE667590BCEE28354"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F4B4EDA0F3C85DA4E0B46E4A",
- "extended_signed_metadata_key_hmac_key": "0C950B5D0001A1BF1B3AAC23E7117349C6634B4846ED3F51EAC884EF7E80BC6A",
- "extended_signed_section_aes_key": "0236D2FDE81228551F88B5A5CD7B702C",
- "extended_unsigned_metadata_key_hmac_key": "4D781A7794DFED773B0334218433CDAB0290D2110DEC530551D5CB8D5C95E1F4",
- "extended_unsigned_section_aes_key": "B8A54BE7EF51CFBFEB56FB7DF9A505BA",
- "extended_unsigned_section_mic_hmac_key": "9F57CE516705A00AC55781FCC3CDD6CEC15997F31C4292F170291B19B62DAF4A",
- "key_seed": "D30AEA6A6A78144C9D222A5EE8A79E37FCCFBAB35406246BC3155F01F3E73C0F",
- "legacy_ldt_key": "ACC624042C57BBE7B63E058BE1D3543A8E9AEAE21A37D68BF5C7E343A9F616FEABA31AEC8EDBCCF697E14C331A97D3CD8FE6E3935D1C4641E56BF19AD6A07AFE",
- "legacy_metadata_iv": "D7C2D2D80FCAA845A170FFC2",
- "legacy_metadata_key_hmac_key": "6DE60AAD77413FCC6DACBEE740D3D498AD6497858121FA8CF1E3D8F87DEEBE88"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C312",
- "expanded_salt": "3A221B02DEE3900DB0A31519A577B8DA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C47AD74B418D654D84A62B75263A7AE5",
- "legacy_metadata_key": "A7C3C904B3BDC801A76B43CE883A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C231597EA63DAE0A138344D491578D0B",
- "derived_salt_first_section_no_de": "74CD840E444129ECF1BD4042CDF557BC",
- "derived_salt_first_section_third_de": "D5D27D619E2872C264726C5C84AAFF5F",
- "section_salt": "A28EC9EC6E5D605DC00FDF789F6B8257"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8EB37E5E8522E2ACB1EDF202",
- "extended_signed_metadata_key_hmac_key": "7393BC0D32A8506D1FCCFB2492039B49CA6CE6F6932786D33DD3119F94F55FB5",
- "extended_signed_section_aes_key": "27106CC90307C936E8A2D8C726314CCD",
- "extended_unsigned_metadata_key_hmac_key": "EAF3D4BCA9CD9146C80B27247B72C5C79DAF02481688A50104F18E6F04234344",
- "extended_unsigned_section_aes_key": "A5B55B0A0BC6460727320B679186C29C",
- "extended_unsigned_section_mic_hmac_key": "443486037542A4DC7ECE0E5CCE4BD96FC4CCCD01BC544DD8DD7C847D49D97A10",
- "key_seed": "6E958D7F5CF118F3E4BC72152A67195212BF4723E9A78FC161B6C24767442763",
- "legacy_ldt_key": "A85B8DBEAB45F2C403F5C8904D11C94E46B7601B5BE465248361B22F86647968A867B2784E6DFB859553DE5A82C078206027F314CB72ADB4A6ECFFFEC4456B61",
- "legacy_metadata_iv": "3DFA6B0F52E0BE2D86D1F9D2",
- "legacy_metadata_key_hmac_key": "8A249BD2751B4BA146B6FB6537C0243037A9A2305549A649841AA7FCA5D853D6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8DFF",
- "expanded_salt": "06879B580AB178764E08D0403494636E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E6C142740DC439003F635F98EAAD28E8",
- "legacy_metadata_key": "141DEACBFAACAD0A5D144D4EA49E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9A8F6702FB34B542B2CEE089094C0E77",
- "derived_salt_first_section_no_de": "3BFCF9BBCB44B0953EAAD8C9C73D014A",
- "derived_salt_first_section_third_de": "91DD611B9F282AC3BEA1FBFEF7DDAD11",
- "section_salt": "F84FF95A41B25F17EDB2EE19DACEEF8E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AE6253A562A84A6BF239F308",
- "extended_signed_metadata_key_hmac_key": "C9E3D1592B71973EA82456E841F7D0B24A4B17D6B19EBD0D0276880D68B32749",
- "extended_signed_section_aes_key": "A574032C918AA20A646F8DEDE5B42E01",
- "extended_unsigned_metadata_key_hmac_key": "13F516030E5C9717EB0E429876C2736361D5BA81E4413CADC8DAD303EAA89F7F",
- "extended_unsigned_section_aes_key": "F5895CB26DB0565397D13B86DA1AA272",
- "extended_unsigned_section_mic_hmac_key": "4C99091316F83823EDC2AB9F1B4FEE27E47F91A96A995C9564CDF3DCC52234FA",
- "key_seed": "29B250C0700D9BC418060314270A36970C5972B3978CCBC96C7816E746C7C669",
- "legacy_ldt_key": "DED34805650F496A63A8A2EBC9B0B7406CA0933ED362C0EA77040BABF8C9D553DE2D67FF0843BC6AAB7A2DE351369258C8C79E77E115A21CA099F69F2C6CB063",
- "legacy_metadata_iv": "182B289D8352E4210608FC23",
- "legacy_metadata_key_hmac_key": "81EAF9BE930961B91AEC973D23A24D8553D374BA2474B0009F103D2E96A000D8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E936",
- "expanded_salt": "DCA4C584CA6EE2CBE1AFFFF031C1C1E4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "27B8DDFF019E85463653900032BB5BC7",
- "legacy_metadata_key": "A58E8B9EB16255494C1C6069197F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "71FB13F3A76016B0869A9E0C32789259",
- "derived_salt_first_section_no_de": "A04D2B1E16439F652F0D3E7D857F3604",
- "derived_salt_first_section_third_de": "BDA55ABD118CD2775C039A08956DAEE2",
- "section_salt": "7028F379C2767F15A391B0BC3E73A936"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CF6E1AF7381D0BC58A7C9F0D",
- "extended_signed_metadata_key_hmac_key": "8E526001871337FC021C162961110BF6C47BFCC1453C3BD13396C0D219255BB5",
- "extended_signed_section_aes_key": "88820944DCD1B87DFCC67BB17B8E17A3",
- "extended_unsigned_metadata_key_hmac_key": "AC61877D186B2BC53486AE656383208CF60F9047E669DEA29F216F4192A299D3",
- "extended_unsigned_section_aes_key": "6854633A9FD61495B69FC9533D906491",
- "extended_unsigned_section_mic_hmac_key": "BD8012B2F0F4A1ADA8C2EF161B4DC27D7396BF36F9EA1DBACA3F17C3EF9F4DA4",
- "key_seed": "7DFF2D316E5AE0C53666247B32DF7BB30A87C0DE63A703637E52BD9A6940174C",
- "legacy_ldt_key": "A9464D64926DF1EE017693ED67AF4E67EF5E139C9B035A3B2C2839FF1D280D8325D45B8BEA61229B9FCC9CDAEF1842B90300655EACA0273B4BFB2EF330AB784C",
- "legacy_metadata_iv": "CC5670FB34ACDAEE9D6EE188",
- "legacy_metadata_key_hmac_key": "2426211058D5E6DA8A5603B43D0BDF3852E3A8A9792C965ADA26EB8EB95F68DD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "620E",
- "expanded_salt": "EECBE70076C2CA613285E095325A79CE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1D7BC68AB1C8AD05C94446541C974AD6",
- "legacy_metadata_key": "13A356CADE141143201A9683E837"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2B9F237B8EFECB7B6B33A00D0905F4E3",
- "derived_salt_first_section_no_de": "9E49150A46536AA38A7A7566BC171FF1",
- "derived_salt_first_section_third_de": "1B8938758F25262F729E2509E5BE07C5",
- "section_salt": "A4321AA1BAD8E9EEA2EF1A18FC4F3787"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BC8A41A960E21E6807FD8D7A",
- "extended_signed_metadata_key_hmac_key": "A3535C8EF35B8FFCACB357D4E2859815A083E2421716A4844AB70C8B12E25438",
- "extended_signed_section_aes_key": "336BCFB27CDA8D63022C5E58362F103D",
- "extended_unsigned_metadata_key_hmac_key": "511863B2F2DBCB75ACF9485284434EE33D0703E3E820995F5235E28F8D9B2B63",
- "extended_unsigned_section_aes_key": "2497C676A103D5C6F4484C0D580FC5A6",
- "extended_unsigned_section_mic_hmac_key": "200EB3579328A4364A99DF1D22446A2894B32A6D70BBC4A1E9C60E8CD2480DD1",
- "key_seed": "6FF878B2E628B4DEB8DC350E59F6C5A02059BBE77C806446EC1529AC1858C809",
- "legacy_ldt_key": "CB1094A3E3118F21EEAFEB2A4394F4DBFCFBA2EF8744C82E3CBB2D4A8CEF0CE5BFCA0CDEF9DB7B012EDD61AAB570C143FA6FD8AEF26EA2DA0E72813D2213752F",
- "legacy_metadata_iv": "D9654CF89216D29C63E8D979",
- "legacy_metadata_key_hmac_key": "08AF270D33D6A469329E44ECF64BE6E3D2DAE6C17C53A68303283E5E61CDF527"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3DB5",
- "expanded_salt": "AB89BD1DCEEBD7CD3ABB97AF2647176C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D8D44CDF87245C5CC5147DFA2ECE5D7B",
- "legacy_metadata_key": "6FC1370A1D360576CCDB3DFC3C52"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2E5A744DB6295ACE796AC910220C34D4",
- "derived_salt_first_section_no_de": "B2A339A4F23AD79A514D525A97B836F7",
- "derived_salt_first_section_third_de": "495DCF7403AAA42B1F114F2D463A012D",
- "section_salt": "81E3C26BD185F7CAEE15CE3BB1F27D19"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "13284462EC7301F11C941DA6",
- "extended_signed_metadata_key_hmac_key": "F131E6DFFD4C16DF742AD91045D7A2219FB83E9AE03B51BEAE33DC8F1D5DB451",
- "extended_signed_section_aes_key": "54F9125114F947DAC16E84C29D5481C4",
- "extended_unsigned_metadata_key_hmac_key": "35C3123A306C254569C78D5638C2FD2B8541607573338AA6D77E97B3221BE689",
- "extended_unsigned_section_aes_key": "51ED0B82433F3E3F442E104C4481525C",
- "extended_unsigned_section_mic_hmac_key": "CB8211D79CCB9D08E1881A422176FEC12F3C47AB02AEB88904740E56AA16C6A2",
- "key_seed": "2D40D5BF31A56391A216BA580369628B774EE46B12E99BC2F72ECD265EE98E8D",
- "legacy_ldt_key": "130FCED595E51A9209E295C4A87557175A7EFD06F636F4ADE6C34B816FCFE902A7D986E89DC954281440F6CDA4119C5FC6CD8B21459CB6E2F024F067DA806E15",
- "legacy_metadata_iv": "0A8F8351DD1EE0D5DD4B6C8B",
- "legacy_metadata_key_hmac_key": "2657EBB1DDB1E29605A32AD6A474954CC9C8CEB21151F317B243560313E5E4D9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A791",
- "expanded_salt": "FD067F4DADF762883863BEDB48997F19"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3FCE1E4FCBAE381124A96C67A60390BE",
- "legacy_metadata_key": "0A623C9A3A0CC330A03137706A9E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AA7D070C92A6301B70833F529A800F84",
- "derived_salt_first_section_no_de": "C252DEAB1D90A05A2917B6D66E1C6747",
- "derived_salt_first_section_third_de": "6DCDB54803B2592CB149838FF3698DD1",
- "section_salt": "22DB5544709CC473C6A6E83B05D77831"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "750082950DA30B294EFFC9E2",
- "extended_signed_metadata_key_hmac_key": "6D5E8A7F1DAB6FD32D99CACED789995F861D55B1DC768F0BDE05D65B142CF55E",
- "extended_signed_section_aes_key": "42B63D51056FFE0ECAFA100B3F942045",
- "extended_unsigned_metadata_key_hmac_key": "7500A1B15B85C7BC48512A086176B3D7B654ADE5516D5C52345C8C879FA0888B",
- "extended_unsigned_section_aes_key": "37B32FD8215424971F2C69467DEADD1A",
- "extended_unsigned_section_mic_hmac_key": "BFE73D1D5A779F24A63FB58F3DCA2780C13B28736E3DC4314EC77A959BFB3D85",
- "key_seed": "9330473DD622205C2A6BAF38A7D09D731AB708903220393AB1737AE6F441E192",
- "legacy_ldt_key": "7918954E01ADE1B7FE02CFE7C495A8DDC263A24B5272888201976F31DB96A5AFC2C58F38EFA38D2D00602D69ECA98370CD3A05D67D60C1FD68D0A2704B9A1113",
- "legacy_metadata_iv": "BDD382D611BFBBECBB5CBB4C",
- "legacy_metadata_key_hmac_key": "AD84494680C2DF75826B19EDDD97283F8979F24CEAF3DA22C6BF165AF213F0F9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A22F",
- "expanded_salt": "3B6DEF99F53EFFF78414D97250752B56"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FAB0DE0C704889E288E83453B9039A73",
- "legacy_metadata_key": "79EDA556DC86893A68D4286D1361"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F43AF982BDC1DFFDA2DED78FE2F521D2",
- "derived_salt_first_section_no_de": "93E87AC88554BC98379CB4CA666080E2",
- "derived_salt_first_section_third_de": "C4A0C3453CA926856BBBBB57827AD2B3",
- "section_salt": "106346E159AA3E018788560E1A8B2F5F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2CAC3B027660795C4C977964",
- "extended_signed_metadata_key_hmac_key": "02FEEFEE27E4A16687988D8E9A6686E17AA4A247CE98FF88890BDD19BC14F381",
- "extended_signed_section_aes_key": "F7EDC90277406D70AE1382F8C26FB400",
- "extended_unsigned_metadata_key_hmac_key": "0360E3AA0588745F6ED896B679F6C213AE6733BCD37E5D00051CD649B6DAD962",
- "extended_unsigned_section_aes_key": "2FA365ADFC1690B040A7FE1F8006D84E",
- "extended_unsigned_section_mic_hmac_key": "8931A1055331661F1134106B43FE7F2084DFA1B8C8714BAD650E33AFDFCBD0E4",
- "key_seed": "7393579E3A8FFA555F9CC45EA88ED936BF549C7920FF6CB98268EDEE8D728ED0",
- "legacy_ldt_key": "15955655CDF11F2BEDFDB75D13C7544A8EC413825ABD764ABAD12BFD6F815CA9F1BF81180C4155D2090E3CAB290D06CAB862CB996657B8A0150E3790E65CA13D",
- "legacy_metadata_iv": "6E60028696B485AF401800F3",
- "legacy_metadata_key_hmac_key": "450DAC4436271AA22CDCE1B6FBE05B6CAD7BB243AF06377FA8D4E07C85C67106"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5642",
- "expanded_salt": "2A16B788243C452CF4BEA10AD4ED0063"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "631B82C143DA630C89C2F6D749FFB5DA",
- "legacy_metadata_key": "250F4332F3C6945703F9A31B8F44"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5726854C0EFFBF0CD16EC9F6D24AEEED",
- "derived_salt_first_section_no_de": "DC494AD542574F122FC85771EFC74F1E",
- "derived_salt_first_section_third_de": "BFE55904E5A9ABF169C1814D6BB58C1E",
- "section_salt": "00BBA49DE8FFBA86A65DC29FF66AE475"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9AF9C33A49BE5EA94EBB0DC2",
- "extended_signed_metadata_key_hmac_key": "2DA5CCE77DC21DD82B435855FE3A41221E68867DB042B5FA4F97AF5913190273",
- "extended_signed_section_aes_key": "22B44FD118F8A0101B64520A8F8BA9E1",
- "extended_unsigned_metadata_key_hmac_key": "1DADB03AA58F56EE988E9C6F8E8A33BEEA413113951E341CEDF5F641BA1DDFC2",
- "extended_unsigned_section_aes_key": "C9E7D812168B9EDEA0FCDE41CE7E6F5F",
- "extended_unsigned_section_mic_hmac_key": "2B7D0D330940B6F15FA193824FC093E76B95F2138E2072886FCDC7C0F6AA50FD",
- "key_seed": "9DB410D451A362ACE5C1E2AEBCE7DC4861D540493D748C4A4B83B3F3753FE0FA",
- "legacy_ldt_key": "DDAE4E906977F8BF5DADE1EDD9482B7F150EDFC2A5C97FC4076EF4B1AF6CDA45EB6C2C1CBBFBCB6A397F37BD4DD1E585AFF5043742800FC7B03308AFC7978C28",
- "legacy_metadata_iv": "9A07F01EDE965ED33DDB7C04",
- "legacy_metadata_key_hmac_key": "9E7B3ECAA37106656427CF0B6739B59ACFB5352226FF874F6BAF841A32675622"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4DF0",
- "expanded_salt": "6CB5551998EB9E22A164B35169017692"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6EA6B2765FE1A87B507922DB9BD353F6",
- "legacy_metadata_key": "CF92FD8F07E130B4AF340FFB0E9E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DC4721AD6FCD9568B4595F22329E7C7C",
- "derived_salt_first_section_no_de": "588C0C961C012BDC1126E19263CE3675",
- "derived_salt_first_section_third_de": "0F32955EC36044F8BAEFAB3366209DDA",
- "section_salt": "87FFDF1FFE21E0F1B882B768F6858AC0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8C95D865A8678EB4C6B64F35",
- "extended_signed_metadata_key_hmac_key": "3AA9BE0E3B933544A4E34207CAEA3B107C33B83E094FC886E899A5F320E2D1ED",
- "extended_signed_section_aes_key": "78B9511916C0D696A2E6A646E5BA9404",
- "extended_unsigned_metadata_key_hmac_key": "5974FD230B59A12B405C080385A4E46D920894B6E53CA41924E5F531630630A9",
- "extended_unsigned_section_aes_key": "34E147ED54FEAE0C5DC8D630462A8829",
- "extended_unsigned_section_mic_hmac_key": "3019984CEFE9C96C6CE345AB7FF675C758D613B5FF7C194086409890F39F3737",
- "key_seed": "ACD2E5EC50D47E64335480DBE7BF448FF741EFD52B338E8CC057FD13374C8E37",
- "legacy_ldt_key": "519530A3DBB1FEB7CA4B8EB4D5FD039E54612196210635D034503A1B118185BB9884F074E8C5E65C7CFDCCC47FCE72ECA67A012877544AEF4D98BFB3DD5BACA8",
- "legacy_metadata_iv": "EB30A587E0D3DF290D912D92",
- "legacy_metadata_key_hmac_key": "AFEDCF22C6A0D372C684A6EEB74EA55C8681BDE370E2AB26145B5928C4D259A0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EDC2",
- "expanded_salt": "A146F6C3AD34FBDC4319461F0868D4B4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "371CDA29E0BEE15FB381DA02664E2881",
- "legacy_metadata_key": "E46138A390F2E5D93A592436E344"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7D21BBC1ABEE441222A588B0F4E6B735",
- "derived_salt_first_section_no_de": "E9D2C51FAB080AD0D26D8B3091F8F763",
- "derived_salt_first_section_third_de": "E102889B659565ECA702332DB57E6279",
- "section_salt": "AA6C4C9BB2CD36AAA2C8250B73B3EB01"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CE6F2C00A18002DB792A7FE4",
- "extended_signed_metadata_key_hmac_key": "C9BB9D3F08D7E74EAA79AF573320E0D1D54DCE1EEB8B1C10BD13755EB6DE8E95",
- "extended_signed_section_aes_key": "C0353546E1432D0F2F64BF681B0ED4ED",
- "extended_unsigned_metadata_key_hmac_key": "136C20EB4DEB746F38BA38B9759BEC956332D4E7145543929A52505E35543E13",
- "extended_unsigned_section_aes_key": "72FA937C3BAB2C1AA7C2DE4AEEA93FB8",
- "extended_unsigned_section_mic_hmac_key": "16F7FE1EB3045865A84F1DD0AC3953D7608FFBCE56CFE2DF6755A3E5BD79CC2B",
- "key_seed": "D4B2B0086DB52C108C3F6FED4F58266C554487CD1EDC372C1DC97459A38889D2",
- "legacy_ldt_key": "BEEECA777A231410A092E47B017734BE2E5976DCEA2AB93DFCB0644CF63ACFBF18DBAE360DBC18CCC1CC51A764575B204F1B58996BE1FC3B4D332B11CD271843",
- "legacy_metadata_iv": "F952C4564E9FAA640A0AA5D7",
- "legacy_metadata_key_hmac_key": "356D22AAEA3C458BAAD7DF5758797BBBFDD824AA15FAF04DBA3481F864F9E61B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4880",
- "expanded_salt": "88073C60937B2DAD98A65771EBD1FE90"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9ACC6323DC46DC4A13DF35EC0AAAE756",
- "legacy_metadata_key": "C35292929F9A806EFA68731FE58C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "19130105E2A9988CFEF517A87CA91EE2",
- "derived_salt_first_section_no_de": "84231FA1A84761FDA63BFD7E8338B04E",
- "derived_salt_first_section_third_de": "ACBAC671CCB591C22763D1AD175AB896",
- "section_salt": "A10A2F9459552228FD0835A07F77C696"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "52228FFB75DFC19E8D4B7505",
- "extended_signed_metadata_key_hmac_key": "1DAD2B5899A3211A0A62651848C873E0D4E15B033647084A98D06CA6F032E1D3",
- "extended_signed_section_aes_key": "93A694271208659D540EBD4208A3A7F8",
- "extended_unsigned_metadata_key_hmac_key": "4B09E83AC76538C19EAE86EAC3FE8BD1D110EB886D79EF8CDE1325CCD7241838",
- "extended_unsigned_section_aes_key": "D584216E45CD6E6116486B094D64B67A",
- "extended_unsigned_section_mic_hmac_key": "B464235B729E9110ECDDAD0A173AE33DA473D84F0E9C476438CC13B6C7633DD4",
- "key_seed": "EBCEBC7547C268B77C580C9CDED5CEF7C8598B10450354F6C5B7FACFB67314DC",
- "legacy_ldt_key": "F7E572FDD0A77433FE14D82AE3F61B8E84E03CC620D7455B2813C47BF67E130146625842B6900C8BEAC0ABA241FB7007D40E599101F4B1DCD310BACDE06F8439",
- "legacy_metadata_iv": "C9980F5574079FFE5B5FC1BC",
- "legacy_metadata_key_hmac_key": "0DE1DCEAABBEA8496290638BBA319CABE826C78F772AA10D721AE2442559639D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6CBC",
- "expanded_salt": "2968C014FC4DB672AE38839D8473C472"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D0893983824D5B2E97E3DE9674A36D55",
- "legacy_metadata_key": "77DE83D95FAEE4BF6E2764DADBE1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DBE9137FA3F8B947FC985FBB2C30318A",
- "derived_salt_first_section_no_de": "4CB82C0D28BF006F95C00E6E6AA6513C",
- "derived_salt_first_section_third_de": "149BEC442ABDE848DA826652B43B722F",
- "section_salt": "54A596D861B9B1FB3E8E151CE0FC53E6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9CE24D01282AC210E9396282",
- "extended_signed_metadata_key_hmac_key": "718381607C8717C7EDAC80ADE10F122A82AE90FC60AE1C882E58EBBA58A54891",
- "extended_signed_section_aes_key": "BFE29E79CE99221FBCEA50DB91B3F473",
- "extended_unsigned_metadata_key_hmac_key": "7F38FAF6B13121426B74341F730C0336D229B1F0CD63FD5CC2A571BDF6C6272B",
- "extended_unsigned_section_aes_key": "4574CA7E6C18A815E7349150589A1044",
- "extended_unsigned_section_mic_hmac_key": "1766B33BAB65719FB2001EC272DB02E7AE8498ADFB34CB8756EB0B048A4409F0",
- "key_seed": "A32B2221240B3A434E39697AA1002B5D2B5B241C1DA959F60E67429E05EC15BC",
- "legacy_ldt_key": "53F76A0FF128348A505237AB50024DC3AD718521173C09FA4B1432CE516F487B79A195FE658AF8868E5785866EA0D5670F525867B6422C1C653C994C997A1F18",
- "legacy_metadata_iv": "C6351C27F5F8A1DB03B77E07",
- "legacy_metadata_key_hmac_key": "5695932DDBC57C00554E6C69E887D8CD6A3E5894084D7C430CBE5EC37C90C2DE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "63E0",
- "expanded_salt": "EFC62E3B731F6050A8DE6AD0F9811F12"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DB1B7A442C5268C39AB6079064C296D4",
- "legacy_metadata_key": "394E6D9A4EA217F6AD4EC800B674"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1A1EDF6B5FCF72DF8A0AEA9DDDE99C52",
- "derived_salt_first_section_no_de": "70CE18E90A8A797EB7469A8692D1CED7",
- "derived_salt_first_section_third_de": "89E3D3B91F70F0FAEF949A5F203386FB",
- "section_salt": "26CF1214E28382D91B1772203D697D2F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3AC5A7180A1CDB94F4D3D0B6",
- "extended_signed_metadata_key_hmac_key": "28E488E4051B9AC46AEB242C13E6E0958FB38B40AB82E78D1D551E12EB285E43",
- "extended_signed_section_aes_key": "A4B790066D46BD6492EBA5C12F7B3C7D",
- "extended_unsigned_metadata_key_hmac_key": "0A47B675843726C31EE30D5BC775A1A47026FF7F6DB7316174F69C024EC7EF42",
- "extended_unsigned_section_aes_key": "52C43A1A005D4484D016BB76F6341FA6",
- "extended_unsigned_section_mic_hmac_key": "09E598E030FA40B4C327D31B9FD67F278E5D96B95E50FE619AEC181AC02AC386",
- "key_seed": "6EF8F0D6B7D95B2F847CE3784C6B63D78C1A98D585046C958D5463E9A710A785",
- "legacy_ldt_key": "27761E28CD54653133130546EA2EABC988ECD6F1B9C58F45A9D49660131D03065BF2A01486A1804D6803C0F1C5164CA36B6F6117A55C879C9CC253D5E22DB3A7",
- "legacy_metadata_iv": "81C027721538D9738983F661",
- "legacy_metadata_key_hmac_key": "4E34FAD5D0F45B308562C7B56CD5E6050B8EFAD6571B862A488DA2040BACE1BB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7ED3",
- "expanded_salt": "145BC2464BC43BC6416BA8AC79EAC211"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BA7D5990C9BDF276A1A5F414016CB9CD",
- "legacy_metadata_key": "CAC727C660CDFD1850E2CD6F4C9E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D96B606CBB1BE60602DAD05840F431E4",
- "derived_salt_first_section_no_de": "767FB7221AEE647C3974E07AFC1AD74A",
- "derived_salt_first_section_third_de": "3CCE5F414D24B4FAFBE520F1DA9843E7",
- "section_salt": "4162CBBC86AF0E728BA8A19990C85916"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1B7B8AFE821289A4825F3402",
- "extended_signed_metadata_key_hmac_key": "DD463B39705D24B664AAD610CFAA9E19AF1B8E3BEDB5D7E34932FDAFD32AE745",
- "extended_signed_section_aes_key": "C3ADBBB292B3F28C37A9817D023CE6F4",
- "extended_unsigned_metadata_key_hmac_key": "9A60690D37D4124F9A03D70688EDF108E3BB71F5BC1F5CF9C1799965CB67794C",
- "extended_unsigned_section_aes_key": "595D31471A095D2EF1EC17CAD6E2DEA3",
- "extended_unsigned_section_mic_hmac_key": "68890260A63C4C0A1DD3C4A46249E89CBB1E23355EEE0427376CB90AF6FE2411",
- "key_seed": "83E4DEA8BC10A5360ED428E56493EBECD7D4710EC1F9CF416E8D37A7856FDD2D",
- "legacy_ldt_key": "385C33EF34374F9B4DA34EF708F6F748FE01C6734A974EF49E449A5DFE3F6FFCC307C9D0D52629AA39ADE2FB0F8A78823600EA4553C4D08D997F63DD6CB6D75F",
- "legacy_metadata_iv": "9AAC438E2A2F77C4CCDC2E22",
- "legacy_metadata_key_hmac_key": "9EA8F1B76BF82924856F280189B958301CEAAE7F47A95983B7483CC2C7D2F18F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2BFD",
- "expanded_salt": "B2FD8807FEF14ED28199F14548ABF601"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CC78798724CF657C2C0DA36F330974A1",
- "legacy_metadata_key": "1DC04658B7465EE8EB9A7338D66F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7B1505D1B058F4A9491E66F6AA710184",
- "derived_salt_first_section_no_de": "19834C11C830E4252DC7D416D07FA22A",
- "derived_salt_first_section_third_de": "15C1EAFD06653D43078A0211F6E635D8",
- "section_salt": "1554F2BFF37C7B0BAF856E02B9AAB440"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AE98F46E2AF99D2D20C9D0DE",
- "extended_signed_metadata_key_hmac_key": "EEFB1FA79203EBEA8732B1775379009900FD0316C1AAF9DC3622688E856E7F91",
- "extended_signed_section_aes_key": "41F9726CDBF1567B60DBF03D9DEDCC28",
- "extended_unsigned_metadata_key_hmac_key": "9F1690254A54524D714B3B0435FE4E89D1DF6ACF9F079674132154F57F2F0BDD",
- "extended_unsigned_section_aes_key": "1F7A0F37195926AD65C6CDF5AA246529",
- "extended_unsigned_section_mic_hmac_key": "4D658903FE63CD4C737D4E7E7807F58721DAE2500538A5BAEA2D27E4280FE699",
- "key_seed": "BB0346BC27718D2E9C2229153836408D032A5424459290B6153A5D228701CD34",
- "legacy_ldt_key": "C31A50FC9240F6C379F063DE2BD626B7C40E789F41C8029C5F84299B1BBBD080EE8A3A05C78377634412D3F906306558DE0E2ABB729D330468E1D5FAE41A24FE",
- "legacy_metadata_iv": "2563F90FE41095F96D23A4F7",
- "legacy_metadata_key_hmac_key": "210A56243BD5387D429D469B340EA6F0DD2FFE1C31551C86D34752E521057141"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D543",
- "expanded_salt": "1B52271714EE406DD6B349C2AF0F42E0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "85636AD3E084949AB50B979010FDD904",
- "legacy_metadata_key": "2B7173BF481C8B97E3A91F771D7D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D7E0FF375D9764D82F48496418C54437",
- "derived_salt_first_section_no_de": "07A9E3126F2BD3C6B9036C932EC940E1",
- "derived_salt_first_section_third_de": "23DD0DF082E12D90C106733038BE767C",
- "section_salt": "98438227B64594C0801912109DF90EC5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AA34B048D9B904DC0EE5E81B",
- "extended_signed_metadata_key_hmac_key": "1380DFC1B20DBB4EF5DE9122763AC5651C4BCEE7F4A904FB47C2ED3CE1191238",
- "extended_signed_section_aes_key": "D7EECAC4A7C483696E4CB51ADD52A9F2",
- "extended_unsigned_metadata_key_hmac_key": "48012189F4E535B6156DF573BAAFF8D50EC4BF934E5D85187E67AE5E42BC35A6",
- "extended_unsigned_section_aes_key": "464D1669D7C50BCAE64C27D4CFF76B9D",
- "extended_unsigned_section_mic_hmac_key": "492198DF8B262C4A73DDA715DAB5412E8A2AF6702E654C1AB27AF486BD63A75F",
- "key_seed": "7B2DFFB9679717CFCE23C3B5D2F024E94D79935C81B902C7C00DAC3A95C1D29E",
- "legacy_ldt_key": "ECB21CB32E617A2B63BC1FAF7811A54CC065F49F3F250B561A384E23444F36EC66CD3E04A9834042C99D236D276A98063CBA68EBE68BF4CF062C4D01D82DBDD4",
- "legacy_metadata_iv": "4ADF3548C0FB39A97EFED67D",
- "legacy_metadata_key_hmac_key": "85487AAB3BC3DC9E236B1C35D1CF9CC65D9263A771D827C940FFA2F182EACFFC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4F86",
- "expanded_salt": "036E2F635FA4EBFADE62654DCB825BE1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "19A11F4267B6C618CA38FE232BDE209A",
- "legacy_metadata_key": "1F6648307C86048092B4D84CB635"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4123DA00B09AC37FDEF7827B8005C54A",
- "derived_salt_first_section_no_de": "346ABEC728A9C9EC276F4243184F2C11",
- "derived_salt_first_section_third_de": "A90EE3A45D79540DD253E49F7EDB21EA",
- "section_salt": "E315B4136AAF79295C12A3BCAAB9D96C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CCBBB43E457A0CD12EB650CF",
- "extended_signed_metadata_key_hmac_key": "93CBC156D6BC9459C2BA82CA79F94695D40676B107AAFF4841EEDD285764903B",
- "extended_signed_section_aes_key": "689D95527DD6FFBB90CB507C8007A8B3",
- "extended_unsigned_metadata_key_hmac_key": "8ABFC9B614DBAD0A2454DABC5DB1E706912C170392AEF864E61B64759133DC6F",
- "extended_unsigned_section_aes_key": "41E109724DCE1AD3833323AFD0C10C64",
- "extended_unsigned_section_mic_hmac_key": "7F58898A6898C4D0DDAF4E615F0270C265896593AFBAD4B192877351472E2CCB",
- "key_seed": "BDD6BE19A2F7D22870523CB95469C540809385B778195A889337EE69578FFE8C",
- "legacy_ldt_key": "9EC66CD35E9A00C8140B7B8EABBAACC6483F8F9B5AA9945451045DF7DCA382EA6161E6EDA96D04CED9B2E667992BB764FF1D3760D4FB391990E5E42521FB9247",
- "legacy_metadata_iv": "06F6F5645247A2F740879CA1",
- "legacy_metadata_key_hmac_key": "ADCA3324F6F6156C1740CBB7D0AA46E287AF4218C4C7EA4756532CB35AE2210A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6B76",
- "expanded_salt": "9F217A6E8B3C772EC06EFA4D56E54533"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "56766EC79770C2FE5411D1AE819D8F83",
- "legacy_metadata_key": "1638C0246D075492ABDEDDDCF55C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "378FCDA0A239FE2C5786D7077F70598E",
- "derived_salt_first_section_no_de": "61A0845770499C4BE6C47FEDA63A8D93",
- "derived_salt_first_section_third_de": "01D1CF0D16CCB981943D3F69B51B114D",
- "section_salt": "1E4762BD280A41FD9A816D988FDB26DB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ACE444FF0071148FEDE9C313",
- "extended_signed_metadata_key_hmac_key": "C9326E5BA4C307988ABCAD51A93ABD280D6CF24D2FAA625C11004488538B734E",
- "extended_signed_section_aes_key": "CC960A207276AC36A599DE76C8FBEBF2",
- "extended_unsigned_metadata_key_hmac_key": "036D655BAB296519D728F52DD6E7D43946DF2B02A899BAE031D6B26DD2E01611",
- "extended_unsigned_section_aes_key": "9D5299ED5A754345C033F54713668FCF",
- "extended_unsigned_section_mic_hmac_key": "CC989F36EE7F4921CC642C003C5153719493010C794612B29248BB7E01F210A8",
- "key_seed": "7983E836520AA73A14D1EAA7FF79221E24737D8110CA688D17E2F8859130C284",
- "legacy_ldt_key": "25C53FC2631DF4C0195980C28028868BE66AB8374046F8B45494A8594CB92BAEF1EB8C57652CFFBD3D8EDB6FB5298D6B84F1232AC43C4EACE165E45C708C3E9E",
- "legacy_metadata_iv": "AB6113BD0CD7DBB2A10D9814",
- "legacy_metadata_key_hmac_key": "363E0C80966DC111FD61B4225E212606EA3A6C91487EC2B084AE1649D0A65807"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9A52",
- "expanded_salt": "F9928328A0D26B0B73256829CA8B94C7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "26D21967CD31A4A21816C5ACDD77B0F9",
- "legacy_metadata_key": "94D5F8902B972B5A8C2B043BE481"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "153CEC4EA38456E22BA0530F13938DEB",
- "derived_salt_first_section_no_de": "E8C5641A432E73BF7192E571944B1E05",
- "derived_salt_first_section_third_de": "57717D0989E41F8DD22BCA3BF4FF9D00",
- "section_salt": "6181DBF8E14CAB40C489EB8175F3B223"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5F9FA7B6ED71DADF8C55FBCE",
- "extended_signed_metadata_key_hmac_key": "036A0B55C87CB27471AE95713BFDB00B20BEBD487421F3652E808F3D6A9B049F",
- "extended_signed_section_aes_key": "D49253749B84C2957CCB5212D3B66C12",
- "extended_unsigned_metadata_key_hmac_key": "298250495B31CFB731BF506FD78782BFFDB207963CF1CF9FE5263EC2240BC3B2",
- "extended_unsigned_section_aes_key": "B89754A4F335F04989F5F46C1BADFE25",
- "extended_unsigned_section_mic_hmac_key": "049CF2C88B567E13B48A825F6C402C5C82F76BF3C973EBB373A6B6798EB6AF66",
- "key_seed": "7087BEB3BCC1DB6997B9EEA5D5EE253A62732EF1EF4A876E4744DD91308674DE",
- "legacy_ldt_key": "574D3FFA560700D6D7E45B902E6BFBF19DF9780B397B840FFC231601242E8BB04E405D85A0E85FF5F8D0E985C68533256A652789A6B5B370549E5AF02F6D52A8",
- "legacy_metadata_iv": "2536F91F018AE734E08BEE2B",
- "legacy_metadata_key_hmac_key": "3862D0A03F1C26CA4F22470D75205901A87ADE5AB45884884AB75962A68CBBC2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D518",
- "expanded_salt": "5CD064C9FFACBC9A1F3E4AFBEFFA0F52"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D8AFAB2D8F4399C6FB8D3633F974E698",
- "legacy_metadata_key": "26870679D60E44DF7E85EFCDADAC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4696774270A42C98E80B8760F5B20CCB",
- "derived_salt_first_section_no_de": "28806018E245A12927F2320FF616C020",
- "derived_salt_first_section_third_de": "68BEA8715FA3CBFCA72615D5DBD2086D",
- "section_salt": "C174FCE65BC78483B647A1C3A427D298"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0F2DEFD38745C05B73F5118E",
- "extended_signed_metadata_key_hmac_key": "3CEE554733A0530409324CE99E4AD632DAEA7574685684E972834BC0E3A022C4",
- "extended_signed_section_aes_key": "A9F7F8DF82C64CE9B64D6F1AAE6ACED8",
- "extended_unsigned_metadata_key_hmac_key": "A3364240BE56B4287E91E6BD8B9D8672345DE823636813ACB17A0CF84DBD6912",
- "extended_unsigned_section_aes_key": "5E0F3723744187F55651FA3402A70B88",
- "extended_unsigned_section_mic_hmac_key": "7B78099CAF9A654DA8BECB5F78FB18539D47472F6C1BEC11FFFB89ED65BDDF42",
- "key_seed": "F78A07731299E5E08B8CBC239BA3416C28C629E6A3454C5CF95570DEAE3CDBAC",
- "legacy_ldt_key": "2D85E5B971295F5DAD276FD59679AEBD39B24C87ED516A9FB33D1D0F5DF4B6B5EA8991CD81D1237BCEE6C71686ECD2681ED96475B4CA54CD139EA2D2268ED73B",
- "legacy_metadata_iv": "6031E7C6409FA1633A771BE3",
- "legacy_metadata_key_hmac_key": "9D40A045659C8581664B8B0233F5143AF4B89F28733682D0176525E2CAA62E6D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "11E4",
- "expanded_salt": "6160C72F9A08A3DB06294B31F80A006D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6DB1D0AFBBDF1BB5FC7EF3BB4F3928F9",
- "legacy_metadata_key": "9A8AAEE51A15617C225533B30906"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0549F5D9C0DA22CA270DA78B35350673",
- "derived_salt_first_section_no_de": "18F897A14D83E484F719B3183B5B4AE9",
- "derived_salt_first_section_third_de": "92CE2ECEE92F3B800487469E0E096220",
- "section_salt": "E217C3CBB4A5787116DCD08CAED0BF78"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E23AF2A4D6B4E38E0F4D1B90",
- "extended_signed_metadata_key_hmac_key": "FB078011E286FEAEEA1D3FEA1759CB9B0630CA5BD970006CA12B3E478D746085",
- "extended_signed_section_aes_key": "6043B7487F77AB65A6573139B39C06F3",
- "extended_unsigned_metadata_key_hmac_key": "1A41E43B6DC203A1144C368D1D34DA316CD0F92583AA88303F6C8FEAD16D4B88",
- "extended_unsigned_section_aes_key": "822A1E7305A51E3874D10FA616056A8B",
- "extended_unsigned_section_mic_hmac_key": "F2B944CEEE2A11B39F74BD38DE58613FE756EC0E26BEB571EDEE77E050C7709B",
- "key_seed": "AE37B32D55C277CAF985FF13D06E31F15A521E8DC946520DC04EDA42C5C8922A",
- "legacy_ldt_key": "47B3239E202B8B3813D52120116ED24FE402A9CE8E3BBD01C6D7122080401FB4A348C0A5C97CAB3B1A1678F915138D89375FE712341C8C498D12F09D38158FFC",
- "legacy_metadata_iv": "623F90AE3B00A2E186A2DF34",
- "legacy_metadata_key_hmac_key": "BE7A4BA0D6191C722E02F09E20710494754A6492AB2AFB1309ED51459C8539D9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "41C1",
- "expanded_salt": "244E3322316618CA2121EEF8AA9AEB37"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7B4535DE4F1007C0F82CE36E2AB078A5",
- "legacy_metadata_key": "0617C08792688207057FDF8F536D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "093174981B1F63BDE7AD5775E7815C75",
- "derived_salt_first_section_no_de": "98909A292F72197CB77AC62C78522BA5",
- "derived_salt_first_section_third_de": "674DBEEA560A98C3458892E08140FDDA",
- "section_salt": "182B28456868DA7113FDBA2BEF574B4A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "15EA2C361CCA38BF4DFE5940",
- "extended_signed_metadata_key_hmac_key": "1AC87464121633BB83B748BC98D2D7C315D95478AC51EFF9E323938C45E83230",
- "extended_signed_section_aes_key": "0581DC07CC115C898E61439CB5ED3699",
- "extended_unsigned_metadata_key_hmac_key": "8981E93824B05F73E7ECB9C879D3E7D44FAE4C2FD87D834A360C536900FCCDB2",
- "extended_unsigned_section_aes_key": "2B0902AF1B67ADF5F0ED935272CC97F1",
- "extended_unsigned_section_mic_hmac_key": "04C212EFB713E68809ABFF201A3CE6A0773CC95ABD9311DD46548AF508DB8BB7",
- "key_seed": "252A63706F3EDB56B9CAF2477E488B826BB893DE614ACA3A75B140D464A40D78",
- "legacy_ldt_key": "8E979B35548D4F6178721D0947804D25A01649F5B5BB3CA85103F8ED1C84CBB9A4786C5C02E281229C2173E7F39B87A218FB0F5DF32DE4B97823C5ECFAAA2874",
- "legacy_metadata_iv": "4E0A9BBD3BD5AAAB60B8870D",
- "legacy_metadata_key_hmac_key": "685986B8F4474BC3606A6D26F45C73BECE43CF2AF219908927882432F87CE45E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B1ED",
- "expanded_salt": "E24E133FEE68F6BB4681F3FA2ED63AA5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "73A67009BD1B574BF43AB4C1E83951D3",
- "legacy_metadata_key": "502E854C86CDF3E92D83916EDA9C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E708C7DD2BD8059FD877EBD8571A11B6",
- "derived_salt_first_section_no_de": "A221C98F57A34F0EA42EF88479D2AA74",
- "derived_salt_first_section_third_de": "E6B658907158E93E9131379A6A679F98",
- "section_salt": "2F412F4C4460CA26A4989A26C3FE2C54"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "87DE96CA00FC62507975B5C2",
- "extended_signed_metadata_key_hmac_key": "417794AA0AE46675206608F8546A5237A35446CD796A3DA4FBD27B73861E8540",
- "extended_signed_section_aes_key": "DFA2F0BDBDB8F391B1540A36D7F5A1E5",
- "extended_unsigned_metadata_key_hmac_key": "36194ECBEEBADA185619F1E529169D3AC78FB784E53518D31D2ECFAA27E40A76",
- "extended_unsigned_section_aes_key": "194E4F6E92ABC16BCF34A826B9A8F10E",
- "extended_unsigned_section_mic_hmac_key": "F0CC0F5AAB5A7F69359BAE0952BD58FEA55616168E7B701BC7EC933943EDE8B7",
- "key_seed": "7C708BF401118B4EC0497EF20F153623D81172B831A0A74A19356431746AFC2D",
- "legacy_ldt_key": "21348BA8814C9E57CAE88E1B0E1ECACE68A8517759B5DAF8A52B32F93826A202E2A029A224073CAFC0589EBAE5E3E9B8A0AC033CF5DB266596B65B729A96E24B",
- "legacy_metadata_iv": "FAAA8B855893832DF5D76B85",
- "legacy_metadata_key_hmac_key": "CE096F92E9D216058FA555D9077DE1FB84B6FBB53E60B21624D96E08B60B333A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B5DE",
- "expanded_salt": "0C9FCCB25DFE8C12F320A406F7CBAE33"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "57B17D9FC9E8C0EEFE73363CE2FEF722",
- "legacy_metadata_key": "2EEED9C63A51F2A2D3EF6B1E8628"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CF85845DDB4D71A656D4F48644BC34D0",
- "derived_salt_first_section_no_de": "8323E379CF7A5DE2DD6DA6FAB05778DF",
- "derived_salt_first_section_third_de": "D31FA2768BB1066A3FBC409482D5B4C3",
- "section_salt": "C62008A147BDACDD7A8CFE1CF995A53A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8510E6B4C993C8D79BE3FE80",
- "extended_signed_metadata_key_hmac_key": "1DB85D1A705D672A53B48E5DF5A530628C4D5EC808D92AEEE557F7A7641DF3F4",
- "extended_signed_section_aes_key": "65A7752FBAA7813343FFCEF31790D9B3",
- "extended_unsigned_metadata_key_hmac_key": "F71A702262D7201A33B4F5AEADE930FD844B645AC7D7851D869CFCBF03D7ED1D",
- "extended_unsigned_section_aes_key": "E44451F4414CAFA059578D341361CBD3",
- "extended_unsigned_section_mic_hmac_key": "2821B926C249E65904500610E40F23CDBB1AB1E3D505B32D12ECB218DD917827",
- "key_seed": "90E01B536780B33074D60B647C538CFD11D17D1C01BCE84CBCFCAD120746FB8E",
- "legacy_ldt_key": "4359A803C7E4C06FA3651D477A0E41150A674D869CF1757939D1B14CE9D1C223BE973EC89F6B9A6860866CE4C919908681BF6F3688269CAB7C37B157DA9A12FF",
- "legacy_metadata_iv": "E7462CE86456CF3BA5979160",
- "legacy_metadata_key_hmac_key": "B849F794A70B3DBB799F2BD7A85D21407155FEBF98D9365A27CB431A5D695977"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C593",
- "expanded_salt": "1181C900CF47BE24DE180AE7555862C8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7FC738B0E917AA919CB8419F8712F16D",
- "legacy_metadata_key": "5ACFE260F89643919C3ECA927D5E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CCF40EF7BBEF62B6FBBD5BE74771353D",
- "derived_salt_first_section_no_de": "15BB77BF73033A7803DAC55C6E53B6D8",
- "derived_salt_first_section_third_de": "2A007DC07AAD616C29942D97AACC337E",
- "section_salt": "AC1CF74104D09FAB69823E36D1751A06"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5D9EAB799781D8EA85B27557",
- "extended_signed_metadata_key_hmac_key": "FB313DA9A1BA92495AEC7FA86E035FDED00436A71464C89C1260C949A59F8CBF",
- "extended_signed_section_aes_key": "FBBB9B630C21148CD32CC64312D59DFE",
- "extended_unsigned_metadata_key_hmac_key": "DABAD3E671F67C9ABED4A28ECBE6BCF95261354574A51D0BBACD7520A974C6E6",
- "extended_unsigned_section_aes_key": "9C79F35B7E2F149A4B6DDEFF396A0F7D",
- "extended_unsigned_section_mic_hmac_key": "F791149B5A45789EB0FAFFE13A8068CC44EBD945A14A58FF28946532720F43CD",
- "key_seed": "EB0BAB46A2067AEE9830A3CA41197D2B1F362B4BF24CA084E4E33D2F0A0300DE",
- "legacy_ldt_key": "2732F2F06370EAA3E4B2548600684D03F188111E63A7C8EADF8A501F1B8911117373CBA4B085F67CEDC7295C1DA80284740DC5484B0EB120BB011E1FF8C9FB86",
- "legacy_metadata_iv": "ECA81F89BD787925FFC30662",
- "legacy_metadata_key_hmac_key": "63DF5F6A1E75E16BFC689ED2675CA8C23C996B8E1C297167687F6DE5A3A0930E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C7BD",
- "expanded_salt": "DCD84158C81E2E28036293A3C369D382"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F27C5C4D19839C229780DA7BE0A74EE4",
- "legacy_metadata_key": "D24990258D11C875E5B9879F8EAF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2421E4F1A13B0DB7855BC602008B5403",
- "derived_salt_first_section_no_de": "D87FC3081C8A4F466736DA72A2EA6722",
- "derived_salt_first_section_third_de": "A9423A5F5EC8BDDB9629BC1A1D6F1A35",
- "section_salt": "BDB570C9DF57DC7117E24A1711090CF0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "718D0C7F74BA9D3860C48E7A",
- "extended_signed_metadata_key_hmac_key": "77EE22BA83F8F3A14AE0CDF1D7A338ACC0E692DA0F8E5884AEAACDC40E66BA48",
- "extended_signed_section_aes_key": "569FBF72EB3BE3EBAD81F819DCB6B734",
- "extended_unsigned_metadata_key_hmac_key": "CDEC7FF70B34C3C128CF817C737BE0C15495C5201DCEEB8D99FD4EB87AFF1B46",
- "extended_unsigned_section_aes_key": "6E7AF699BB084D466A290C9BCBF179CB",
- "extended_unsigned_section_mic_hmac_key": "2C1105C868777C82180A40440DBDF742A5F4505BD58A65E47F70837841552728",
- "key_seed": "83AC8607D5B12C82033B33A89702330AC3B15D3C3858C656B18919A2EC93BBDA",
- "legacy_ldt_key": "C1B4FF48C3B9A4AA99FAB44D24FC9BB03504B663B19DD27E900A14691C3B64C675C8472FF96BB07DAF00C2BCEAB2445845A09078569BAF44B61B070E19A268BD",
- "legacy_metadata_iv": "4F96373CA47F740B9063D8AF",
- "legacy_metadata_key_hmac_key": "7156F3F5305B4D2CF57AFA9F02A9FBD8D466E7B47D1530DAA7DA395FCEBB314B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9B58",
- "expanded_salt": "3D0BA8F272EC7A246CD1D9673AB9B235"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "618ED09B6EAD88A49715F942486B0C0E",
- "legacy_metadata_key": "C8797E005C6094395CC5C098DF60"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E5DAC686272B6758C71079A210BB2A5C",
- "derived_salt_first_section_no_de": "8F0032D995B95A2C9CE2329C4FE48AD4",
- "derived_salt_first_section_third_de": "E453C5C355716E4DADEA3BAB1BBAB046",
- "section_salt": "A598916EA079C3CD34D974D9D8FE06B8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C206183B7F563D8D83C3BFC4",
- "extended_signed_metadata_key_hmac_key": "4E264CD70064C1E51E439888DD59E0BACEC686FE8F962A865881D7391DFBB8D9",
- "extended_signed_section_aes_key": "055899A54FC0687A0F87E763F4A32399",
- "extended_unsigned_metadata_key_hmac_key": "EF689B52FFC9FE279C17A01DAFFDE4843DE9506BB44ECB6757529DDE28715050",
- "extended_unsigned_section_aes_key": "03131401132451846EFCB896382F8C18",
- "extended_unsigned_section_mic_hmac_key": "953D004F75B085BB430B0E0531D9E2D4F1710700348040795085280EB7C11C26",
- "key_seed": "DE554C96B22EEEDC51042A2008351F2B460FB7B3E12BF5FD0F2E83E599331915",
- "legacy_ldt_key": "4543CBCDA8D96C88437B24B7D22F9C1155CC671D4F4C01CFAF4148A84E57EB4751F7C28C0C227844328FEA24765A6688AB1AFA07BF3E143CBAB6CE7CF610E281",
- "legacy_metadata_iv": "30236AA8114DCD5C66945BFF",
- "legacy_metadata_key_hmac_key": "944F4EC1B10B020E5E25E18C80F3F9B0FC6266D7F30D96B1646A42356AD03700"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1496",
- "expanded_salt": "535DD69ADEB031AFD555DE4C2CCEDA68"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F2392B09925F708AF651E5668AC7F62E",
- "legacy_metadata_key": "295148C8383D59E4F0A045056697"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C180F2AFF2D606FD6F8230B504FE93CF",
- "derived_salt_first_section_no_de": "000D6303EF59009EE5E06D561B9F25BF",
- "derived_salt_first_section_third_de": "5D433F4ABF066A1D79DDF82E7E78B180",
- "section_salt": "4EC5059EC3A988E9F03D76055FC81BFB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6474A96B0E7F6A9D21B50A62",
- "extended_signed_metadata_key_hmac_key": "03C42FF91C6D6A53E5E8EFF887209C0F74384263B6B514CE7E1F4D60136F0E86",
- "extended_signed_section_aes_key": "ACA688D9730674B5B3CE3AF639A66976",
- "extended_unsigned_metadata_key_hmac_key": "8F9F1E8F5A29DC05D338FB3FE36403DB78F2A13B17183275FC5DE7B526BB5260",
- "extended_unsigned_section_aes_key": "48189C0DF3A6F7DA6A471FCF5E682E78",
- "extended_unsigned_section_mic_hmac_key": "B9D515D58EE8326C5DA5162BE76B9109328FD6B432437E25E9C334CBA047DEF9",
- "key_seed": "68505BFFC73B4311455DBA66C0D0BC13585139437894F1FE1D498347098954F1",
- "legacy_ldt_key": "C1996A65EE2AB3F282844C9DACDBAEC8A413C71A06AA371A45B183168956AE783D7BA07F0D649A1B4A226F4D427E47340BA9065F74F5F12F66F1A34376CE0E88",
- "legacy_metadata_iv": "D6DD5CA39D9B779E923217B8",
- "legacy_metadata_key_hmac_key": "506ED2EE3663F745D7F4CE6C3CCA985A55645ABFF0C78FB9EBE7D55F466918A6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D299",
- "expanded_salt": "146A59A5DFCC2E848E4BFB17711E33C5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "496D7CDD82CBC4041B432491C32CFDCC",
- "legacy_metadata_key": "E1ABC473EA7A2A4A46B94170CF47"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "85C85594426314F5C97921343BAF9CBC",
- "derived_salt_first_section_no_de": "BD244C4A1068660AD31C4C21FE9184EF",
- "derived_salt_first_section_third_de": "508991174A7811E087B6998F98CF19CF",
- "section_salt": "1B1EBF5F20FFA03C53D3F89C2435EDA9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "782F947B2C9663200BDEFACA",
- "extended_signed_metadata_key_hmac_key": "E7EE4337FF527FB75C86357356E3BC17E4342B1813F94D0A71B32A0712C1DB39",
- "extended_signed_section_aes_key": "62542C4EDEF0415FCA98A2B7C1B98209",
- "extended_unsigned_metadata_key_hmac_key": "320D48EC29CB494D9333763605B8F31FFFA750073C17614A1FDED3CE4D1C21D7",
- "extended_unsigned_section_aes_key": "093C97B6BB3B67FE9D4A873972849B81",
- "extended_unsigned_section_mic_hmac_key": "0EB161FA20BE434CCF0BF9C8F6E5A9917915110452C1826CEC7C4EA8B8E22309",
- "key_seed": "9238B2B514C84F7ADE8082E94870F7318F0AE768DCA7DDCFC3F9CC90840E43E8",
- "legacy_ldt_key": "E188ECF18422644883A8F8BE45517B27025C439CF848EA8CE5BE9635470A129AD65B4E83EA0490364FB37E8A547EA2ECAD3E0985C6142C37662394DB5C645481",
- "legacy_metadata_iv": "EC4E3CD0B1B3F8538CFF142C",
- "legacy_metadata_key_hmac_key": "85DBDFADEEA644179138B72DFE4513C0A8A0D18B0484CF2351A9475205C700B4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ED79",
- "expanded_salt": "D3EF66AF672C33E54B59A2E6E413ADC8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "85D1BCDAADA09679B0B55B87E679E1EF",
- "legacy_metadata_key": "DFB491A0D4D5C7285857404DF984"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DB1A19EF36F8FCBD3BFD2E6CF2CCAAFE",
- "derived_salt_first_section_no_de": "3B0AC2EA1F516C009C15791F5060B341",
- "derived_salt_first_section_third_de": "CF03CF1C33652ED534492E32EAF0AB41",
- "section_salt": "EA45444450335E37A179A2F20FF6E545"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A49B56D7CB4676C16CA240E2",
- "extended_signed_metadata_key_hmac_key": "1989CC02AB0ACCED473C786A98C14B0346389E578104B4B44C808DDC7A047563",
- "extended_signed_section_aes_key": "268B0F4F5AB73502C63834DDD35EF255",
- "extended_unsigned_metadata_key_hmac_key": "91A9D7ED490BC1E7CECDFDBF399E21197635A340D7DC6FF9693A1B38355C3AA8",
- "extended_unsigned_section_aes_key": "BA607B522D91972B8F327A3928513C0B",
- "extended_unsigned_section_mic_hmac_key": "F72C332F57D6ADDEB029429E589E90E6F69A55DC52DAE7A744D061CC18DD1D90",
- "key_seed": "17A179E2FEAC1C411A0C9F7F0B21F1EF9F9BFAFE27F83115C814CD5DF1475C99",
- "legacy_ldt_key": "5706AE2CDF89A4306FD5FD9DBB434592EEA48E62F66710234C2517A945FA3F4663E1454964641931321126B39C85DE7E71A7E6159247110AC84F8806436CBE0F",
- "legacy_metadata_iv": "C8F522718DE676E72F6C7F2C",
- "legacy_metadata_key_hmac_key": "2C30DAD3DEDC6CD06DE7EE808AF3291DC14F570649345DED0D35B2BA68E10A18"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C58B",
- "expanded_salt": "457363425330A58D4B667342C7BD72DA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6BF1AAD500D60CC25E1005C9E1CBEEF8",
- "legacy_metadata_key": "C8735F3648A961FA72C4C3125646"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6BF90205CCD61431881CEC05B1D04A19",
- "derived_salt_first_section_no_de": "ECECC3618BD9F30EA48CA8411E886297",
- "derived_salt_first_section_third_de": "74A8DE58AACA17DA7C0B064848681AE8",
- "section_salt": "1F92B679E54A1FDC3A2A6ADB0FDFC2DB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2916C4400E9AD5C2ACFA5A82",
- "extended_signed_metadata_key_hmac_key": "C5A6E5C241A5B5DB8B9F657345390146BCEFE9A8581F72692B1684CB9B8C8572",
- "extended_signed_section_aes_key": "DF74EA7A267F4CA22B5CDBD4047BD33F",
- "extended_unsigned_metadata_key_hmac_key": "DC3A60621E6DE73B6B0B46E5636A31FDEA35C37417B27F0D32692FABB6C50362",
- "extended_unsigned_section_aes_key": "E0282B9D7764EA2CBBC212BB058D79D0",
- "extended_unsigned_section_mic_hmac_key": "2604DB126CA9332773DC3A281A393F401B6FA3FFDC4738D18106FA43197709FD",
- "key_seed": "31372473D7088C17CA741D0327101A8A2E85A547694BC39CD222635FFBDF41C1",
- "legacy_ldt_key": "A9DA46E9EFA88EA53AB7409CEBC3A364966A49A40396A18D76A8420D09CC0AE318FCA703855125290C7F7652090A519D98BB0510C35F36F9310615A7AC8E81F2",
- "legacy_metadata_iv": "D3E20C59A2247B715E4BC5AA",
- "legacy_metadata_key_hmac_key": "38D0F6456E373C9E95F08239945CD63442A8345B98C47F518996C414790EB645"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3DBA",
- "expanded_salt": "04AB0AF28A62DD3E11B52C22006583B3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "071A16F4ACADA1F3783E88BFABCAC037",
- "legacy_metadata_key": "F709D71FC36B7718ECB1785E8278"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "916AA0C55D8415463B167A8DDA7857D9",
- "derived_salt_first_section_no_de": "AFCDE8B21224238760E25B673054054C",
- "derived_salt_first_section_third_de": "2DA43A290B3C2DEA269FEC239BB900C5",
- "section_salt": "7412CB9AE0C3D31C55522AED58917328"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CC6B1323C6FDC8C3071F2EFD",
- "extended_signed_metadata_key_hmac_key": "632AE90A3BC445C26FDE3CA2D42B176CF2C6DF5F780505FC85D7774C3FB5155C",
- "extended_signed_section_aes_key": "1BE2F1F86260622ED62EC36D045CF5CF",
- "extended_unsigned_metadata_key_hmac_key": "25E71B60169A83B3D18AA2DF90EF3D4DCAC66699996BC1FCF451C95F94D50C41",
- "extended_unsigned_section_aes_key": "45C7F5D5E994D615282B201D0CA04337",
- "extended_unsigned_section_mic_hmac_key": "96A5D8BCA7C86CA031C566C097291CF7D2AEAE9835D3EACB7745CC9C4565054E",
- "key_seed": "74E5A5202D32C6A0ADEF2CC081A37E96D0EA38FCB233A3DF65945AFCAE201259",
- "legacy_ldt_key": "ADBE40D13160AAC10DA81760E2452348ADB29A4D57B7BA0453AB5FAEF046962159002F0A60A8EF9732449A1F9E61F1AEF4DBF186210E291D6AA10D71EF305E43",
- "legacy_metadata_iv": "7F431C73778D87F60BCBB4C6",
- "legacy_metadata_key_hmac_key": "51507FC4079B287C3760683077EA53DFE7742678F3B632EE2C8A2BECB9B1B929"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2E4F",
- "expanded_salt": "512C4D2FA58CBAB90EB26AEB8FF6C8BC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C78886449169464FBB2E0C8A367AB9A8",
- "legacy_metadata_key": "60F9A208051BCAC2509FE3192575"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1F25B3ACC6CDCE7A3B4FFAF4C56342A6",
- "derived_salt_first_section_no_de": "16D739DFC563F2A0825B673A8E263113",
- "derived_salt_first_section_third_de": "E097BEBB07F706AFA649B08D3DB3822C",
- "section_salt": "A70E9167C43356816A010E435AE9693E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "85E68E7F26348CE82DEDC56B",
- "extended_signed_metadata_key_hmac_key": "26C1F6DC78F0FD6182CCD143DBF789626A804FCF80A12050CBD63AEEC34691A3",
- "extended_signed_section_aes_key": "62DC2734917D50AB2C22B8AB23319D7E",
- "extended_unsigned_metadata_key_hmac_key": "4D83FEF5641C1028A1CA3263540F2316A06EAC68B3F8978DC22A2578FE85F885",
- "extended_unsigned_section_aes_key": "12420AA0D4276DDB7677931E0941949A",
- "extended_unsigned_section_mic_hmac_key": "A35319C5D4DC122422AED79BA10B2F11826C029F23C7090148892F40A7CBC534",
- "key_seed": "289653A37196F98325E76FB4048591BC098C7EE27B753B55999AA73EEDA2AE2F",
- "legacy_ldt_key": "10AE91FD172CBE2AA9C9FC5F776DA93B13E6944215523255E2547B9213E6FC4DD49E6773BA0BA133F1E7E412524188F292CBAC8D80455C31CF6F917002E5DFA6",
- "legacy_metadata_iv": "72801290BBB240A03ED41FBA",
- "legacy_metadata_key_hmac_key": "3BF1D5B3D4A321D87D1D330BF5555D0F2DC864A233D572069FE4543A03F4AF88"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6D21",
- "expanded_salt": "42D7BA9E77ADBD184CFD405AAC7B822E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "53FFEF0024C8A9E64CA10EEE1CE584C1",
- "legacy_metadata_key": "8FCB2FDC0932C1248F01FB664581"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7E8FC21727A71F4F88DD1D6405DEDAF5",
- "derived_salt_first_section_no_de": "826E7E25BC8384BE3916CC7EBAAD7E21",
- "derived_salt_first_section_third_de": "B7EA06A024F78D2B6EC1853000017D31",
- "section_salt": "62824C714A2A7412255B138A3897A606"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "046E6B2F69A83666AB24CC05",
- "extended_signed_metadata_key_hmac_key": "089DB6CA02D85C0F9C03A4AB09247D842B2C42DCB2B082BF82A44DE60AB14B9A",
- "extended_signed_section_aes_key": "0874D980A289C00D1C3A96E2520A099C",
- "extended_unsigned_metadata_key_hmac_key": "317CF5E21F57C60B03935D68D825A092762BD9577E876E04EBBE0B44D93CFC66",
- "extended_unsigned_section_aes_key": "69049C2ED76C069FA2C167A1F4DCB825",
- "extended_unsigned_section_mic_hmac_key": "088991FCC858A57C1F3088622E62D16D09684B0D54C173AB3F4A7AB7F2DB9285",
- "key_seed": "4D7AD79463CEE0228925F9B979073CEC248D9ED74E522E90D9AB3B7D0D25EC17",
- "legacy_ldt_key": "4FE9DA3044EE928B9A959CB1D333EC9FA07A5C5AAEAF93B1F8CC3E70849037B49E1BCD65B22FCF1B55009DAFD43ED782F2B508669BABCF3E67B5CCE0EB7D65E2",
- "legacy_metadata_iv": "31C7CECCACD4228DA1813D24",
- "legacy_metadata_key_hmac_key": "C303C233FFE5EF0549FF1D7137D2CA4ADAE744BA72CF36C9F138DE0F641CF077"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D711",
- "expanded_salt": "1CB29BCEDD2096C7E764257A3AC44722"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A4C5ECA3BF646DA0D186A4D6011CA315",
- "legacy_metadata_key": "2BBD06A3AA82119DA25AD2C7D81C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3EF32152925FD18C5204097B653711E7",
- "derived_salt_first_section_no_de": "434C48BEE7DDEA974553E6CCD548AF4E",
- "derived_salt_first_section_third_de": "9EE3C671A34A099D593AEEB409F8559A",
- "section_salt": "DF03AE7C8B774C292F01938BCF7F15EB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "63418120C393E00A0FC1A36E",
- "extended_signed_metadata_key_hmac_key": "74977196602C09AE719E2666580B96D80E49ACDBD5D06236007A95076CC96392",
- "extended_signed_section_aes_key": "1D1FA63A1ACFE634605C05AC579B5326",
- "extended_unsigned_metadata_key_hmac_key": "EFCA7897CDE0CB411BBF5DFF8A073C5058BA854C2DFA9D46BE0479A99E28526A",
- "extended_unsigned_section_aes_key": "66CEA04DFBF931935D26783ACACF8B21",
- "extended_unsigned_section_mic_hmac_key": "D8DEE6334B57306197F6DC5A85C0C5B8E427AB9742B4A7190DF9E27D4F8E543B",
- "key_seed": "8A84FBE19B45AF7C6BEA3B06B326545A757C79BCAC57FD93CA299C4AC4D97103",
- "legacy_ldt_key": "DF3A5EFEDCC0A21C1E23FB066DFAC22FF01AF754B95DCAC80EAA44DDC15A71A68BF752DF8BA6A7565504A10047AA53370EE5E7827EFAF1F6606996AFE69C326C",
- "legacy_metadata_iv": "78EBFA13813D820423134A7E",
- "legacy_metadata_key_hmac_key": "2E4F178AA3B4269CB348477ADF0A19609638FF16EA857CEA480D7A84503934CA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6A24",
- "expanded_salt": "6BAC2F1EF9BEAAF76B7EF19C8D79FA46"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CEC654CAF6BEF10BAF41ABBA5BF28F81",
- "legacy_metadata_key": "5977B459F8255BFC94E024E243DF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "880C164A1F6C58E4EEBA735113D89D0D",
- "derived_salt_first_section_no_de": "859965F377DE1AF2F43971C10F5CF07F",
- "derived_salt_first_section_third_de": "4DD16E737E5738C0A2482E9BFC6D250E",
- "section_salt": "A9A2CECB93167501A5710C347D09C73A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "792977BF7BE3552AA9E20EC1",
- "extended_signed_metadata_key_hmac_key": "5CFFD7A6A173C4C862EA2FDA7D201AAFDFFD28420A58F98E1C461ABEB95C42B3",
- "extended_signed_section_aes_key": "3AECED26E896D1FAFC7690A496FF3EE8",
- "extended_unsigned_metadata_key_hmac_key": "CB3B2B24334EB2D267B9099458AFBCF491E24860FB62EB77F5176A49D40C2B1B",
- "extended_unsigned_section_aes_key": "7833A944E86C028CA53AB4EBC36B2FAC",
- "extended_unsigned_section_mic_hmac_key": "91C94FBCB7A850FA134337A4C29887BB1C74974F85A1158A2E1F25D30513959A",
- "key_seed": "0E79824A7B5FD427A6F94382938684085DFF768EDC8FF17261AD824C4F810607",
- "legacy_ldt_key": "7C202300C3E3BF1C91AF8F3D9D67B98D82AAC208B132032DCEFA66619C29D174F894316A72CAD8DCD81C9467FA9667BE531E391EAE459A358D82EC9AD1F37C30",
- "legacy_metadata_iv": "58534EA7483221D2B8D4EEBF",
- "legacy_metadata_key_hmac_key": "D66C24DE0A6AF0239B1DC3B29A40B27D81CBCC2755E3F4AFE0320E31DAF14466"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B61E",
- "expanded_salt": "16124795EDBB9F54F2D52D89CC789FD6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D567676031DEC7F7593B97F647E8D50E",
- "legacy_metadata_key": "23E8B8F79CBF295A5CF07BD525B2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1A03FA37F9F1C64E9A1678C3FF6C1603",
- "derived_salt_first_section_no_de": "C1126559F3D14B25E94B024657134681",
- "derived_salt_first_section_third_de": "02DDEFF1BD0B2FBC98D5010365C752A6",
- "section_salt": "A59FADF2B63C4D92ED3755CCCCEE227E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8BB6E700AAEBF2FDD6239BAD",
- "extended_signed_metadata_key_hmac_key": "06658E0CF402DB4A76609D4D582447A0C765370FCDADAD6FDEB27649C4BEA226",
- "extended_signed_section_aes_key": "08BDDC5C6C9ACAB2A94A9D7A281A7F10",
- "extended_unsigned_metadata_key_hmac_key": "1EE6750CC064E263EF1A79222CF7ADA134C8ABFA63859CB7AD029D0143AC16BD",
- "extended_unsigned_section_aes_key": "BDFEB6A79E05D313573B1AA34360D383",
- "extended_unsigned_section_mic_hmac_key": "395A1A96D58A0993ED91BB6D022F381940FE60DD70E3EDB72A64FE7DF920EDFA",
- "key_seed": "130D4DC385C3BB58AA4EBD040AF968B6A7CCB54B97614E0432B93E7712A1ED5D",
- "legacy_ldt_key": "7C0259AF60EEEE1519772C2B0F63DFAA1A45E7E75D96A70531B84C9D146C8D492E7A28308743C120F5B0D1138E7B172535B8EE1CC4DEE2EC4BDB84236C94EDE5",
- "legacy_metadata_iv": "20A3E158B87C3740A0986891",
- "legacy_metadata_key_hmac_key": "AF9B34224430F03CFD10899F580258B556F157D3D3499EFDC4CD195D19B84190"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "044C",
- "expanded_salt": "A068989D567C57EEEB13629FB4C6AB55"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5C772E274ED6F28304D6A4CDD2C19FCB",
- "legacy_metadata_key": "CF25966902BEB67F8FC0C3F9B480"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "83683E9206C483539A5419B16C162653",
- "derived_salt_first_section_no_de": "64E77161BFD824D11180BFA3E1922820",
- "derived_salt_first_section_third_de": "C83565A94EE91689D6831BA8E5F18013",
- "section_salt": "51D990601069D4176DDF31A6514752C6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "25ADC396EA35CE0E0B63484E",
- "extended_signed_metadata_key_hmac_key": "258A077ACD1A5493D11D70192692C08775A201D8BDC59B337FC16B00C513962C",
- "extended_signed_section_aes_key": "FB010ADBD650FABA039192AE5B18FFBD",
- "extended_unsigned_metadata_key_hmac_key": "5C4F17E2C6462C12048E85E0E549DFBBBFC95355C54864E163FC14B304A34E3B",
- "extended_unsigned_section_aes_key": "18F0AEB71ED828F8ECF49FD2C6FA7FC0",
- "extended_unsigned_section_mic_hmac_key": "ACA09C74F3B06319B6D3D644D9E6725810C77FFEF9CEC3A242F42E05C5641CF3",
- "key_seed": "3088C304CB6CB8F9352ED42E17F416F930827964717065A8F981F06FF206C626",
- "legacy_ldt_key": "3B3AB8284AA126398C43B75C9CAA82BD78A33465A5590FBE512CFF4E6091B32A299DD1EEE064C5D67F7D3998B6B214BFB02AE0F35096E0E01594489964066F28",
- "legacy_metadata_iv": "B67DB6001B79549F59D80F36",
- "legacy_metadata_key_hmac_key": "8288356FA2CFC04AC9BFF14FB956AD3C6EE285A9F1D53ED4C765B2FBED744963"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "74B0",
- "expanded_salt": "196FDA0C019DFF8883029E6D4960E79C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "136B5EFA156F6A93D539858EBFD22ADB",
- "legacy_metadata_key": "8B1A048F274A42FB535100EDB921"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "32E68E45B9E707F18243D301CAB0C54A",
- "derived_salt_first_section_no_de": "997A953D4EDA0AFBE2B9DFBEC93E2B5B",
- "derived_salt_first_section_third_de": "F5CA1692C72D37D6326C8724FD579D29",
- "section_salt": "011238344F02D5A41ED8E181267D310F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AAA4AFFA83103CB13E79FADE",
- "extended_signed_metadata_key_hmac_key": "EB6947B606B75B253BC7919EF31FD1130AFB73EFAF9D380EB0444742D0F309AD",
- "extended_signed_section_aes_key": "7A1F79FA118776D92CBB96BFB1BAB03F",
- "extended_unsigned_metadata_key_hmac_key": "86C5A3E8309EA52E82DF7E914CA9B76AF7D69236CFFA17C1922D8DD76CBB0C35",
- "extended_unsigned_section_aes_key": "96A73D60C62B275E1DD5140C4C0026D0",
- "extended_unsigned_section_mic_hmac_key": "6A378F80E55863E52F62258809B0BCC7B67A50135DF0F2339B27C898CDDE5C77",
- "key_seed": "CBA140C9CEFE7D891F5CF8A1C0998738729FFDA9102BDC32B07199E181E32C4D",
- "legacy_ldt_key": "BEF7B887E1DAB4DBC061F26C4B312F6AEA4A281B637062160F62A5CD04AE9E9ED11D60FF73598B639D485BB86FAAF212F88F1F5FDD5879C892BD25118D534855",
- "legacy_metadata_iv": "E7E5F9F6AC5F848BC26BABF9",
- "legacy_metadata_key_hmac_key": "8A3BAB6AD7B03C6988910B7D04FE3CD92C4233FBB1259EB6F5DAA7E59C5B2D59"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DA07",
- "expanded_salt": "4F0875268C1B697AA49777F9E2B681BE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D98236F336FC7C9F627E80039804BA1B",
- "legacy_metadata_key": "97C96DBF5B9A3A54FF68F662E0E1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2294478C5DF30C3CCD960648A2B931B2",
- "derived_salt_first_section_no_de": "B4211C8DD0E207E35A86513934E501A8",
- "derived_salt_first_section_third_de": "5D9355920041A168FCB26DA35C922CD8",
- "section_salt": "E4DD6ADEC4D539BE3562D89B64C571C8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D8054E0A995FDC8B91A3BD00",
- "extended_signed_metadata_key_hmac_key": "9078303E61CC4970FEF6568151981A9D6349CB46CA14FA96537F95C338AD3813",
- "extended_signed_section_aes_key": "0B94201B993F07900EFB3850B1BED300",
- "extended_unsigned_metadata_key_hmac_key": "E57F2949E6BD494E11F694E5DE86510663FE00596FBF87FF5CDFE4675AA5052C",
- "extended_unsigned_section_aes_key": "1492685579EB840DB731B8E2DA133292",
- "extended_unsigned_section_mic_hmac_key": "31D525CA7BEF3EED7621E73EBC7E0454B1033B5D44B2C9EAF083D414DF5DB12F",
- "key_seed": "FBAE9C4FC95981D980F045AC5959CA27DD85A12D385C9A88B576B712E0E60090",
- "legacy_ldt_key": "4D8D2B6A0E7DFBBB2C5AB711F60C932656068F7755A0F3A58081D0BE483644759873008599F1D13976A2F1F62CEEC99F9362EF6E5E4002694931FCFF71B819D3",
- "legacy_metadata_iv": "8D893A4AB0F5BE7781793522",
- "legacy_metadata_key_hmac_key": "524AC8554454AE8CB16B471974EC6F0F4A0E357692A3314DEF20A7CB2C606130"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8084",
- "expanded_salt": "DB9E06EEAECBBE41BD3DCB91C1A95213"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AAC982E118D456379E86E3B44EA57D35",
- "legacy_metadata_key": "E00F1BEB0FC5489642692048B197"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "264885F36FCCA0BC66A2E264B75132A5",
- "derived_salt_first_section_no_de": "328B7728229F9D426AB81D5E4F64973C",
- "derived_salt_first_section_third_de": "FBEDE2FEFBB1B3065852134126377CB0",
- "section_salt": "2A63867CF5EA94BCAC39FECF7BEBDF0C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "61E174E4FB64DF298F69CD57",
- "extended_signed_metadata_key_hmac_key": "51C50390764EC9CECF07384881BD4B1E085073D7B5692EE21A582758A05ED3F2",
- "extended_signed_section_aes_key": "8AA932A1EE0B451A140EB96821F40D62",
- "extended_unsigned_metadata_key_hmac_key": "2A906D75A248CA8CE347182E90660B0D92E7197727F106389B0C3D5BFF446246",
- "extended_unsigned_section_aes_key": "48CCD75C518EE7D84E9EDBAD37A19993",
- "extended_unsigned_section_mic_hmac_key": "F1A01046464E97D8D2B53BD9B7FA95EEFC9C38E57D82B05656F41357A6E98F4D",
- "key_seed": "15BA8C32473B322D6FBC34D7303DE55D5309D4470F666DF2574125C0C405DC68",
- "legacy_ldt_key": "1DDBFC2C3C7EC66FB6D822EC0603770F58C3F167FDE1EDA8C952600D3A6B8F3E8A09C413E49C040F3284F90726D4D38A020D748811E6B67B2A2C9E6BA7F5D443",
- "legacy_metadata_iv": "5DBF2A73E9E8B8C64551A2D7",
- "legacy_metadata_key_hmac_key": "DBA55DAAFC77FC8AB3C76FF56F06624CD864D122CEAC2C9D7912656586F25A04"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2D32",
- "expanded_salt": "8EAC326ACC5257377B73AD0BFBEF8E06"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E8F92085B90EC385188F225377AA71A6",
- "legacy_metadata_key": "23672D2ED30C131CDD5167C91F2A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "638CBF90EC691481040355816ACB3294",
- "derived_salt_first_section_no_de": "4DAACDC89CA3C5EA6ADD79559697E8B9",
- "derived_salt_first_section_third_de": "F5F6CDA0CB20230106B049BDCADED1CB",
- "section_salt": "453192DD7B0B0140BE206481E78A1133"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7A91B5754862ED1BEC0BFA22",
- "extended_signed_metadata_key_hmac_key": "161DDD5FCC66FE00DD55FB9F989B2D8731ABF2AE388E801156BA9946B5D8E7AF",
- "extended_signed_section_aes_key": "DC82FD37BACAFAF709F5EEC514671CD1",
- "extended_unsigned_metadata_key_hmac_key": "EEB55A1742DB342EA54EFB1AA0338859EEE58DA5FA017652BC4F06DEB4BC3B50",
- "extended_unsigned_section_aes_key": "D36828027DA0519FD34C71A7DF50183D",
- "extended_unsigned_section_mic_hmac_key": "092337616755E1922307B42426A2D4C767B83EDD143534E5887426180EDBA5F3",
- "key_seed": "3308EAFB9C3C52BEFE7D502BB291CD30C0BBA050551DAE42E4462FDC8AE43A5E",
- "legacy_ldt_key": "9A74460830E262A51E78E84E3C97B3D78C84772117DA2A217BF538EBAE02E38EE81F33BFB7D377E02ED4C1642DF016DAF33ED38508B38D6389E25D29EC05D891",
- "legacy_metadata_iv": "B3A117CBD7B7404F0435A006",
- "legacy_metadata_key_hmac_key": "4AFED2854CA342FABF4FD95671084AD47A38DB9BEDA139C6F13950F4512ACCDF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "80F2",
- "expanded_salt": "ACBFBAD0D195C79B38229B11CE29C9EC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B5395D631FABAEF19B69C7B0B3D79DA9",
- "legacy_metadata_key": "982742E3C6A2B5362889D3746D06"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "089DC22BD446842ACF590F55A3454BF4",
- "derived_salt_first_section_no_de": "36FF6CCFA2012C9808FD00918EAB84BA",
- "derived_salt_first_section_third_de": "C7B605459772CC498ECD7E4EC179F7D6",
- "section_salt": "5B3A2E49C8B76601D260CED66E2A54A8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C023E4E4740CC28693AA8D25",
- "extended_signed_metadata_key_hmac_key": "BDC78C83C8E8165C61077AACCFA8B832F2FC7FFB2A693DA68B6377DDA4C1DBDE",
- "extended_signed_section_aes_key": "01B1895ACC826F775FC3252C40135931",
- "extended_unsigned_metadata_key_hmac_key": "CAC5481A027FBA340A534737DFFC90AF16B4E2F85B1B0F58A7EBE0CAF0B17A26",
- "extended_unsigned_section_aes_key": "35544BA89A8B3BDDBFAB1E5CD42B76CB",
- "extended_unsigned_section_mic_hmac_key": "264A8365DED26FB40DA07599BB03C354D58ED0A1F8BED910E95EC9D39B3C35AD",
- "key_seed": "9DE4A513BEBD23FF165980C2A9089F11D5B82252177BF3FB2F83A8F3C41B69A3",
- "legacy_ldt_key": "587A955E535E074E65726D35E73FC4A523E32EAC4D4F9E0CAF6D8E40F546274A6436E8A3A036EFFD81962CF4642465BA4D8688DC4A15A9AC16FF5042FAB50330",
- "legacy_metadata_iv": "2A6DA01F59C84547EB0A433B",
- "legacy_metadata_key_hmac_key": "6C973A0BA7F30C4BD1954E4D9320CB6FF5F35E25A53C5DDE52BE6F24CED5179F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C539",
- "expanded_salt": "8D33E156BC4F51F96EE0EC97164C2FBB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "02BCACA04AD65C77EE5F154085D6C309",
- "legacy_metadata_key": "5CCD3B08A93E324536143918CFE9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1717673269F702C18B40A3E018C075A4",
- "derived_salt_first_section_no_de": "3235058278D0B5805D173983A7D3CC39",
- "derived_salt_first_section_third_de": "21B639F11EDF391CC329C1F27A589F75",
- "section_salt": "CDDC05F49B8FB683FD6044778A825F46"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "285A29F1C0A064A6D251067C",
- "extended_signed_metadata_key_hmac_key": "70D92636937D7864A05571EEAD8B434C27917423E17E570EA0542F1202B65FFD",
- "extended_signed_section_aes_key": "96F1E26913BBE67314861A4B8085E120",
- "extended_unsigned_metadata_key_hmac_key": "D4B0ABB042AA6F4919EFBE71D9825DA691DA5FCD6FE13A5598A96333CF7A6FEC",
- "extended_unsigned_section_aes_key": "89FEF440E26138D1B2046DACA23EEDA7",
- "extended_unsigned_section_mic_hmac_key": "7F65F199617088355ECCDADECBD1E6FE6417C9E512AD5443208D68CCF73FD1E7",
- "key_seed": "D587B57D789AC85D747591ECF18EEE9F3991E7E01E70C30F18F48992C81225B4",
- "legacy_ldt_key": "EEE3A5A6954756581042DA83648D280AE56449932B6BFE2549D6727A799FB527E3516251142D072D847E904021A93EFB72908518A7EBF6C470E8E2E8D7A30E49",
- "legacy_metadata_iv": "8806BCBE2EEE263AC48A6378",
- "legacy_metadata_key_hmac_key": "3A07430FB71BF5CF230FB1E6E8E5BCC08B0D3257DE9D95944CF498334923D2D5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1666",
- "expanded_salt": "DC7F74D300A8744816F3C661EA9E4ADE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "955FCA16BD6579437A2E91217B002ABF",
- "legacy_metadata_key": "D29799B36D19F5913337EC94983B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B7BAB1A113503E79D852B8A6BD4EDF95",
- "derived_salt_first_section_no_de": "05A96AEA6B6941C83C79075DD055AF22",
- "derived_salt_first_section_third_de": "1611A7A53DB2521AC9E0F0224F95FF57",
- "section_salt": "E9DD9FC0029CDB8265AAADD5C615486A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5C502472C30DACE6B90B0D7A",
- "extended_signed_metadata_key_hmac_key": "E798FD60F9A2BFE443D3F8E0ACD9CB5F365CC0F32CF3DD7BAC58074127097AA5",
- "extended_signed_section_aes_key": "8AD89F25DEAD3D2C68E0F4D472C31854",
- "extended_unsigned_metadata_key_hmac_key": "0F1CC5984C97109E503854953315AA171022DC5F77107823FC42A78BF0C4617A",
- "extended_unsigned_section_aes_key": "1231279A80B8641A5F912F378A93B1BD",
- "extended_unsigned_section_mic_hmac_key": "B66925CDAA9FCB3C9321E4CBC493AA848A2FB463AC1997A41670FECC567169A3",
- "key_seed": "8FF2E2752C3DBD0EC2F2C671AF3634730C9852419055F985E9CB15AEBFA19282",
- "legacy_ldt_key": "679F0292D4A3A0CC87E849CE36D66E73FC44EB35093399B6D65C745BD7369989D9C840BD34A75AA775502B450FC4B3ED479920805A574EDFBFB7FF851A994A92",
- "legacy_metadata_iv": "BB715A20187CA8F9CE714E92",
- "legacy_metadata_key_hmac_key": "BD63850377BA711A7398EF20B2CB7AA827166216163E4A6B0F110BF76DAA3BF7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C8E5",
- "expanded_salt": "E9CC8F973FFC7780D846FC792AACA531"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E0F2CBE1E3E866DA0B86C36292CBC420",
- "legacy_metadata_key": "74D5E15891BBB9E952BA225439E4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7CE00F15EA8D9BB9C3C010879B8C1D8A",
- "derived_salt_first_section_no_de": "1438DEFFAB67746A92A45D476F05E92B",
- "derived_salt_first_section_third_de": "5AF089DC14B2B62B7604A15E7545F815",
- "section_salt": "B7164226507B7E56057ED5F5F3BAEF29"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C7A5A2090AC566E6593746D9",
- "extended_signed_metadata_key_hmac_key": "ADB05BD3783E603541EE5A73ED28028964D1DDACE0BD7504A221BD2C90039133",
- "extended_signed_section_aes_key": "CCE1531FC722CD292782148A84FFA830",
- "extended_unsigned_metadata_key_hmac_key": "18D84322C5843B2348BDB91A3F78A3EB42C5C3F7EFCF0564ED51AE0517F4DDD8",
- "extended_unsigned_section_aes_key": "C835FA5C8A79A1771C2F76A7601E271E",
- "extended_unsigned_section_mic_hmac_key": "1B8264E6394F5E6030225EF54C0A3B89F05DD84C375C1A8C8E1F306FDC935711",
- "key_seed": "93C7E387ED6F726A7EDE5D2C82A12565E53B6382DA51B5C4AF43BC47B3CD9183",
- "legacy_ldt_key": "3E0D8872962849084894D2FD5F405E6146A55EC33F3754D367FC1B28EFF339ABB0C5B30F3435287E7516D265D45D8989BA79E0D18155AAC734285AD881D3FA82",
- "legacy_metadata_iv": "B60445D0F488F588BFC2FB39",
- "legacy_metadata_key_hmac_key": "A65AFA29B960DBE553FAD39E25E59A27DCDE08EEF771DA83DC7E7CDE5BF23597"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2CB5",
- "expanded_salt": "89A517B3A8879AE553153B484A546D51"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0F7482525673F13127136BB7CC8B7A2A",
- "legacy_metadata_key": "33C4AD4421BC1B0FA6551BC459D1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4EB5A095B58FD98F7794686BD3C9B999",
- "derived_salt_first_section_no_de": "32B8306C448AC13DBD435DF90E22EFAE",
- "derived_salt_first_section_third_de": "F61E0EF7D269843AEA2D72F4F4303420",
- "section_salt": "C9B274DDF8E00EE3B7F2C70D80182706"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "081E00A7E60B5807443B5C26",
- "extended_signed_metadata_key_hmac_key": "437EE2590256378B637EFC02D1349DE162DB99969D39CAE36FCD5DD3467869CD",
- "extended_signed_section_aes_key": "107FFB949B37406722BBFD38A8FA1AE9",
- "extended_unsigned_metadata_key_hmac_key": "DA5C332FFB175E800A944498CEA048EDD575F796CC88580BB4F10D3FFDEA50C1",
- "extended_unsigned_section_aes_key": "12BF986743BBEF7AC204DE1A705835AC",
- "extended_unsigned_section_mic_hmac_key": "D7E24244958BEE7F2E261A1D184C8284079CF063ABCD7573EC8C532B97A4F7F7",
- "key_seed": "0DA5192176BC85B5358A7EB1EE9B55178F48F5C5AFC0D1298FC816DF3A1BA993",
- "legacy_ldt_key": "0D4950BBC27B6FB16092030D25522DD2E159AA530D72EC4EB0C60AD4EBF411AC07193E2EF3A3FFC35A6E1893A00BF36204034CCEB95E25FB15946785AC46A96D",
- "legacy_metadata_iv": "9D54964D90AE130BF4549322",
- "legacy_metadata_key_hmac_key": "C1DE5E874A5191D7EECDF0937642D7064BE4F9B78E6340DA1E31D499BACB444A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4CF9",
- "expanded_salt": "A47BED0ADD7C517E24540DB335200A6C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A03E7FEB690E52510A1B56DB7A3CFAA9",
- "legacy_metadata_key": "9F439E179F6810DC50E3E2F7B18C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E8FE316596399DF32D1F416AC102BF4F",
- "derived_salt_first_section_no_de": "C5C075553F7A199EFF8FEFD5FB114D7E",
- "derived_salt_first_section_third_de": "4808EB035E7E196C30B32D37295C9A1C",
- "section_salt": "F81DD6C483A532D618F1B6E401B8C92A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1C96125C8A9325D98B1CF4B4",
- "extended_signed_metadata_key_hmac_key": "69A22C3AF28CF5901F4DEFF75E2739A28DC34CB12DE1CC833753EF2EE2BCC530",
- "extended_signed_section_aes_key": "AFDF51EF9399C69825D482D2ED8C7BAC",
- "extended_unsigned_metadata_key_hmac_key": "4A3C5B1ED2F6F9D5D7FE0D88623B613390D9A9C868FAE76157BAFFEDAFF91B2A",
- "extended_unsigned_section_aes_key": "4FAA512538B4549FE9292A18EBDBAB30",
- "extended_unsigned_section_mic_hmac_key": "87C80D9553AD6C9B6756CEF9EA217CC4507BA55A7C9C38AEE584A1BBA446C16E",
- "key_seed": "1206D2E8232455F0729BB5F1D753BBCA08C0469E4AD39467EA2BEE7EF806E74B",
- "legacy_ldt_key": "67C928EEC09FFF116A1C9A1B344806B6FC321D88D7644B486A70F001AE0C437343CC1D73C38E137FAA6DB9528E38FF7F560F977ED7BCB62286E535EDF11D1F91",
- "legacy_metadata_iv": "0E8AE5BCD740C39DA7875D3A",
- "legacy_metadata_key_hmac_key": "C02457A1C4C63A2CFBA1B649A868E2455792EB2128C1EA04215A1F637C690A39"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EF0A",
- "expanded_salt": "F205D430B0D0C2EBE344A59DBBB778E4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "162D5F8BCA3685BB2D172B323D905E77",
- "legacy_metadata_key": "59FB80DD1DA4C9432C90F9654A59"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4C1D6E49AA952E055DA60240EB2A3C3C",
- "derived_salt_first_section_no_de": "58F719534CF7CBA5FB8EAC196324872D",
- "derived_salt_first_section_third_de": "5F4C03DADE6B6B89368344503656100E",
- "section_salt": "79BBD27565ADD2178E95507767675ECC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F3D6B3E7B538413DA1718EFB",
- "extended_signed_metadata_key_hmac_key": "595E164CA99D74BBF848395233977418D08A79C279F296CE2F8BA3DAA15099B0",
- "extended_signed_section_aes_key": "A804FD0006E4E704712902F2881D03A2",
- "extended_unsigned_metadata_key_hmac_key": "10AAA81418642191CDEF1A26B0AB3F7749FCB42A254FA8E2987B074155387DD8",
- "extended_unsigned_section_aes_key": "EBF4666DE4F91DF91258D7CF146A8D42",
- "extended_unsigned_section_mic_hmac_key": "128EA1E9BE04EE07056C0A7FABD4B6C3165237C6C9EAD1F5104AE3A03488E845",
- "key_seed": "08712A0F968B83B0B38DFEF8C4E2EBF52C59213F938F743C6E655B780E7E27FC",
- "legacy_ldt_key": "5A8DC76A08CC839181597C30CAD414625239BD2370298DD043EF709341E272CA2274CC84FD4A38812F8AA41535FBF306E80F6E3D0A409B3F011E00418AD713F0",
- "legacy_metadata_iv": "6C3D5DDB64AE014AE764ABA4",
- "legacy_metadata_key_hmac_key": "1E8B39C4787D95791E4C1EE75751FDEAACA42F8E993DB6A207E50638346FF8EE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "419D",
- "expanded_salt": "DFCFE688C4DFFAB7D182FEC634947619"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DFD4141AF6120246EBA2096546C5C007",
- "legacy_metadata_key": "CDAF7AAA6FF929FFD52DEDC58894"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B1D45BDA67F0C9AD746DD9DB5FB100D4",
- "derived_salt_first_section_no_de": "34A938A58F3F87EEDAEAE51CB3A9DB49",
- "derived_salt_first_section_third_de": "F747EA0B9B29FA8A64C24087C7A9F86F",
- "section_salt": "3D22F3E19D4D5434FD9796C92CCB3B7A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C16C2843EE0C5F378861D02A",
- "extended_signed_metadata_key_hmac_key": "E392438A0F0CAF64F0E3F2CE3DA6EA98AD6BC965CDAEB96CF58EF1E963E25834",
- "extended_signed_section_aes_key": "84346C2EDA474C2023CCC9414D65B1B9",
- "extended_unsigned_metadata_key_hmac_key": "2ED5F9C9AD00F4D6DDBAF3D868FB04261CDC87261BB6C849C07F49782C5EECB7",
- "extended_unsigned_section_aes_key": "3B820825D719B9870974B7411DF14B4F",
- "extended_unsigned_section_mic_hmac_key": "534F47556769606496CE049B4241E1BBC515265A5AEBE650976BB64E742229FD",
- "key_seed": "BEB7AA4AAD3370D6CF1B0A565DEA55D5290EDF07D2ACC0FD9C6E9FEFFC610DBF",
- "legacy_ldt_key": "DCE100C3F6DC7B7EF5FA1471E01FA00EDA3945E0BA823EC086584D5514BE7C3765382F6A0782A9B5BB7426600922F49E67BB9FBA1851F23EA7A757978EF6D9F7",
- "legacy_metadata_iv": "87A76D8A165D39C3AF0D8DEB",
- "legacy_metadata_key_hmac_key": "8702163DEB3A4CF7E3943B6C05BB5025B2C10A3CD81B75EEC0BAC200881A2FCA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E9C2",
- "expanded_salt": "6A137C9846A895232F2E57E6B4BED94C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8B7633700A8CFD604C5AB6C59BCDC63E",
- "legacy_metadata_key": "5A785A806BF5CDCFC4ADE8FD2B79"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1F875AA6BD278336991F631FD8421AFF",
- "derived_salt_first_section_no_de": "A0E243E0EC04524F0AA8872ECDBDD7E1",
- "derived_salt_first_section_third_de": "74F6C07F9446476D5F42EBDFD774206F",
- "section_salt": "592D15C835A3087B62C364BA4AD6D7FE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A6BD8FD6E0374AE414EF4F5C",
- "extended_signed_metadata_key_hmac_key": "2A6E96D62CAE4BC5BF0F666EE694E8885D41880C0C2769BB85EA3BCB0B0F94FC",
- "extended_signed_section_aes_key": "E9C1FE93EA4A0E005FAD3B30974EB761",
- "extended_unsigned_metadata_key_hmac_key": "13C38CD5BB4D035C5C935645274D2F53133B08C201BCA3CC096C2A82BFC9A1A0",
- "extended_unsigned_section_aes_key": "06AF48F88FE646BA50331AEA35BDB066",
- "extended_unsigned_section_mic_hmac_key": "1B82D7F1CA80086E019240ED2B66E0F05B6C41D6186475F67170603887461758",
- "key_seed": "0B329EF85916E25FBC9D7A15FBF7E5DBAD0D8FF3CCC287514A0F2C3EFC4C21BB",
- "legacy_ldt_key": "B2C0E41BBB22D9D24BB880EA0F6862E6078C89B733E9279CBFC6E7317A932FB19F566047890062EB9FE5F622134E22EB0C8DA6E3E283A0274DD8D2F8F876408B",
- "legacy_metadata_iv": "3B9EC2CEA0C922CF21DC2AD1",
- "legacy_metadata_key_hmac_key": "5E47C3AF877BA0D2203FCCC3553B7CBA500D7E151E9FD7384E00902E83F57ABD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0DC7",
- "expanded_salt": "81F535792E719C6999821C8A9565AF02"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8A8DED4E51E725199AAB347A950DC9F7",
- "legacy_metadata_key": "4C88A100801BE5E79BCDBDCE8082"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4F2432D9C8927840B2949857FF3C99B8",
- "derived_salt_first_section_no_de": "A77C6BE0DC9D5B6DF246050919548DDA",
- "derived_salt_first_section_third_de": "509A7090DB3C4DB316165F2AA5BE0307",
- "section_salt": "E486BC8E9D53384D9766F7DE24B131D6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A8DF1BDFA12AF32B5FB6578D",
- "extended_signed_metadata_key_hmac_key": "720A0F06F486837B4201752250A753CF87625C706F508688896CC703270CF282",
- "extended_signed_section_aes_key": "BE33C6AF6E5658EC9D54E3703B0A98D5",
- "extended_unsigned_metadata_key_hmac_key": "DCEB18CC741B954A6F8ADFF8EE2888C679793DFAD7E7B1E8C3C5A4D3C755B990",
- "extended_unsigned_section_aes_key": "7885EC7175C56407D5FE2FFECF8B4544",
- "extended_unsigned_section_mic_hmac_key": "32B4C38A0539919018AE66ABC7C6370494CC60FC7CD3618B6DABAECD3A894D7C",
- "key_seed": "8A1B5C1C6205D026AD216D54728738D16053C097498E05F7A5E7E7F8D62D9404",
- "legacy_ldt_key": "75990E5825A497FC04DF93F7380E1DD63DD411F3B407BAA25F0CAD28D14BD7E77664878AE5600F800E87CD9F457BC343E0516B5AF10D610B2C3CE87F149E1A40",
- "legacy_metadata_iv": "07F7E8227CA7DBFCBCABDB50",
- "legacy_metadata_key_hmac_key": "403CF352903FF58A534AA07F4AA016F08FC8D08276DF864125C0290153A0FBE5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0938",
- "expanded_salt": "C68EDBC397D2F577B40849D4B5CDCE28"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C76D8D4CD858179E7DAB7EAE8DB9035C",
- "legacy_metadata_key": "47772166ABE8ECF456C4ADD38785"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BBBBC8E19FE97B119AA95A4C685595D2",
- "derived_salt_first_section_no_de": "B5F84903FA61B593AAC515BFF4467A03",
- "derived_salt_first_section_third_de": "52AA3BF44404860049367A56E976B668",
- "section_salt": "F9034AD043BA3B87CDFC740D86DBD087"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "31C8B8344254FFB5F9D23429",
- "extended_signed_metadata_key_hmac_key": "24EF923082839DA63D81B31B9CC252D6D1FC9AEBADA96E17D2FB6F6925951F7D",
- "extended_signed_section_aes_key": "858D05DDBF524148DB82A379EB05A30D",
- "extended_unsigned_metadata_key_hmac_key": "B266C1C04CB6411FF29B5F0BAE8EEE4AD59E6DC94303510768C5078B80F2BDFB",
- "extended_unsigned_section_aes_key": "514F6E849E123136935E229F7A10FB84",
- "extended_unsigned_section_mic_hmac_key": "11005B42717C4D83E4388E61CA338BDBA186109CD6A472E17187564D2A0E0B9E",
- "key_seed": "86FF6DEA1F6789B0AB30B9E778371DE065B9A38A8594521D3A73B01E54542DBA",
- "legacy_ldt_key": "50BD7FDD495E0B0AE0B9ED61E4E2BF8F8FAC333013B36DD0F9AAD693E1BFF7AF63113B14DCC43A1DA61D50611AB321BB0BE2A20215F2A61B3A8455846E7106D3",
- "legacy_metadata_iv": "9167281EDDD6ED93FB6426B6",
- "legacy_metadata_key_hmac_key": "81DD629EE570E382662B4EC0442A92FDC299CC3C72B4B3D3EB0E01D7435BFE90"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2D5C",
- "expanded_salt": "1AB9C3B7AAF07F6E0045F986FA6F9BE9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B35092A50E8D2714CE5E8D2D92B7FBDD",
- "legacy_metadata_key": "4834AAE68B30BB21C513DC348DE8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B17A16DA505666801BC4CF1B3CC42E8E",
- "derived_salt_first_section_no_de": "43E2FFCFE1D900BB15B79EFD51E8EF82",
- "derived_salt_first_section_third_de": "FEDDAE636FC54E16FD60FD7428E9EF4E",
- "section_salt": "A0FE6852C45F1C1BFC94265715F60E74"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5AA16688DF61CC013822A255",
- "extended_signed_metadata_key_hmac_key": "4F1B2A21E40947F9291D89CBD340D3B982181F7EB3044E3E656E05A8D5847F0C",
- "extended_signed_section_aes_key": "B8FA141CE76A6CE2528BCB1827C22247",
- "extended_unsigned_metadata_key_hmac_key": "C54ABB459295B89CE13B7F2062F3F5D7AE90DB5674CC441182A5BB2C223599DE",
- "extended_unsigned_section_aes_key": "6B0C55992D88E3A02CA7F2318D11B6B9",
- "extended_unsigned_section_mic_hmac_key": "B9EF5092B7A1E042AE97339707D1259ECF018B76AEE8694559FED3376FBACEAC",
- "key_seed": "100D0BE998E9B8A0F222BCBA7D333F44482D0424D753AED05D815EBDFECB7B73",
- "legacy_ldt_key": "48F4AC6DE0EF72B8BA4F0D4F44EB398DCF218489C53C32818572129F4E816C7D35D16A1B32AE956ED6791C7EE9C2FA8BDE82340A4924DEB8DE0E41FFDFD4BAD9",
- "legacy_metadata_iv": "B83E2C5D5FB522D41ACDE8E5",
- "legacy_metadata_key_hmac_key": "B2BDD19F75B794A31C47EB75FEC24EA174C0108BC12580E76CBF47F33D591FF4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7FB0",
- "expanded_salt": "BB9EC2F5CC3716251B7B8FCC99BD5C2D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "52F0F1A4837378F90C71DCF66179BB8B",
- "legacy_metadata_key": "E10A4B4485869035540C4BCD444F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "340BCC5860E1338F39EABBF7A317E1AD",
- "derived_salt_first_section_no_de": "24536BCFAF80FE38EA1969B64E485AE0",
- "derived_salt_first_section_third_de": "8FDA56EC287590AAA0004685B6215B08",
- "section_salt": "5A2A6D63E70CFF581501FDE37C5C855B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D75771CE257FBAA4A718B8C4",
- "extended_signed_metadata_key_hmac_key": "9B5E44C6524A51C12C664753F0FF78D5EB8DD2F8B1687F0E867D9B1312589CCA",
- "extended_signed_section_aes_key": "9B373C3DA01332E6393C382F9EA0C321",
- "extended_unsigned_metadata_key_hmac_key": "133093EA9F2596EC058A359CE5CA8F0925F7DE8B1FFB65741A94AF7256469BEB",
- "extended_unsigned_section_aes_key": "CD674AF40FAA155C8963AE1DC64D3089",
- "extended_unsigned_section_mic_hmac_key": "A3EC723F7F48A761065DA005AC3563AD969178640A6CFF0226A52743AB415D6B",
- "key_seed": "F2A3D0FA5C6F843168AF2D5D72264C886AC462B294435659EF7866C8C52E67D5",
- "legacy_ldt_key": "DA0B498A1BB093DCAC88CA8C4478677ED4F3EAAD7E5F764ACE06573D95BB9DEA77A9F94F55D66C10EDCD3A5B3D4C739BFFDACD6B4F27ADB30153EC97CCFD24C6",
- "legacy_metadata_iv": "70227885F5A92687C05D6A6A",
- "legacy_metadata_key_hmac_key": "BD7335263FB0B7BB45A5F8692A5C54EDB2590D7BB505B1B8776B362C7CE304CD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "941A",
- "expanded_salt": "EA7DE486EC8813367262E2B75B65F629"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9E28CD276FAB576F85E4E62D99830CF7",
- "legacy_metadata_key": "790D084685340C90BC49D295497C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6FE11E10CD3FC11D96467875E0413540",
- "derived_salt_first_section_no_de": "1875E7E066906750F3D81FE203189F36",
- "derived_salt_first_section_third_de": "DB6EA218218ACC61AABB2829D5BBA88A",
- "section_salt": "7780AD9E7CFF53B999AC52C7C451AD0A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DEB2F55B12BB38C467BD363D",
- "extended_signed_metadata_key_hmac_key": "DF72B5F5492D2483A33507D761B833F93AA8C9C051BABB2E71B7DAFB2FF0DF7B",
- "extended_signed_section_aes_key": "6A9B50EA16352A57203A40C4C9C6DF93",
- "extended_unsigned_metadata_key_hmac_key": "1EC9EE063F776AF0B5DB4DF2C4DE1E96927C6A8047AA260F4789D39A14349FD6",
- "extended_unsigned_section_aes_key": "ACEA9F4797BEA18C53AC8987DB73FD6E",
- "extended_unsigned_section_mic_hmac_key": "42A6F895FCB246247DC3637D9B566ACE75BFDA2776B4A8C4590D90959E0D70ED",
- "key_seed": "E88DA4889EC8F16DB4DB6260B8D7C43273074A9E8D6C1221655BEC976416363F",
- "legacy_ldt_key": "DF9EF5B1297A838C0AA5189340B534E1E6821D5BFDD2018DAACF6E3874A55FBF86EA5D2FA3733B8A3F2CA7CC9447099775E4181A4E2E7E91075FA6D8CD4241B6",
- "legacy_metadata_iv": "6FC871819B20322A0F058519",
- "legacy_metadata_key_hmac_key": "871D5B50DF6FF0D217FA5450F8EFB352DAF3E5830E190EA1FCD3E48607632987"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BC2C",
- "expanded_salt": "23BAD00A6992B12D70FDDD82118BFFA6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "21C118B6810465F61FF4145FB8DF8DC3",
- "legacy_metadata_key": "8705A6A27C6A47BAF7D523D34E2B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "352684C205DD5A4DEAF8DFC913B0FC0B",
- "derived_salt_first_section_no_de": "C99B2A4E90FD87B707977765E97DA45E",
- "derived_salt_first_section_third_de": "F64F30A133152BC68364BAA068F6BC1F",
- "section_salt": "C0FCF28F85BE3B73609E7D628190F577"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "91F2A2D9C1C1D3E61AD715C0",
- "extended_signed_metadata_key_hmac_key": "7A08947AABEE4FEB2157EB8E375370A56861A3CE4E5CDF10B898B4A9C96F77D6",
- "extended_signed_section_aes_key": "6C539A17F8502E52918C9D89024B736A",
- "extended_unsigned_metadata_key_hmac_key": "C2D6ED419EE1C25ADA327B0F59A6E2C26B521DF9479453956B6922B9B8A6F488",
- "extended_unsigned_section_aes_key": "7430BFB1AA436F7B1BADC5C079287934",
- "extended_unsigned_section_mic_hmac_key": "677DE2E38183DA43C6F007AF4C2766F520CD57AE4383C9069C5104CEEC7CDA46",
- "key_seed": "B69137577C61AA33F225FED54C78FC60B187BDBB2D28A66454FDA6DC10BD7563",
- "legacy_ldt_key": "44C0730DC9DF30189DF8DC06F4E1203CDD79AAC42697A5DA5C782EDD49E44431BD8E1423DBF01AA6CC2B756D84D4EBE573ED60533E48C0F753EF8C701DD127FF",
- "legacy_metadata_iv": "C7DE814679B2AB6F606CB207",
- "legacy_metadata_key_hmac_key": "40E7A1C91699B7B20199F25142415853D8428097A7D933767BB9F63A49B779E8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2BE5",
- "expanded_salt": "8F1CD8B539E78B3761D6890860FD4615"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "496EB039FF6FD0838AF6454B20DF6D98",
- "legacy_metadata_key": "90DD4EF6C7183BF6ED2502B25611"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "83EC6ACFA17BD366435133E2E827A81B",
- "derived_salt_first_section_no_de": "C772730B8E67F218EFB6380956799802",
- "derived_salt_first_section_third_de": "22660E9B8F1D2F1FACB4F89DC329898D",
- "section_salt": "910B5D9BC89CA205E820FDA1F1F2E98B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1EE53D7EAAB6131165CC2FC3",
- "extended_signed_metadata_key_hmac_key": "B3DA85DA0B7B4B7B400558F6B344DE14C822FE0E50AF2C4C5120088B3030F688",
- "extended_signed_section_aes_key": "8F989E1DC49DF8060ED906177A27D98E",
- "extended_unsigned_metadata_key_hmac_key": "91FD4F95E1E782984841DBCA6C315183AA68178E2349A316038E150659792DF6",
- "extended_unsigned_section_aes_key": "B8911B42B71AA3632D7B8EF59CBAF35B",
- "extended_unsigned_section_mic_hmac_key": "1ED78A9AAFE61E24E0CFED11A3868A02E33A14B699C790AD7D9DE10681B91CB7",
- "key_seed": "6D9717ABB2071F8045F01B87125B2B269935D072635420AF45B6CCD234B6FD53",
- "legacy_ldt_key": "BB28C05CA52E4D31FA3BE8C38FB306E50E864972B8FBA0FF8A0C355F029B697B5EC605549C059D46529EE64A752BF563F8F16D3E759F390BB1874FDB2B608230",
- "legacy_metadata_iv": "06822F240FFB3CE14AB1CAB4",
- "legacy_metadata_key_hmac_key": "8161739AB9BD15C8B36BB1AB59BEE74468FDC3E4F343419D2407ABC95A9080FD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3588",
- "expanded_salt": "A346C7861DB33B732463BE98B5EDA523"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B01E6FC10ADADF5B37D201269EE2DDA9",
- "legacy_metadata_key": "E326ADAE99F287B12B3EF0336131"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E9EE60C6679844FCB1F2A09A3DF5AD53",
- "derived_salt_first_section_no_de": "D7D9A2D4A953D428F611C636F79CCB43",
- "derived_salt_first_section_third_de": "BA9175247D0CAF2AA307DDBF6210B1D0",
- "section_salt": "77E311311A24EE698AA7074AD401AE4B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FBCD361AE914BC5B6FDEC40D",
- "extended_signed_metadata_key_hmac_key": "95C8CECEAA1BA4B313ED35D398E288FCE6DF06247A4908ADE9C75F7BBCCD4C65",
- "extended_signed_section_aes_key": "FD39C0476DD7D2F996DB3C3B8928D6B0",
- "extended_unsigned_metadata_key_hmac_key": "E42C9199C97FEC0F6FF01CAB01968C7FBBA60445B96FB3DCFE09F57A3F04884B",
- "extended_unsigned_section_aes_key": "DA07CE2CEA2FF9B110544FCA51824A81",
- "extended_unsigned_section_mic_hmac_key": "E63AA955AFF9958FAFD96A3B238AF8B52DEA45635D8888C66D3DECCBC53FBD19",
- "key_seed": "E8387AD7E4D2F71817C9493207A26B08953211DCF65BB21D5BDADD41B049C81E",
- "legacy_ldt_key": "8522DF9C2808895634024F39A35806B6ED76F132E1C71AA53CE94A21C79B784106DC6011D239E3E0735882E8F2A0564DD7297CC4A17179F87E0FEB5AD79F2A35",
- "legacy_metadata_iv": "C1EDDFA7D56D27189BE8DE88",
- "legacy_metadata_key_hmac_key": "C66C6369F2C0F8EE98D8A304EECA95F8E02CF52044D55AEBBAEF303D97E30DE4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "693B",
- "expanded_salt": "12C95BF6E1E3B963FA5B6F3239E7BCAA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "30FF4A2594458F404CE5525BB931CD88",
- "legacy_metadata_key": "1DEF7D48C94FCEF67C6415A9CCD2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6CD9BFF39D186E84C58D4A3FB50B92A1",
- "derived_salt_first_section_no_de": "AFBB73F3E11928E8196F186E5AF77A99",
- "derived_salt_first_section_third_de": "85D17E505FB146BD71E43D9D253017E6",
- "section_salt": "AD49DEE146F15168F1DC727C8C50A620"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "873F3C5369BC79575F63E1EF",
- "extended_signed_metadata_key_hmac_key": "FA64D8EEB9537092970BD910362ECF11C3711CD3B480AEAE94F002743D818EBF",
- "extended_signed_section_aes_key": "34E743BF11EDC5CD144ACCB464C7E381",
- "extended_unsigned_metadata_key_hmac_key": "AE424581AC28F1574BFEA04B1BEAFBBFC3EEEC80778EB58B3418D4E1C753866E",
- "extended_unsigned_section_aes_key": "30D52178D97AD71F472899E696334F37",
- "extended_unsigned_section_mic_hmac_key": "180F4F295BC8B442C1BB2277F940F6DBD113673FCE497594DDE5B3C06D45551B",
- "key_seed": "99C213F9A8E7D1F393F6C7000981A9CB2EA28C95F02076B1B8F500436904C536",
- "legacy_ldt_key": "66CDBDE12AC993633BCC6E7F7C6362B118B8F53E08DF9C66C508A0380ED2D70804F063FBDA115DAD37252791D7928E1B3179F252E6BF36E9A94CF76C3A3BBACE",
- "legacy_metadata_iv": "E0B4D8CC4D7E1909E4499AE8",
- "legacy_metadata_key_hmac_key": "DDEB95338A5AF52D723487B22F619EE3C6AF9F189E14D8A477516226AB77BBDD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2946",
- "expanded_salt": "921224BAB4580E9C3C3315A546F96C07"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "904E8FCE466830D168B0FC649A940309",
- "legacy_metadata_key": "86D7B3D18E29392DF826F4F3CD67"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5EB2328AF1AAB304A5B53D014E667D3F",
- "derived_salt_first_section_no_de": "C58D089C7CCB88B56976A1D8F306C336",
- "derived_salt_first_section_third_de": "C8B12784AC97A620C46B5C7092C9C06C",
- "section_salt": "90FFF1F4806E77315ACF749E24992767"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4D95E445425D530AAE14CD36",
- "extended_signed_metadata_key_hmac_key": "F621D788D480334B7421713BE1A950E15F3BE9283499087742AD0504253966E2",
- "extended_signed_section_aes_key": "57CD26377545DFEFCF9E5F8EE34FE5D7",
- "extended_unsigned_metadata_key_hmac_key": "F0E0E3F8B9AF5CAF64039DD87720548C06904848C3782AE609A1B0322646E61D",
- "extended_unsigned_section_aes_key": "AC2D1A8FD77AD0DF2DBB07EB158423B7",
- "extended_unsigned_section_mic_hmac_key": "5E0D79BA79840D0CB055489616BA0C55EB5AEA2F984268EC8A8C90FCD6790933",
- "key_seed": "FAA3A93DBAC1945B1E7CAE0055F3EA4D2D1C343DC9F24E737BBF2C2CCFB2815D",
- "legacy_ldt_key": "5A0A924ECFDE6D6EC0828BB240B35692C58D800D454174BEB740B7FBFF94673DD3F239FF72990BA03C0935E6B3705348F1F3F40CC3380E1D265D523655C911B0",
- "legacy_metadata_iv": "502C05B5ED7A3B1AF75842A3",
- "legacy_metadata_key_hmac_key": "158A6412FC6E1B493C54B6D04DB8D75C9D910990B742404EA180027D3460A865"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CE91",
- "expanded_salt": "47B50AC4AEF74203BA5FDE6696DF369C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "34685C0E1FC1C1DE21B735779895F25E",
- "legacy_metadata_key": "33BEE89206E41F86DBFEA2E37F55"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6BFC33E2FC6623161D2E472F6F361D2B",
- "derived_salt_first_section_no_de": "40CE6987E172A0A99D681A49BF324A38",
- "derived_salt_first_section_third_de": "7D93592B681B9089713935FF21384548",
- "section_salt": "C57A849C26704B327E1AD25E1D9C849E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "24557B3BE3C3FB163937B152",
- "extended_signed_metadata_key_hmac_key": "09D7EE414F90C2F4A9B666BED17A864C8A93557A8A994D0BF71A6F8F39A51CA6",
- "extended_signed_section_aes_key": "A2764C5C9262F141B684B9441F76B8E5",
- "extended_unsigned_metadata_key_hmac_key": "6B9294218C31A24047DF01071EBDA2A1C3FB78DFD965D2D429577E120EFEF28D",
- "extended_unsigned_section_aes_key": "FFBDA69C54CD0AC867D11B3D5FE1ED1B",
- "extended_unsigned_section_mic_hmac_key": "DDE46BE09E2444BC34F957ED5C81EFC4880F6F9F99846FF9119C0C16A1CB8D28",
- "key_seed": "ED55C4221D782B004126862CA4DB248860C3142C960CB6D2F62F39345D3A2A8E",
- "legacy_ldt_key": "C453FA4D86D5C14820F2E6D9C2571B452B7A3314CD8A5341229BC20397CA5C02CE2F5FE03F3E2C5EA51138A78272A82082CFF412E96E3129B9930ED57776D818",
- "legacy_metadata_iv": "E9C43A6B126D5AA28A6862CF",
- "legacy_metadata_key_hmac_key": "29AC308D579FBB69A8E40338B1F82BFA42BD3116CA1CE890F130A42A7E3E0899"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1343",
- "expanded_salt": "F03049E573E0F96D91B2A300F2AC6A97"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9078B7BD38F6465D15A715BDB5937C80",
- "legacy_metadata_key": "7955C9B71E727967DE6E429193DB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "45248C62F12D78E6B43D09E406913986",
- "derived_salt_first_section_no_de": "AC983BEE131D04A157FB021FE89FE49A",
- "derived_salt_first_section_third_de": "5A28D3B093FEE395FDC8B3F94BCC34EF",
- "section_salt": "0226607B97D176CC13C67946C4EF18E8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "61DD60791958D673C0768E85",
- "extended_signed_metadata_key_hmac_key": "072045A46148FAD215985579FEBAC7A8806DA36F61B5654E3857B5C8C7BF0783",
- "extended_signed_section_aes_key": "0DF0952767F6D8A8D4252C3C02AFC18F",
- "extended_unsigned_metadata_key_hmac_key": "92CDF9B3AC5FBB1951A870F229B561EBBAEC427671B143013D61041D40195CB5",
- "extended_unsigned_section_aes_key": "13051C6A1B495A500B7E25F3EC76C4CF",
- "extended_unsigned_section_mic_hmac_key": "620615F606FDD6E308C7914C9E1A9D1CAFA4ABF660FC2ED3E98E3F3CAC37193C",
- "key_seed": "1BF337CD1EADD9FD8BFE7FE83FA987D051A7722FF5B78DFB1A7B722FFE44A156",
- "legacy_ldt_key": "B40DC6AC71AFE84E1A6CEF344DBFB6A68098F637DEB84E55A4F2FDC7F547B65E942730FAA08FCDF5ED651F88AC24D87D544826E99A5932D462D8824794EB0610",
- "legacy_metadata_iv": "8C2D4C53E4D11C94E61B030B",
- "legacy_metadata_key_hmac_key": "E4EF388394E0C84078933C66AD58C271C472FE7A35F386D4C889A6F2468AF65F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "140E",
- "expanded_salt": "3AD32AA7A7A2B464B5B79DE4C493DD00"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C27E5656232D334896A3D0FD95A7AC08",
- "legacy_metadata_key": "34F411B0749D0EBB2F2D1D5C6131"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A01ADD3170476ECA6B68F23098586A38",
- "derived_salt_first_section_no_de": "2372A055FE67552B8A57F11ECD177ED6",
- "derived_salt_first_section_third_de": "D25372344875A3C4F64438028F8B14A5",
- "section_salt": "47073506836207A281C5E8BCF640477A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D2BDE437E6341517C2ACEDF0",
- "extended_signed_metadata_key_hmac_key": "A3148A69AE426D27FEA1133F446032C1B82D7A0E64762E4841248D44F6546375",
- "extended_signed_section_aes_key": "8260763CAB1B289626E4B0E4AC10C950",
- "extended_unsigned_metadata_key_hmac_key": "D92FFA31A365B10AC63AEEE52D516AF98CAEE85D8071492E5B3FE33E37BC22D0",
- "extended_unsigned_section_aes_key": "46519ABE2134AE66ABCD8B34FEF42574",
- "extended_unsigned_section_mic_hmac_key": "88F0BC8750D6BE54D7A76C9D86B46B42BD0D4F8B32C825CE0C88C785454E9529",
- "key_seed": "177975BA00E477346FFBA109152F1C7C3C96CFE185B3D978B785E0C9F2D6D431",
- "legacy_ldt_key": "8C72A3BC9669B82E801346C6546C278F1D28498F513F8B0F9296EE5C6E56E39BCD57F9D5693DCA74A618D4AD981DD3712F9177A5A28381BB3CCF1FAAFD33ECE0",
- "legacy_metadata_iv": "446698791325E2649DDB46B1",
- "legacy_metadata_key_hmac_key": "3655A4FCA58B1334BD65A7874DF08915872646F8B1AF91BDDD526ED04BE60CF9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B037",
- "expanded_salt": "46162B19920BCC6E34DDE6FB2D1C0DDC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9C5F00F9C99390CEA160E26A14C4C1D2",
- "legacy_metadata_key": "30A2818193CC5667A5E954C46B74"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "17FF3AD5A729C2A067E112F66F9C497B",
- "derived_salt_first_section_no_de": "0C7FB86CD203BE18CCC31B28B6AC77A8",
- "derived_salt_first_section_third_de": "623C19C1D74E5D7B3CE3848878D32A58",
- "section_salt": "DC3F1B12D534CECC64B58303290C91D8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EAC7ACC562AA851EE331590E",
- "extended_signed_metadata_key_hmac_key": "6CE585201333A862CC8CD8A611DD626F3458D3C61789585208ABDCE2E5EA2BA3",
- "extended_signed_section_aes_key": "2C4CD629F53FD5955F8B10066FC91814",
- "extended_unsigned_metadata_key_hmac_key": "D389E7B62C77F6E2B7B800D2DA8B23F64AAAEED7F02B6E5204672AA0F69A119B",
- "extended_unsigned_section_aes_key": "22B91B2DC0FAE8428A3130C3BBBBC0C9",
- "extended_unsigned_section_mic_hmac_key": "D1B0DDDDDE0BB2AE12F92D4852AE10D996B60CE36B5556786BBF83CF292CE6EA",
- "key_seed": "CE1E9E86659BA08898845C680AF17F9DAD00B9E2635D111CF5343696C4166A13",
- "legacy_ldt_key": "3ECF3392A9A4F0D5C6313ADD3203805E5CFEDA0782D510F6266F4E2F108531DDA99FD468B2FD1F0755F3F504D47C9FC90F3F5DD1CDE371E5C051880BCD938133",
- "legacy_metadata_iv": "00521539854CAFA16DA5BE29",
- "legacy_metadata_key_hmac_key": "259384580690A60FD7194F5C69022FE7EB0B94A80228444EFF73E75C273C7DE3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "14F6",
- "expanded_salt": "143630904EB2670F18FB33759BAC116E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B5208CA95620B487A6E4A26D1C0CC6E0",
- "legacy_metadata_key": "9475FD66763260D56B04A5897D94"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6BE220246072A78CAF2F065823A01797",
- "derived_salt_first_section_no_de": "BC2EAC0A37B7E682CE0A4A15A2995B3D",
- "derived_salt_first_section_third_de": "69868D2B85AD7A780E438B783251E2CE",
- "section_salt": "3918771068B5EFB6E8FF93940872680B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "21A111F4CCF8F88A1A7DDACE",
- "extended_signed_metadata_key_hmac_key": "52CD841B689F5923ACACDA1297AEF0A473A4947E1A60A21CD03FA86CAFA6A078",
- "extended_signed_section_aes_key": "3D403E4A8A7B0613FDB8B21FAABE99D9",
- "extended_unsigned_metadata_key_hmac_key": "01688E4279E16341D0B6854DE5073BA63BB8042E347225FF9D53C90978DF02B4",
- "extended_unsigned_section_aes_key": "C8A6AD796B8279C670F9F5A37536DC72",
- "extended_unsigned_section_mic_hmac_key": "2D0417F169E29EAE2238275204929A3098DF0E865F87FC480E5AA0BE5B2660AF",
- "key_seed": "D42AC7D8A4027E0796FA00EEFB39463D3632B9517A514C4B435C64C3718FA818",
- "legacy_ldt_key": "23908562C9F0A7154982107F25250396D483CD52F3EC4E5F44DBC1EA88E1003880B89F3554923E665F3567F93F6521252AEAA7850AFD4941DEF9AE9CC8152B5B",
- "legacy_metadata_iv": "80F5237C0CD58E024C4C64AD",
- "legacy_metadata_key_hmac_key": "B2F437A0F3E04B8904226351ACCE9BC467CAB228566F6D3AB52CBE3B8AEE9A27"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A692",
- "expanded_salt": "C7864ABBACA1766ADD9C43D78D99A812"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0ADE22C631003FAA3EABA1E7D2668796",
- "legacy_metadata_key": "FB2CC7E8745FEFBE645159E116B4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1BB3C44CA0AB70C5C0C0C0CC14ADF260",
- "derived_salt_first_section_no_de": "7338C90FAE2E33577F623F150A68E6A3",
- "derived_salt_first_section_third_de": "C082EC191DC9AAD0E8195F1E7C5A9AC6",
- "section_salt": "2211FE5554FFD90BD766B7B41449F0DC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C3CA94F4C3D40FA66A4396E9",
- "extended_signed_metadata_key_hmac_key": "07FDA2D0A7D286F2F7A0269145F0C5A1ACFA9FB3B0918A8A47C06D714807EF89",
- "extended_signed_section_aes_key": "355E480B5273C0B6049F4E3A45EB210C",
- "extended_unsigned_metadata_key_hmac_key": "46A9E3CF8473B561EE69B24556C9261CDA3203ADF58BC72BAAFB889AE12F485D",
- "extended_unsigned_section_aes_key": "53FC40B1D7A397CE7A375F02FDACFF7C",
- "extended_unsigned_section_mic_hmac_key": "95A68454BA3DF225CC5E3696DF21C332061A8D1E20E3D84CD7A7353814022E7A",
- "key_seed": "E362CE6F690939D77EBAF95060C0BCFC2554A2B9C8088244966435C8748CBF60",
- "legacy_ldt_key": "064896E9EF4D304720886E9A40F76039FE07F24275C56F1BB5134F5078D6C94CF0535B4DDEB32E0F8A7EDEEF10348DFA328572C5145552B63584F865C1E73E47",
- "legacy_metadata_iv": "61885C4910F5F7D30D1A325D",
- "legacy_metadata_key_hmac_key": "F3E4CDB870AAA794BFF43995C8E344DF02AF6F14D96FD36CF39FE90C94756E68"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4A68",
- "expanded_salt": "3FEEA655AD7C2F37B0A8A3F1A9CBD434"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1CB5CE215B5F6870D2AF94B63D966892",
- "legacy_metadata_key": "6127D5C2E899F7D26F2F3805B750"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D7213227926C6F86A90E3DB33965A284",
- "derived_salt_first_section_no_de": "E2128DF62AA4D6146D2BCD196D7A4C87",
- "derived_salt_first_section_third_de": "05CFAC71DA0C38998F601A969FABBBC3",
- "section_salt": "CE51008565D967F1CF9461B647BD3DF0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "253321995586368F668C3AED",
- "extended_signed_metadata_key_hmac_key": "7BBA1ED71C18567C2BE7B8902673163F9485235A8FC64008267BFF895AF58709",
- "extended_signed_section_aes_key": "5348D477DDC1DEB9D687EF867B1BF520",
- "extended_unsigned_metadata_key_hmac_key": "71F0FFC3B7465B749317C24268C752003071DF9F89105A4C8F59C96E1DFDEE7D",
- "extended_unsigned_section_aes_key": "DB8B88A699415EC3BC5060859438B859",
- "extended_unsigned_section_mic_hmac_key": "45899E9ACF60629BCB4E1943A2E3C5293D8859B6D0FC51B53DCDAB76EFE7AEA4",
- "key_seed": "6B8D7FDC6AD96D6F6297C864AE24533E1784C8573D33D9C381B3F7009C1B9BEF",
- "legacy_ldt_key": "7A95F0A68E6D5929A0B56B2E05DA3FAB57285C73F59D790D962AEE38EDC001171E04336E52B3164A28DB49F4D38884B7FCBDAD13EA8AA823313FC28CFFB808F1",
- "legacy_metadata_iv": "0E9470C2DD1BD931D3315441",
- "legacy_metadata_key_hmac_key": "FDDB501AA8C796A2B182C75395D0F98A71CF63CE8A789F6837BBEDE1C0A97427"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B1FB",
- "expanded_salt": "59DF07FA10A8C99060330759CC207748"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8D93332F75A321321A4D95177C7324AB",
- "legacy_metadata_key": "1DE6A21609A754AEDCDAD6014DB7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DE9186A2C300ED45BB3E18219A04FDAD",
- "derived_salt_first_section_no_de": "CC26AD376EAFE0C861851E46EDDB2D6A",
- "derived_salt_first_section_third_de": "3ACF2A447DC016ED9711AFB347DE5211",
- "section_salt": "45B9D7CD6417F5CA5746C6FE32107D26"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B5A5249E492D44B8A5B1531A",
- "extended_signed_metadata_key_hmac_key": "D02A0F9B8E7C731E703FA66C583AE21DFE9DB55D7E493B3508787415BADAD4BE",
- "extended_signed_section_aes_key": "2F6B469C60D8E7FCD6A7643557EE4B28",
- "extended_unsigned_metadata_key_hmac_key": "7AB422FC3B07937F9D4B88442285FD1752889C53A355029C558F4CB7C1EA830C",
- "extended_unsigned_section_aes_key": "80CB8D997B1948F3DD8B9C9516F79D54",
- "extended_unsigned_section_mic_hmac_key": "01681D42DA913E7C0728BAC63AE58A18716872FAD4F60D6A9EFE0F4F23111755",
- "key_seed": "C76BCA0326BB38D4E5A3B10D1D718589B9AC818B23EBDFF1A101E4AD6D8D5D1C",
- "legacy_ldt_key": "AA4497423E8A580DEEC1DD4FD82DF5F81570583972BF704ADF5BBCA71313C5FB54EC732B5B58EA735419D858E1AD3233471A589F7DA10443369AC4720E9CCF25",
- "legacy_metadata_iv": "0E29E2DB902150ADA1F5C715",
- "legacy_metadata_key_hmac_key": "AB2FD4F90AB9840C7B228BD366376C0A8A7B238DAB36825749B2DD066DEA1531"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "95AA",
- "expanded_salt": "AAEE500F5643CD02181FDC32C6B862C3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E3C76C21F282ABB1005687F31FBC2545",
- "legacy_metadata_key": "EE7A183B57C9F4E217B6DE5BD8B6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "69D12446AA5A50E914FEEEED8EEB1F00",
- "derived_salt_first_section_no_de": "A1775AFB5704802B1FFB3B18D29C7195",
- "derived_salt_first_section_third_de": "94A831FDB169737016B766C1B2896D13",
- "section_salt": "A6F4E540D1164317F08265E20D96257A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "033FB33CBFB93AE5A5BCA0A1",
- "extended_signed_metadata_key_hmac_key": "0716F3FB6E93EAA408C708A2719BEF049893BCB988491C001B304F4F6AF570AA",
- "extended_signed_section_aes_key": "F3753C2B1F5F653B2DCAD896C9F22BAF",
- "extended_unsigned_metadata_key_hmac_key": "D99A9452E3179A8C1FEE4957479C0858F6C4D3B1F33500AEB46610CAD449E0E1",
- "extended_unsigned_section_aes_key": "EC569526CA2868D8018958C6BDE0E40C",
- "extended_unsigned_section_mic_hmac_key": "484A0155520560B24880DA7CCE5FDA59249F3B3B4CD48DB10B1FAE409E820A6C",
- "key_seed": "2E9E88A8917662CE457BEDDB6816FE615B0D240049E7A5CB384D1E7BD2090B50",
- "legacy_ldt_key": "741AE38030F88B0BFDD386970BEC7A47F2490BF2A1545F45A8A07CDAC169EB49326F2C679FA6EA80E5514DBD6ABD27BB429FA7262BB7D9C84F8C0820FBA3E7A8",
- "legacy_metadata_iv": "567FAC857B8B88252BC505E5",
- "legacy_metadata_key_hmac_key": "0C2EBA0D6BAE66E17DDA51FEE4A578B4323B870B13E0A6ED4653537EF707285D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "94DF",
- "expanded_salt": "0866204A09EE44BC3A6D35C7CD8E3922"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1127038A68E62320EDFAA505936F5059",
- "legacy_metadata_key": "578E689A12AFFB9B71585507F7C5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3ED9F563FF815BDBA727C28682E300A3",
- "derived_salt_first_section_no_de": "C74ACE6A90833CC4C098A2071D2CC645",
- "derived_salt_first_section_third_de": "F1F65FDC12E03AA07881DFEFAA7387C8",
- "section_salt": "67FBD147AC31F6DDF9FE6A41273C2CA7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3F7B1456399DFAB544E2340D",
- "extended_signed_metadata_key_hmac_key": "19C33F08B24F36AFDA701495F15F42EF8CCD1129F1795235D7A706C3B7347B39",
- "extended_signed_section_aes_key": "3158C513DD15DC57DDCAC562BC5453CD",
- "extended_unsigned_metadata_key_hmac_key": "98EEFE216CD1189D632A814DF2BDAEFAE4E77CF939C58A63B9CB0248AEDB266B",
- "extended_unsigned_section_aes_key": "86C9B7EDBF1C992DEE80F3FEC4E1F50E",
- "extended_unsigned_section_mic_hmac_key": "57C3D99FF6F50D98162F60C8B542B7CF2148DE4EDB0655E3D701C688C7320E67",
- "key_seed": "790EB3191EB4D141EC5C60F0AFF4603530D1299CEB4DF327C4ECFD55C566670D",
- "legacy_ldt_key": "05484018D7F68FF03244A1D16106F073AC36C280ABE094B1762535F508CEBCAE92FC55DDD93D83CB027CC2ADCE9E355EB892985EC8C02B1ABE8BAC1027DB37D8",
- "legacy_metadata_iv": "A96101B5721A67B4525465D6",
- "legacy_metadata_key_hmac_key": "2E9969AC1672E12ABC7CA537A776AFB3A0ECE56E83350115E57AD6E30C23421F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5800",
- "expanded_salt": "F52F78645D6D6F463B480E154A78B1B3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C55F09054FC0B54C1F24BE42ECBACA9A",
- "legacy_metadata_key": "D9E4617296842BD9CCA3F07A09C9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1A8FC81DBA2B1E9FA80724E4B3322A30",
- "derived_salt_first_section_no_de": "DFD79E2C87AB8A338F8B00824F248141",
- "derived_salt_first_section_third_de": "8155BD4E6724437106924520FA01FAF3",
- "section_salt": "9D8303727BE114D13BDBAAD50423E610"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "129B8D5214D6CBB3B1189E8B",
- "extended_signed_metadata_key_hmac_key": "0DEC1BF961944D8223BF4B2C311A84BE8220829D7C7FF7EFE989AC1F87F6E935",
- "extended_signed_section_aes_key": "458C1E1E11A6F83141E7BD6A693B81C4",
- "extended_unsigned_metadata_key_hmac_key": "D30A145F1DD4BA9D66A988FA05004CFD829F3A215FE5629FABB5EC2F062D1CCC",
- "extended_unsigned_section_aes_key": "228181B2CFA48E6A22106DAF8C2D3CA1",
- "extended_unsigned_section_mic_hmac_key": "EBD569D2DF047FC47200073E1C2BBE8C90EECF057311E6D7D99F1D3B5AB0DA1A",
- "key_seed": "CCCE2A0082023C24047D39D6F12D1B78DAC5C6478A8672CF514AC15F1EC0CEE1",
- "legacy_ldt_key": "7CFA3EA4DC5D0BFBE0993B18F457F1523FCB958686A64E85FF79F9822E7E9F5F5F3FFE2B2591CE0478F85363532D46D7CEAA234BF27F33E9C41DB58A12B78CFA",
- "legacy_metadata_iv": "1B2B8E859B9AEC168DF3648A",
- "legacy_metadata_key_hmac_key": "D32D23D9BED348F1C3FC1F6891B1635343F4C6E6C2BC1D2470494790C3CB10BD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B8B5",
- "expanded_salt": "AA64B0635B0F48634B72607E070FBEAD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B0EC6D3C19D71A0FE380524CD0870343",
- "legacy_metadata_key": "10A6FFC911BC8411ECDDE18FA2A6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "17DED6F0AD5634723F197FE0CCBE0030",
- "derived_salt_first_section_no_de": "A74CAF52D1237C10EA7B51FBC72F5749",
- "derived_salt_first_section_third_de": "CF23D56F534F99A371DA3079980857BE",
- "section_salt": "1BD84BEF1B3D0C79979DCC7B4ED8F03D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "961E523431A3584EABD9DD3F",
- "extended_signed_metadata_key_hmac_key": "F0FC8710C51977513E71A6E48ECDAA8D76DB059D681C49D9C1EBF9DE178E9E85",
- "extended_signed_section_aes_key": "B9646FF817BDC51BF5AF7F21B02A9B90",
- "extended_unsigned_metadata_key_hmac_key": "FEB3E6BBB8332E75BB1B85C6463E2233108511A386E6B50D6FB12B4CD1604333",
- "extended_unsigned_section_aes_key": "FC7A130BFBCED9A1EBFE321B1922D135",
- "extended_unsigned_section_mic_hmac_key": "28716E0B1CBC286150D0D2D495F586BE5009582CAF0BBFFF1613B00ADDD16958",
- "key_seed": "126455F319A9F21B61C7276F6411F96CFDFF72D85195E8A88DA6B502B9057ECD",
- "legacy_ldt_key": "A0F18156D9D1F5ED7E41F626FA0023CD08192189841B3B54B71BBDEDFABD4389918643866DB237A1E8C18ADF09CC6828F5A369C4E011C7AD06590113ABEA5213",
- "legacy_metadata_iv": "7C1E113B43F465039A7A4891",
- "legacy_metadata_key_hmac_key": "8E3B238C99BE3510190996314018E59B931FB7BA2D2EA2EBF598E792586FD423"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E0FD",
- "expanded_salt": "A54BA4C6C75898DD458FDD8ADCAF028B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "95DC70AFF9FDB7132CD398A9ABE06483",
- "legacy_metadata_key": "EB1064D5CF7013E4D786CA56D70C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4336B3E11543E044B9833B993285783A",
- "derived_salt_first_section_no_de": "1CCD34CBCD4C66EBF735728BB80A1042",
- "derived_salt_first_section_third_de": "67D67D306A1EEDF5DA9C57CD2667C455",
- "section_salt": "03B3ED798C4D713295F2751D0FB952A7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6CDAA2C58809EDCAA2C1A182",
- "extended_signed_metadata_key_hmac_key": "3E549A1C785B9C5F90C377A23020549E74A146C78C7A556D7438536A94D6D9D2",
- "extended_signed_section_aes_key": "B6AD24080B1167D121B8ACCE40285E37",
- "extended_unsigned_metadata_key_hmac_key": "57FE80E489BFF53163CDB2781775DF884DF5A634BD06CFCAEDA5A764C1C68C25",
- "extended_unsigned_section_aes_key": "2D7FE25638F7792AED8913C82E1A7D3F",
- "extended_unsigned_section_mic_hmac_key": "F8661ABD8C7B930C215149A72634C13C478CB759546B03C516BFE40F46586148",
- "key_seed": "1AC4AB9E5599DAD25DD7DF72DCAE06A5BBB1FDF94F478C9C591151D59D4C85BF",
- "legacy_ldt_key": "2F7F14470FE04E40A443DB6BD9DF7177D5DA8749EE6ECEE23220330E6BFB60B222724EEF2884A58629427768FFB7C387FF63CAD4AE9E659C2FEC8EB990996910",
- "legacy_metadata_iv": "163AA4B49573DB08BF99E635",
- "legacy_metadata_key_hmac_key": "BF63431CA89912C768E76BD03E13F196A06251DBA553CC826E40D083DE14C8C6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6E1C",
- "expanded_salt": "B1CDEB7AA4E65F2597157BBE4ADE684F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0475B5E054B84D83464F75D99B4D0F4C",
- "legacy_metadata_key": "E3F3F3A4A27929078BC52BC6A9E9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "863E74C7FF850E950C49A2BDCAC26A81",
- "derived_salt_first_section_no_de": "DAD4BB9B339D6F975653E28D24A3616E",
- "derived_salt_first_section_third_de": "9F5CA32E764E31AF2C40D50EEF99DC36",
- "section_salt": "7AC57B619FA34030DFC6B002AD359C7A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "322A30B8F8311868332AABE0",
- "extended_signed_metadata_key_hmac_key": "34C55C42EBFEE9185327BB711A099427552C0D23CEDCEDDA7429F7B46BDE1868",
- "extended_signed_section_aes_key": "CF23D76DA543D999290E67252DDF3260",
- "extended_unsigned_metadata_key_hmac_key": "B57306E3F393B4528643CCB96E20B3177B8769F607402A026A54B7DE1F84B3E3",
- "extended_unsigned_section_aes_key": "37EAABD6A5744FCA33E0E57642740BD5",
- "extended_unsigned_section_mic_hmac_key": "DEB226C8C5041B055163C216B014245DA58186D3E0C06AA679807D0A96DECCF4",
- "key_seed": "7BAC6A8F1B444EF3AD3F978AF7645F980799BD03C69B32729AB110AED1D1F01E",
- "legacy_ldt_key": "D5C33B4213EF1D26B66403AE3DCA50A45C05B4BAC7E64635967129A4E279D9FBDA6CA849B2923E1B421DEB8DFD8EAAFA17C45259D5B36DED0F692929F19E1495",
- "legacy_metadata_iv": "01231CF9DE56EC8F1B4F7519",
- "legacy_metadata_key_hmac_key": "6DD2592C539ABF9A4FA20216BA3700539DD9F2AE7B810A6D3E0495338FC9C570"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5353",
- "expanded_salt": "7A0FDBD958A74617899C7D10F26F2CAE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "030629409F6F2AD329C7F19537365087",
- "legacy_metadata_key": "ED51A7FD40D3AFA19FB31DFEB6C9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FDEE2797D68BF240E2721DA383B373B2",
- "derived_salt_first_section_no_de": "64F6A88CED71588D485A7DCB5C391622",
- "derived_salt_first_section_third_de": "D09204FCEB2771E734E85F8C335585DC",
- "section_salt": "8C791752A0D1F94F8D2B0C6801A582A7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0E96CAD45EAEE40C0E2CDB0C",
- "extended_signed_metadata_key_hmac_key": "5E76C1CEA61038E24AF3CBA187F62784622DDDA08D68B188E93EA10D7FA95F48",
- "extended_signed_section_aes_key": "583843F06308978451D031EBADC06F2C",
- "extended_unsigned_metadata_key_hmac_key": "BF2E708C07C46470146CA9D04DB4D60D021130C82CB661F78787DA1853CC3EAD",
- "extended_unsigned_section_aes_key": "F17C945857C2235BF4FEA1686568264F",
- "extended_unsigned_section_mic_hmac_key": "2A2E42D9C6DD44A66CA7FE532CF7A4C5C9C2DD3756B949114F9B7EE45455DCDA",
- "key_seed": "645D82C18D0DACF66F437AC9D0F3ECAA33477D341AFF3A900056620570B3A74F",
- "legacy_ldt_key": "1BC49E510E8E61707FB0E58BA77300F494F1696F40794B47CEE86DD12B22ABADD1D40EEE0C8705744FA17CA46BD3DC98E7C86899E04DB902AB9A6492B235696F",
- "legacy_metadata_iv": "882BF1043FB06059C9127472",
- "legacy_metadata_key_hmac_key": "79AE88AACF3408AEA617EB9FA017A243A49B7E38D105F0BA4B8E095714BB6B20"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0323",
- "expanded_salt": "E15C6E7E35DC5DEE7D3663A75820C75B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CFBC900A07380F954CEA1D4DEDBF514B",
- "legacy_metadata_key": "F140C6B798D26851357AAC85C655"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D9BCEF31509FF959170C8AEC40B4DBA8",
- "derived_salt_first_section_no_de": "546ABE2F8D6E0B61F800E2C55B819C84",
- "derived_salt_first_section_third_de": "04E4AF16C2D9970E67F6822D204FF470",
- "section_salt": "EDD343E4EA8CD81F9F539B966B2E73F0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9D573E542FC94B5471BC9C58",
- "extended_signed_metadata_key_hmac_key": "73F3163D2EDB41CFBFF6B2A6C1C204245272DD89E68559072A57EF4318905DE4",
- "extended_signed_section_aes_key": "4498CA68332F0BE3EE1D7F6F0591CE08",
- "extended_unsigned_metadata_key_hmac_key": "4C10D3B71F5EA4430F20F522AFD5739C6EDCDDC9B5BA06170C66F8C6EE375F77",
- "extended_unsigned_section_aes_key": "760704B92122F2FEE54773A63DD6EE55",
- "extended_unsigned_section_mic_hmac_key": "FA9BE6C57364FF97EFB15D9D2D2AAF46BBFAF626D87195D619222068B6CC6708",
- "key_seed": "4D49CADB30D1022834CD7678AFAAA0F762CF83150569007F1DDBDE5BBCC5070F",
- "legacy_ldt_key": "579B0C30541F650151CCCC4950D592147B012C17A6E7A40679E18091164FBCF17B8B681334F4283AB24573FBBDD47CAEE8A3801DD8722EE3159B55BFAA71E18E",
- "legacy_metadata_iv": "79CAC8329DC92AE88C183EA3",
- "legacy_metadata_key_hmac_key": "2887D410E5DAF7E16C57C0BC9043076CEE6F3ACE0A1A4A8D8D595722B6511F4E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6333",
- "expanded_salt": "6E1BE58D87E4A8B4BA24E6C658DA48C6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "05F31ED782C539A170B510876E3813AA",
- "legacy_metadata_key": "7C53D88BF74D71E01E49D5FA38F6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "489CBE3F9C853302F51C3613FA01EEF4",
- "derived_salt_first_section_no_de": "7BA9901DE1A10F5528F3B47EE1B8C0E5",
- "derived_salt_first_section_third_de": "4BB10F4F48281F589FFD182B1B8F3ACC",
- "section_salt": "A081282CDDD7B90279620F477783C73F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C8B5140B94485AE5871EE570",
- "extended_signed_metadata_key_hmac_key": "83B81C17AC80F92EED5A819D6916BD9A013493B2288557820C7D4CE9A8534A52",
- "extended_signed_section_aes_key": "5C3C7843A1B582F12D9E74CD66D7612D",
- "extended_unsigned_metadata_key_hmac_key": "D86060755A8BD8AC685840777303AC521B28EDE32B4E5B9119159B8AE2D8D53B",
- "extended_unsigned_section_aes_key": "132371529E5E497F9173CA117062FA04",
- "extended_unsigned_section_mic_hmac_key": "7FF65FFFB2881D1820F3F1712A3650754FED830D1D1A7EFA76A22BF1CDB17124",
- "key_seed": "005AE69C6E31377AF75C3493FD5D29ACA282CA2F6579482A245606BDEAE0A176",
- "legacy_ldt_key": "6F0EFC0ED2F7FCC7C6ED6507BCFD5574A7E3207196DF6990D7584DCD4D63B7FCAB11ED5E8C1B7BFE2913A13BF96DD73FABEE1B8446ACF5450121A465E943A7AC",
- "legacy_metadata_iv": "A63AC9E0D0AF2FB7877C2A92",
- "legacy_metadata_key_hmac_key": "13AF60EDE32E254AAB220C6C8795C26F623B3A61E7A88DD1E531764F82C5D209"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3684",
- "expanded_salt": "C19976D4F101BE06D6AECC3E10525C63"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4B292C30184287C5513DF334855A70A1",
- "legacy_metadata_key": "46095DD9FF30EB0FB1B08EBA693F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B1B0AD0650ED5B23756D1E66160C7E41",
- "derived_salt_first_section_no_de": "C406806416BBDD972968DB5601C8A8A0",
- "derived_salt_first_section_third_de": "596C3BD0D3E233A71393BDADE17529CE",
- "section_salt": "36598ADE9B7B92EEF4E3C4AD4C91C9AE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DD0EC8C9EFE609EDF9F133F3",
- "extended_signed_metadata_key_hmac_key": "80E51043EA126D24905DAB5BAF999FF9471C656E9B400E40965087BC3BCB5628",
- "extended_signed_section_aes_key": "3DB05181CD9D8EAD3A7FE4C6BDF5F4DF",
- "extended_unsigned_metadata_key_hmac_key": "A18E6B82F5DBBF7EA49A7CAFBE4B860A4D76EE52C2F01E7BEEB808C9B8E637CA",
- "extended_unsigned_section_aes_key": "01888915E5D2C9E8DDC5658DF07B804F",
- "extended_unsigned_section_mic_hmac_key": "3C5F712B9E858E04B8B58DAF669BC191BB0927D0A64E1EB1E94F8198C83F0737",
- "key_seed": "E4CB8A58DB7A2779D1F29AF1D4C1BC450555FBA6C3F62F4E9E84C584BED20588",
- "legacy_ldt_key": "60146117E5039AA4C69DD4E72F81DABD645EA429FC993FE533D285D40CEB64C5D4496D60BC26CD36CB6D7385F4F48564096239780BE956FF8D2ADF170600C511",
- "legacy_metadata_iv": "1FA83A61C9BB709811375C42",
- "legacy_metadata_key_hmac_key": "C6E06CD5FD0BD9AF1EC908776138FA2227DB1226D0FB3C9FBFE2265F935F6847"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BC63",
- "expanded_salt": "2F3C206C3B504937343AEE5D57A99620"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B2A7388FC8C5C352964E928631A326FF",
- "legacy_metadata_key": "D0820AF93A57243719BA2D8BE758"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "207EDB62E145E53E6498B18B5FC7D9F4",
- "derived_salt_first_section_no_de": "029E45FA100B9FB7E76437D3919E4D31",
- "derived_salt_first_section_third_de": "721DDD65F13A14945A1C3E4F4DD3122E",
- "section_salt": "DE2AF05C2D3C21B9087E572373C7C803"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5ABD78552BD58C6D893A91DF",
- "extended_signed_metadata_key_hmac_key": "23EA9F99B9AC542ED20019023A5A2CF8D2D6C87E587CED22BADD40D3356A470E",
- "extended_signed_section_aes_key": "1E29130F4E8E469CC350EE21E9A14C70",
- "extended_unsigned_metadata_key_hmac_key": "80A319C00E9731C25DA344699131F9DF3E89BD7CD2866AFD0C206BDBE9D1C691",
- "extended_unsigned_section_aes_key": "B483F5082A7FB42A7A61E95605293D2C",
- "extended_unsigned_section_mic_hmac_key": "C0343BB844C11D0933EA5D1D76888ACFDD3ACBF0934EA79DB365AF57B325B382",
- "key_seed": "4E31C316A45CA922CC016B7BE09B771D7160105428825C83DA54B255BD2DA4C6",
- "legacy_ldt_key": "F991BA6342C88B7CB2517BD14B00BDD56DDB331CBAB167F10E941C9BD70F1348B890CA583F03342A1A3084324E18C5F80BAE4CF58EA140D60A7F3045A7EC619C",
- "legacy_metadata_iv": "3EE939417DD55D3D4488FAC0",
- "legacy_metadata_key_hmac_key": "B13AC2E02A7F970E550EDAE3E7CE70139427B5CB5B9345EE2CFCCFF8BB4262B9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B2C7",
- "expanded_salt": "3E8816A4B2F22AECD08CAFFC5CA994FD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EAFDDAA77C98596660F0ED41EF0F9509",
- "legacy_metadata_key": "3CCF3136371F6999FDB96407CE1A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8108E3D8B15E43AB3F9DDC89F3ABAF56",
- "derived_salt_first_section_no_de": "2EE1F8CEC0F42BF24F0A56B45E2B02D9",
- "derived_salt_first_section_third_de": "4C2EDA0E5E95A4A8A234CFB2EE2C16C5",
- "section_salt": "3F2C188470C987CF4B79776099316A03"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FA154D609D7FF2BA4EEA7088",
- "extended_signed_metadata_key_hmac_key": "53A5384AE654F302409674B3457750AE0304B2D60C88F1CCABB41E02B8178080",
- "extended_signed_section_aes_key": "A01664637090F990D5B1F075C0BF0132",
- "extended_unsigned_metadata_key_hmac_key": "519F7BFACAEEB4806C3DA6F3CB003A42192A16B5CD44EF8DBA7D55955D7EE17C",
- "extended_unsigned_section_aes_key": "4053A57B2B87EB1D0248FCC3065B3F25",
- "extended_unsigned_section_mic_hmac_key": "3F65AEEFA05D6CBB3B2AC92E772F047818BD9588FDCE9BE2FF6860A47A2D5579",
- "key_seed": "4C63D3314D43B4121E974F986EDC6B2A061188C7F2CC7D236C0D64D984147528",
- "legacy_ldt_key": "0BFE14FC75F7980A1729A398B0560006603B3813FCB6F8771E5D49F429AA4EF03C2AC84B67A6452CA222DA5964B9AAD04216D477E01C9E3586FC575BFBAF891E",
- "legacy_metadata_iv": "FD92EBAD2BBBB064029EA74A",
- "legacy_metadata_key_hmac_key": "7C8C93046C487B70AE175AED47B77E74A9DB38C3AC380F21D3206A607CAF308A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9562",
- "expanded_salt": "BD89CC3FC16BA497B962D7184D55EF10"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E2316AEF0EDE1FEE759BB551EC694115",
- "legacy_metadata_key": "E7EF10F71F983222C7462D310C4B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ED18378650961E71A2001A7D2A85D9FF",
- "derived_salt_first_section_no_de": "B117BA6A93ECD2FB529B9F2EA294D482",
- "derived_salt_first_section_third_de": "9A21658F4597A25FD0788EB8464B367D",
- "section_salt": "67E6F81D70A48A50DA52333B7F47DEBD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "22D99509138A4E9AFC961F67",
- "extended_signed_metadata_key_hmac_key": "59555A2881792585922D1A12A73BCDAF546300C8DD5B58443C2C83BAF307DD2E",
- "extended_signed_section_aes_key": "D8F80DFF2C0F98B76915BB3E5FDFE687",
- "extended_unsigned_metadata_key_hmac_key": "F517416CFAAE5A7254CD38F507B924A0B8F4AB7DADE5B91F5C213B09F4658D98",
- "extended_unsigned_section_aes_key": "B406E37C6FE071633536003C4FBDB0D7",
- "extended_unsigned_section_mic_hmac_key": "272C937E9DF2B84A605E9AE06B880D968945932D31EE09E102213C57F04E9149",
- "key_seed": "74471648C03378BF404CA98731E98A83AC9FCBA888596274BC4898CB0FE26D85",
- "legacy_ldt_key": "3F656F4144DC9E097457FD227E21626933D2AB8516784FBB6F28877D6A1F7C762F7428C0F5B9A8EAAAE29CE7286B3A22306A762F2D8989EA41167D76F5874C39",
- "legacy_metadata_iv": "1035DECC6A89BC8D001D9AC3",
- "legacy_metadata_key_hmac_key": "48BB2628BF9942045B9C07D98D19F85AEDD7C753349C24B1CF05731FB9E98EBC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E035",
- "expanded_salt": "11A73918E5669A4B71A1B4DCCBE020A6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5A70E5BB3C6EAFD1B8A9B98B8CAF64A0",
- "legacy_metadata_key": "3C598FBC8DC24DE4B2B971969771"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "418EB5B9BD7F394F874601FC4D1E7CFE",
- "derived_salt_first_section_no_de": "71AD046066C0E5441B08B352DD778296",
- "derived_salt_first_section_third_de": "78334E3CD2DBB03427C45121AA636249",
- "section_salt": "8F22CFFD6972DB2A4F1A2FED1A4CCAC0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4B05F6778B3AB56AA2E4B918",
- "extended_signed_metadata_key_hmac_key": "6B7EECB22BE63B8FF8E8A3BF574BC451122C50D242AC272C8F38A68BDD75819E",
- "extended_signed_section_aes_key": "4FD340CD10A4AC38DF91F0D189282801",
- "extended_unsigned_metadata_key_hmac_key": "31C2C77502C6084AF95D17306EBAAC2AE4B85FF71411A9F45E193282AF4FEFBC",
- "extended_unsigned_section_aes_key": "21CA64BFC8CBE75BC75EDAD789178982",
- "extended_unsigned_section_mic_hmac_key": "EF3A32C8AC473F6CC1F14B12F5AC38F54B2E2B33AFDBB0720A4AE3721B4FE78D",
- "key_seed": "E3639935D94A2B594E67593098B5A9B62DE07A32C2EE853F8ED9E3ADC4C36CE1",
- "legacy_ldt_key": "4F76AD031A198CEB8D4B5710AE2D21E70618D0A37BFE1F499EBD992145CC89B23747BF3B15A1F8CE70372A995D93ABAAFDE419365DD8CFC89869FA1F48917E7D",
- "legacy_metadata_iv": "0E9BD8C801D137EA0090C067",
- "legacy_metadata_key_hmac_key": "D7DC006094DB11E6683054482D8726F65D8AD8A9A8F9B557B86C192BB62AEF31"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A4D3",
- "expanded_salt": "083BE06DDFD2D1BCB673191ACF1E4372"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D3497DE53727DD06C95487BED6A569C9",
- "legacy_metadata_key": "BC6712F8B4702BED5925AE5A184D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "25DBDEAF8AA22C61232B181531903F8A",
- "derived_salt_first_section_no_de": "0B49C086CCA31D0D131FC63E028ADC27",
- "derived_salt_first_section_third_de": "E178DA7C3D8A77F4041DEC51BB081C1C",
- "section_salt": "FF216725DFF4480502DA2DB2F38E1C7F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "306C46499341AD796BD453EE",
- "extended_signed_metadata_key_hmac_key": "7B59A1390907D142512FD42F5C0E65A6E2E5FC4D6F5118D9CAE61C68D12C7F1F",
- "extended_signed_section_aes_key": "155EC40F424B2953C20420F3038DB084",
- "extended_unsigned_metadata_key_hmac_key": "D375767A813F41C0DE2BBECDA1E7D5680D321EAB76349BD2CD97ACE298C0556A",
- "extended_unsigned_section_aes_key": "89BCE81921099360D1AECE7418BDBB08",
- "extended_unsigned_section_mic_hmac_key": "D5B365C090BA47E7BA1231DB14C9705FB7A50CBB3021E8A28013F0F4DB7F67C8",
- "key_seed": "529B6DB3294832A13A3283D2EA4EB15F3D33DACBD40FEF9DE3AF615E425C146B",
- "legacy_ldt_key": "50254C52D064B50E93A24D2F48EC37FF5A5A60E9851348F263DB4706D2B0EDAF6E31511472C5C8BE768F98E0603BA770205805C35714DA885A0C3C4999F2A83E",
- "legacy_metadata_iv": "358580F57678B76DD04686CE",
- "legacy_metadata_key_hmac_key": "1F1947B32DF2E155AE2138CB127B9FA7C62191FD27DAE9A96A9231CB112818A2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "46A4",
- "expanded_salt": "85A0F97101BC211EA011DFAA861177D3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2DE3157035EEDABEC0DD7DB1829BCE1D",
- "legacy_metadata_key": "61088ED1D04D52E47A5FCB2C7DED"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "294FA66410E01368C17365AF8A7FDA4D",
- "derived_salt_first_section_no_de": "9F45E57B88571CA63B6F91DA04AD1BB6",
- "derived_salt_first_section_third_de": "0AACBC913799FFD9FC13467134368C32",
- "section_salt": "552B8CED5CB178CA09C3829A68F78E8F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9AAA6C51A4CC95FBB86CA487",
- "extended_signed_metadata_key_hmac_key": "554ADC02D49C03F098E0F0DF70692E3405B3807DD74D549A789496E7D8C6F0A7",
- "extended_signed_section_aes_key": "D651642CB98DBB39C54DCC20ED65E3A5",
- "extended_unsigned_metadata_key_hmac_key": "C656F9441363A74FA8B205EB17F450F2A4FA5CA7DD57F0E379804C4EB3C9F454",
- "extended_unsigned_section_aes_key": "DB6F181852726D12E86CB6F385F051B9",
- "extended_unsigned_section_mic_hmac_key": "E1984849272B19109C4E8B88F16CA5671F731B323919E794826A33A17818670F",
- "key_seed": "480A1868FA42F8D0535651DDC634D3CF24EC24E0A071091062D91DD6B1D5A3AF",
- "legacy_ldt_key": "D81A9C598CFE5D29B3D32DB3D68F99BDB2F6D66D0367CE646959DD1778F2B122A9E0D636FBEB9D4A1EA4F76CEF5F7BFA49E93902114EE9F80C6573A8BB407162",
- "legacy_metadata_iv": "EEE3102041B0C99BC03FF528",
- "legacy_metadata_key_hmac_key": "582FE6E39E1953DAEAAA4ACCAC218973C3D1E96E2EDE6BE09979AEAEBAC11DCF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AA0C",
- "expanded_salt": "759CF2DB4D5945CA00816A84904C27AE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D8918158CAD1CF1DE5153138C38DC354",
- "legacy_metadata_key": "E57E61D016EAA795BBF8E8F22AE2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8DC0E8C669A5262F72AC1785CB379AE7",
- "derived_salt_first_section_no_de": "AFFFFB02FCF6D0B4FE2D66FE96383BEC",
- "derived_salt_first_section_third_de": "A1BB9F2C486BD87F15E0E3FD0294A62E",
- "section_salt": "DFA956004F3FFD45E1ACFB23487D344C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "451FD51F31329E6F04150C05",
- "extended_signed_metadata_key_hmac_key": "EB0C0338FF142B2737EFFCCBFB13068C2E27ED5E134CDFD8BE629880EED2E08E",
- "extended_signed_section_aes_key": "D810749394730EA5680D1B0E9DD25C29",
- "extended_unsigned_metadata_key_hmac_key": "AF372F7CD0BE9C1F07FD103EA432D8C974A2BC8A3A2A6B5CF7CCD744F1B7D102",
- "extended_unsigned_section_aes_key": "E398F86457FAA27120A29BD51FF86727",
- "extended_unsigned_section_mic_hmac_key": "8B41C6B1D1E9199A4E949B3D6D998C3D8626CF3AEDFDD5CD9D0B55CC11BB8C7A",
- "key_seed": "243F4D97290279BA7FC5BA39DBB005678CC1BE7F4DD7135326F76D130655FC7E",
- "legacy_ldt_key": "DEAD3E839CF85C20AB96772081087471C5FC69497F00F4342A47A94AC57483347D8E215B886479E659BDCA622F3DAC48F160CE98973C8128F31E8476BC9FEA37",
- "legacy_metadata_iv": "3B81447E475A8EEBF16F1DEF",
- "legacy_metadata_key_hmac_key": "FE7D0565B4EB7450D89532E0F02194C8737471552E7EECF62FAAFD8D24A6509E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C821",
- "expanded_salt": "59C4951975A878DCA7DF874D37F89393"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F46139D48C2802DA513D0C6E3B5CA8E8",
- "legacy_metadata_key": "DF1B3EA5AA25E6FD6E0B2322AAE1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "098B601AB0067B1B852A24746237D08B",
- "derived_salt_first_section_no_de": "0747C4FBC174874AAF4C8DD535BE5ED2",
- "derived_salt_first_section_third_de": "9B3DD97B193D9B230E2BD3E942624B9A",
- "section_salt": "8739BC1E484D96B028E798542FF20DA1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9B4DB44F8136A1E1640110C4",
- "extended_signed_metadata_key_hmac_key": "62B4E38CF59BEBDB7D7D73E8EED6E156262378CD8E257BED2EAD5101076EC748",
- "extended_signed_section_aes_key": "525F9D6E1C154A0B55398FD1E807052C",
- "extended_unsigned_metadata_key_hmac_key": "3829F141B49078E760CAEFFF12CEEBA184B1C60E730D5EF4025D7069D5AD2ACF",
- "extended_unsigned_section_aes_key": "A0A58FD7F17E0511D13A0F8B4F5067CA",
- "extended_unsigned_section_mic_hmac_key": "430A6B85F29AD188BA115119D9B4392BDA7B6982307B7A827D19D9E8D58EC4D1",
- "key_seed": "A9AD3FBD1805DA07801ED56DAD02726CD14C6261863AEA9A91F60E886BA7233B",
- "legacy_ldt_key": "933F70CB79645417FE4D444973F3FCD339887C29733865DB44F70851D23B7FDDE47532E713153B7E8720BD07F12AA77E5BFE980DE7C7AD7D1827B8979CDD8E41",
- "legacy_metadata_iv": "373528E64BD815326B6102D6",
- "legacy_metadata_key_hmac_key": "A331DF79D4D86064B47BDDE37BAA81C7B943473A2519FD0B004BA9B81E4833C6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "71A4",
- "expanded_salt": "ECFE4C794BB4BC8CD4394DA7A1517516"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1971737F8A558A6B9BD2FC3F6E262F17",
- "legacy_metadata_key": "5934F811E179917E9C7E65DAC88A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2ABE486D2F7435B6C41EE811AB27A754",
- "derived_salt_first_section_no_de": "AB82CC7FC49009DAE381E6D1A46F01A0",
- "derived_salt_first_section_third_de": "F374BFBF121FEFCA07608D1558C27ACF",
- "section_salt": "C1F3B7D46C6175228E7DFC5A36B6F7EA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "70986D7F05F69D57445EF2B2",
- "extended_signed_metadata_key_hmac_key": "B1DCD4DAE9B7440C020CF6FE0F61A190AB81BF4B2440148C650D7BA2291F159B",
- "extended_signed_section_aes_key": "06C04C63A036CF2AD3AE5F64B5966B87",
- "extended_unsigned_metadata_key_hmac_key": "CDB21A6E5D8311409B2F4DBE78F0E0C3DD2B545D1EA984FAF0D0FA6CF5564091",
- "extended_unsigned_section_aes_key": "875E1CE87BB797537D728CC128BAC178",
- "extended_unsigned_section_mic_hmac_key": "B0D22F38A36F7C83466BC40685AC91BB83472E75A109F0ADB4A6D81D374DE91B",
- "key_seed": "5FE745AB15621028535C525E3F0BE8D8B6CEE35E6EBC3AAA02816F82A17D9AA2",
- "legacy_ldt_key": "75745445950DCEF008DDF0131983BCA9AFDCBFB342E4AB2DDE2E927BC1A0AAB5C851AE8A85845AD03A70309B5CB520ED690A110F23AE3A365C6158A583F81A7E",
- "legacy_metadata_iv": "71C8E96FB1F79A18052B491E",
- "legacy_metadata_key_hmac_key": "A38CB1C8636D429FBC55FD2F9EF39C7FE6913081BEA087B9FF8FCB5FD561A81D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "04CA",
- "expanded_salt": "BC2A3C6EFB0995FE5900FC5D7EC629E3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1C72E97FBC0A631E3CE719C02624BAD3",
- "legacy_metadata_key": "5DAD9961615296744515CA3AC25E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4C4CD9F4DCEA127CB3D2299B480E3858",
- "derived_salt_first_section_no_de": "21E458D59A934545E2869929E7B8FC01",
- "derived_salt_first_section_third_de": "6460120090A92231B99B399D0D9D7147",
- "section_salt": "1F5D0C6A6247D7255DA5403036AFB314"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5744090AF6F921E88BFC6844",
- "extended_signed_metadata_key_hmac_key": "5ABB69AEA34C6B9227FF51FBB08EC92A60AB7313E2ED304AEE97206013492E34",
- "extended_signed_section_aes_key": "B3B2D481D7655260ACB36D244771DD57",
- "extended_unsigned_metadata_key_hmac_key": "760DFBA3E3A35E8EF3F47080E27E690A1EC7BA695DAC2E9BEEB7E890D5BBFA88",
- "extended_unsigned_section_aes_key": "12C07CBE0F14C31F1C9E68F65C58CDE7",
- "extended_unsigned_section_mic_hmac_key": "5BDA314581332BE01E3588FB819D116E399D40BAF1475B9DEED6566D352D55BE",
- "key_seed": "5E18FAEE88EB7DDDC9103E4C22F2F0719C605579E2D22E11AB4327818CD67B14",
- "legacy_ldt_key": "9103B4E041DFC64FA443AE5A3B3B6DB37842E4513EAF189ED3E8AAFDF173732F6E7AE760B24DF35869884C126DF7D84CF995BDE0B158CDF095E0CD5BD420939C",
- "legacy_metadata_iv": "0A32F37255DFC18AA45A6192",
- "legacy_metadata_key_hmac_key": "E235A237C802B6586D3B6F61087B1F524F5AE17A1E6C73F7964EECF187ACD561"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A308",
- "expanded_salt": "3721D43BC54B195D197F2F60A07BE5E5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D2F1537D016924407E196E9BBDF6CAD4",
- "legacy_metadata_key": "2D7D7986AF6C1FB2DBB04CB8D25C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "400FBE8E7005BD597751A15EDA3256C3",
- "derived_salt_first_section_no_de": "8AF3AF1BFBE9960815C368F7C9133A53",
- "derived_salt_first_section_third_de": "9B208AB74C5ECE1FBEE13750F42A5B2A",
- "section_salt": "5716CD7B75CE5512EC19A6435B724EAD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B23E95078E45F1ABEFAC0B93",
- "extended_signed_metadata_key_hmac_key": "531AAF6C8719FADC38DC9CED3AD9B6D45B8F7330C2770568B1010BCB3E3C972B",
- "extended_signed_section_aes_key": "34254000EAEBF7E3741C14F84F5A1D27",
- "extended_unsigned_metadata_key_hmac_key": "74CCFEE8CECB8024C2D2BD7E2D6E85323C9B2A014021F8D42D393643FB6CB6DF",
- "extended_unsigned_section_aes_key": "9B830223F58D28A9714662B144D744D5",
- "extended_unsigned_section_mic_hmac_key": "FA8C57DB246545354F62CC16CE317E41EACF174780E74C4D4F99C2B107340CE4",
- "key_seed": "C310666088C20C45913E79E5DB67A627A01B446A45B6BB4219188406BF1059F6",
- "legacy_ldt_key": "CA1DCF5539F1960540463DBF7AEDA1A5645526A7DBD82DF9A7959204B761AAA465BA43EB40E42609EEDB7553C28CD586B4E03BAB9221CB47EF295410D6F35BFD",
- "legacy_metadata_iv": "541FC8689FBB5A78AA4DFB69",
- "legacy_metadata_key_hmac_key": "D23626DD10C4B865B573824DFF99D67D6F419AE665B26334DC2C505F3A502694"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A704",
- "expanded_salt": "D4B91B3C417251067B71B901395458DD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "087D014A7FFA71656457ED9687AB237C",
- "legacy_metadata_key": "0C5B70528510A084072060171126"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DA959AF12D538DF17FEEA90B0360718F",
- "derived_salt_first_section_no_de": "9522B99A013DE53291F2B83D00D5C13B",
- "derived_salt_first_section_third_de": "2F0CCFA5A74DEE9112263D5F8D1439C1",
- "section_salt": "9EA8D750BE7187E60A9472A71CFCF2FC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CB39B17BA357D9B03DF7274F",
- "extended_signed_metadata_key_hmac_key": "0718E4901128F9687FBBD52D53501FF90DCDDAF04B4A2AB5F01079C30560A50B",
- "extended_signed_section_aes_key": "7311CE25AFA8C7445B01A11354A0AA7C",
- "extended_unsigned_metadata_key_hmac_key": "C6407C967B3CABB2AEF1452525079FC5D915058475CCDBA5FED0AA8532CEE874",
- "extended_unsigned_section_aes_key": "4E1BF109E39F6684CFD3355EA7086EE2",
- "extended_unsigned_section_mic_hmac_key": "75949746BF6B97830673296B01FFF74B52B0D04AF758EF8CB6EC6BB6C81E4FF8",
- "key_seed": "184565D4389E43DDE6CB39821E950217ED3256BC2A1B1440A29F2B45CE2C1687",
- "legacy_ldt_key": "5F5D344487781B344322C352D34963682CAF8CFA1C666D91709B0F525CE3C06101B5C2428C2C17FA39FC012048AA038F285CE52201791C562A6134924746C802",
- "legacy_metadata_iv": "886322F5A8E9C6BD066993FD",
- "legacy_metadata_key_hmac_key": "ED84D479169A1D8FFD23519FBE4521C3EBFB47447B33DE8E126094F63D00B9AD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8ED0",
- "expanded_salt": "79F7F16D4483321FCE2B2C98DB626636"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "700CA0A178291DCDA7D36F9DDCB50C7C",
- "legacy_metadata_key": "FE2DC76A7B4A89492CF0A1789CD7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C858ED411574CD124939A4F2E61FBFD7",
- "derived_salt_first_section_no_de": "2C5818E4AB23A6258A7CD4C403535A20",
- "derived_salt_first_section_third_de": "2CA6325394C276DDF705959C9C973EE8",
- "section_salt": "88D788CB68B5EB3C078B1C7DE731F3C7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3CB45CC0399A287B88CF8525",
- "extended_signed_metadata_key_hmac_key": "7E7B840B08F8D90E87F4311793F9EA170C776C68919E9D810345CDEB025D87A8",
- "extended_signed_section_aes_key": "78AA22C10604A7E14ABCFDB4F75ADE68",
- "extended_unsigned_metadata_key_hmac_key": "CD4E1ACDEE4A34D9A2F0E7126F49F55A2CDBD6BC603D292557C25E61E9E7A705",
- "extended_unsigned_section_aes_key": "9C5C7C32A672B780C16CB8D6C2565AF6",
- "extended_unsigned_section_mic_hmac_key": "9C21150310B0DBE27F0931EB787682ACF010A5A70D42AA95DDE4DD8C47B975C5",
- "key_seed": "4F14DFEB338560206884F918854CDC40DAEB043E7D0C7AB79D1D7EEEFD4DDC0F",
- "legacy_ldt_key": "80F2F7391F41CCB3AB7649EFA21EF3259B40C7A9A8C07C356DD739AB07DF3EF07F36726014530F2F652657E9393BBA681263945B48BD970EA23E29B98E63F8F6",
- "legacy_metadata_iv": "19908E27DEB420A558006EAB",
- "legacy_metadata_key_hmac_key": "B8DBA7FEF5F2248E386AC8060B436F7381D63A7D2163E39703A9384F7C6AA152"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "69E1",
- "expanded_salt": "182D1E45905A6F822921781ECD177ECE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CFA32E16999094CB6A7B65306EBC03D2",
- "legacy_metadata_key": "342A82B91139D025414D38621281"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5E0526E3401D4361F3CA449D5ADC70F3",
- "derived_salt_first_section_no_de": "51FCCD1551EFB07AF2575125B3B17831",
- "derived_salt_first_section_third_de": "0613C744688F06D7D46546BF7EAB45D7",
- "section_salt": "AD79666B24283450F1BD39C90283F1CE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "05F550616B08F25C948069D4",
- "extended_signed_metadata_key_hmac_key": "F4FE9619EA16E6252CA226120BDDABC51EFD2E37097E5A209EEE47544B53FC02",
- "extended_signed_section_aes_key": "EFC978B1D175919DA7361D9A69C84293",
- "extended_unsigned_metadata_key_hmac_key": "B029421ACF33739CF27576872D06AC1D889B196B84BFB9D4043C6A2C5C3B2DFF",
- "extended_unsigned_section_aes_key": "E9E8AEE8E1BD3FF4CAEB5F05FB11ADAC",
- "extended_unsigned_section_mic_hmac_key": "153DDD479E9606FC8B003CF741FD29BD210D540CA81A60EFD0AA3AC0BAB18F46",
- "key_seed": "E733656C4E4F93972CC7A30D79BA02987DCDFA3392081AFFE5036B255B8D4E15",
- "legacy_ldt_key": "7769ACC261464D470718C7173C4AE7B3FE964F3482057A338A78EF709E0DC4E7E3542551193C538B20F3745C6ED84E08D4666151EF9571CE232E476F90F3E62D",
- "legacy_metadata_iv": "5B5AA8BED2C4AF46498E8A91",
- "legacy_metadata_key_hmac_key": "C1FE01569616A32226B615EFD1692813603C777908FECA8CE16090BC43FD5294"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E641",
- "expanded_salt": "A691169560202F646E37E76495E3A69B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "566A0C99AD71A83876BBC9F3A6797E74",
- "legacy_metadata_key": "156C7AEF3FA8BC7CC8DFF2C10819"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2FED2156C763EB928CD2280C66339693",
- "derived_salt_first_section_no_de": "49A5E9E63CF06BB4C11C04DD7185E119",
- "derived_salt_first_section_third_de": "6FAC748B23D8765A15AB2FB86A076165",
- "section_salt": "B2D65614C34CC7EDB5FF37998620E0E1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D1F04A30361CCF26B267E7DA",
- "extended_signed_metadata_key_hmac_key": "740FB1AE6041CE1C6B7A139A40189008835FEE8C683E0F8A2964F33C6F435C3D",
- "extended_signed_section_aes_key": "0914947E830ECFF7C4250C622923C7CB",
- "extended_unsigned_metadata_key_hmac_key": "AF7972AC44CEED71C200A8E0B05CC4ECE0B3D3DDABC6F8703AE220E158F12051",
- "extended_unsigned_section_aes_key": "F25AEAD004D5C6868804D927557202B1",
- "extended_unsigned_section_mic_hmac_key": "1C842BF2C69E34D07173330373AF7266D85C34199879AA7F195D812EC6E6254F",
- "key_seed": "B40172FBDC2A862FEF630A44E571A0B777C69174A360170E837BED2A0AE7DB98",
- "legacy_ldt_key": "117ACAD5785B9BB8C4AEDED9BE279161E26E8A67E44B24B033EEFE81BD0F3C78672F974C811AE77D82355ED57F02F9C8990D92573FD4FF53CF6E39269FEA28C5",
- "legacy_metadata_iv": "FF6B5003363924F7AD9DE865",
- "legacy_metadata_key_hmac_key": "E3F68E7CEC30D34516E485AE3E1AB63602A4E5ACBDA3D8800CBC3BABDE3F9698"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "336E",
- "expanded_salt": "F87826E66CEE8174BB563D6E7E5F9483"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6630154447F75E220EBF952D86545694",
- "legacy_metadata_key": "48AC01C563D5E9B4714B52BA8933"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9B6BEDA404607BD174387367CCEF984A",
- "derived_salt_first_section_no_de": "2239CA87D12D4A48010A8617E271C8DA",
- "derived_salt_first_section_third_de": "187C848FF49C9AD5E1E1993FC6AC8F62",
- "section_salt": "506865CD48ED5CAD660C316F8AD59924"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8DE6990AD5AB4F0FCCF59251",
- "extended_signed_metadata_key_hmac_key": "327752F45BCA587CCEEDE7C2EAF16CAE36282D904596F6809E5E0A9036EC0A14",
- "extended_signed_section_aes_key": "6E8F72693594F6AF4AE4A32A9523328A",
- "extended_unsigned_metadata_key_hmac_key": "5483EBEDFC5058A5A84614C42E39905590FA10CA551C8052396B65E400465F7A",
- "extended_unsigned_section_aes_key": "2E5F6BBF9B8BFD3D3EA714B5BF75BE72",
- "extended_unsigned_section_mic_hmac_key": "73E1DB8F505115AED1DA99F9834CE279102DC77C9E5148ABBCC163F23B32DE8B",
- "key_seed": "8760B2775F1FBD308722CCFAF15F698348A21B4B1F1394BE5A3C20CC0FF98828",
- "legacy_ldt_key": "A332698C8577D47C6B38F2F15559068EE4F8294EEE5BC879227D1E374A681EA39CECE86747DC2AA9C5C237E7DB546EFCC2F4FE732D1158C0A320795B7B14F4D4",
- "legacy_metadata_iv": "03AA1E753EA657F8077B1DFA",
- "legacy_metadata_key_hmac_key": "1273B724527D194BB0B04D2CDE4951674AAE5A186035A1529D92E4760139C71A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BB7A",
- "expanded_salt": "5764DFC3E51EAA5A44DE5E15957AC2D3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8069DB3765E936AC5D9921C0A445FD40",
- "legacy_metadata_key": "6BE2D0C370C5EC0C4415924CDE4A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "98F5B69D065811417F5FDFFA22DAB40A",
- "derived_salt_first_section_no_de": "08A089DC947EA07CADBD44E441E33A59",
- "derived_salt_first_section_third_de": "28375EB0A771B66EAC23521A21FB4017",
- "section_salt": "AAC38F0C1A6CE0939E0BA7395B2BCECD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7D80FEBAC447C178E04C9BF9",
- "extended_signed_metadata_key_hmac_key": "04CE7F9A9A1F6A9C2F870D72FDD0CF8FCB159B9CFC39178617E6868CA372E31C",
- "extended_signed_section_aes_key": "4CB2C5A913FA43B59E1D37CF27944CB3",
- "extended_unsigned_metadata_key_hmac_key": "FAFC1D1181FC282A5156CC4275B787794C6C0C176C7955B242E5D5F2D43F967D",
- "extended_unsigned_section_aes_key": "B0212E29731931936802439F1A46AA0F",
- "extended_unsigned_section_mic_hmac_key": "347FC4F56ACA5F04BAC5A76096226EE81F8AB416710750983A437EC7D7827A02",
- "key_seed": "A4205381D8DB63369D198B4730CEA38138F4932E257095C8D6F1E9B9D32B3DDF",
- "legacy_ldt_key": "AE5766C63B73EA0A3BF71FF450116A350A375115D6B26FF605E983AA938BFF8F49D2658A86D49422BC72304E52ACD487ECA2574D46FC55CDA78E969036EFAC0E",
- "legacy_metadata_iv": "58F92D226BB552484D00D23F",
- "legacy_metadata_key_hmac_key": "747E7FA350D868AB078BAF66EB300EFBFCEB77AFE659FB2B7E5970D4555EC401"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "580B",
- "expanded_salt": "E0FD93EF7F17AAAC0097CBAC63B03E0D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "260784F023012D8BF9D214EE98714587",
- "legacy_metadata_key": "EA3157EB18666E95E8B073BC1F72"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B5DB331BE6FCCB8750D4358A7D27B867",
- "derived_salt_first_section_no_de": "05784CE974FFB599201A573223CF2209",
- "derived_salt_first_section_third_de": "A01EC05FC49ECF06D082EFDEC9EB8361",
- "section_salt": "DF4B6FE1D9E4775DC6D806E832EC1F76"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2E89EC65ED54DDF9B61F18BC",
- "extended_signed_metadata_key_hmac_key": "781E7A16E1E9232056DEAD2300B45CF9CA104C66B2E7E75C7E1F425E6915D605",
- "extended_signed_section_aes_key": "4064BE8FBA25533D9539075022817A95",
- "extended_unsigned_metadata_key_hmac_key": "D80CBE4B3F31F70C00C14577174ADA1F3F6EC52AFF721421BF7C4F753358136E",
- "extended_unsigned_section_aes_key": "71BFF686DAA60E82F5A6CF1B8BF01EBE",
- "extended_unsigned_section_mic_hmac_key": "59C4E432D1BC0A98FC404126879725A81D6B8F0A4583E25B11AD1CDDEEE358EA",
- "key_seed": "BA0FCE5B8D40212797EF397C3C133D24190C3F6CFBD20F436F5607AB1228677A",
- "legacy_ldt_key": "4AE56A405103A734AC51A51E3BCB0F83078D6EE4287E883A0EE21800C6DA084A557C82E4EE676F26DFA5707CCB3778C57E69910E499E8D9CDC206B9BA277B149",
- "legacy_metadata_iv": "292FC0F5A4EDB5D153719958",
- "legacy_metadata_key_hmac_key": "25B0FA12F1A98692CE22723D5A03F55A2FA3DE7B698C65B3671DA6F90E8B05D6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "204F",
- "expanded_salt": "9592E801F050E18520E67A4703EAE0CA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "937F9A51FAB1EFD49478FBC38D50F686",
- "legacy_metadata_key": "E8AA4257D855B73540F168C70F02"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "23FEE4187C63A85788A3974C5D8462F8",
- "derived_salt_first_section_no_de": "6AD116679D9823AEA7ED29C6B7283320",
- "derived_salt_first_section_third_de": "782792390273D24A9920372375A080F4",
- "section_salt": "622129721D3A385C35B5D2803FE4C03C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AC67E86C99BBAAEB845CEB2D",
- "extended_signed_metadata_key_hmac_key": "627F54E116774CCB6E155388A00821D51DF0E7B964D13EA9E857AD2475E2D7FB",
- "extended_signed_section_aes_key": "D9264374077A2FA901A528AFE32398FF",
- "extended_unsigned_metadata_key_hmac_key": "1F42ACE2FFDF7587F9721F72AB57394255AECB19FC5166CFB19A472930740238",
- "extended_unsigned_section_aes_key": "E2038FA8E7D3470B0115DD41ACB41214",
- "extended_unsigned_section_mic_hmac_key": "2478188B2CE448453FA44E95AE5EF5D3BBBD4AAFE130FD1F41EC25667193E532",
- "key_seed": "963410D8AF4BF47563C4B4B313D9D92EBD9154620D9B63D3F7BBC478DB25DB3F",
- "legacy_ldt_key": "F8AE22D93C2686F78B3AECBF252FBC091316D06D5D4955FCD97EDA6306999F6D6EF8A841A2DE4B98A99E751B7F3249863C87423F17B76F2E7A56688A32779D00",
- "legacy_metadata_iv": "E01A9F05C415C217A9AE14BC",
- "legacy_metadata_key_hmac_key": "DAEA33FA5169172766B8F183B33DF8531E40DE5970F675B3514950B0B89FA300"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6BB7",
- "expanded_salt": "A7BC207C9090EACF1333249ED8B04493"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "12D1EAD70D2AC42384B12202D47A0CBD",
- "legacy_metadata_key": "770A5403F1AFFDD24A411658C6FD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "64271E6966B10E5BAD0150BC38BD9EA5",
- "derived_salt_first_section_no_de": "9A3F724CD4FF209B69A2704A56AF74F5",
- "derived_salt_first_section_third_de": "813F05235B050B4B2A68FAC2D087C887",
- "section_salt": "5920EFCABD3FA4688CA42442F537FD25"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "241938473865ECD67A25752A",
- "extended_signed_metadata_key_hmac_key": "BCF25AE04AB4ED1EF65F56DDA3A09F3C4C27FC17C79BA8A936109F03886A335A",
- "extended_signed_section_aes_key": "51AA15E5A76E5F00D14B782D79CDE315",
- "extended_unsigned_metadata_key_hmac_key": "B2E9BFAA0BCFE493896693A0361554E16E1D5DBEC020BC501FF35927C58D4C5E",
- "extended_unsigned_section_aes_key": "BF92844A9609A253FAB044499392A213",
- "extended_unsigned_section_mic_hmac_key": "55DEC4A116C8BA3B3C922C91CC4B43534430E4CD9384E1C5517B7423343735FF",
- "key_seed": "03C02BE7B689553C91E83C59690A25C9530EC737062B59B5F0373B733C6D4C18",
- "legacy_ldt_key": "7B7FA7766FC6F4AF23AA8F3CE68FD1D3A47ADEFCED6383AFBF49C27EA272C7EEFA9BF9FA022DD5FC697D8EBAB88F689634CC96CCF7ED950DEB1BEC6B940CCDE5",
- "legacy_metadata_iv": "309B28D338A1EB13EBD48631",
- "legacy_metadata_key_hmac_key": "ADE9F09AC80CA204B9855010C5386A42D879FBF945DB5F7E3D5F7FB7E4F27782"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E089",
- "expanded_salt": "DD21A19CEBF5B0927FB26A1FA30BFE83"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C41172916261DF445B7FAA17A97881BA",
- "legacy_metadata_key": "22B40AFD6377FE0D0C4ADB39433D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "80AA33546123B5BEC61288A98EFE274B",
- "derived_salt_first_section_no_de": "D0ADD219DD8E2122F749CE5A552A50B8",
- "derived_salt_first_section_third_de": "0CB76AD59925C8BE82ABA6241BD14C82",
- "section_salt": "62A2651E7041A4DE8D1DB16CEC613BA3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E79482640ADFD492524F9BA9",
- "extended_signed_metadata_key_hmac_key": "60596449A82078460002A929E0A93557CD0A7100A480D9744E73CDE4F15F9E4E",
- "extended_signed_section_aes_key": "83CD2E208B3E91EBD18AA2D44330D6A8",
- "extended_unsigned_metadata_key_hmac_key": "8FEA132DE59A0D8D0C960331FBF014FBB24D2729240B1751410C95C0397C2B8F",
- "extended_unsigned_section_aes_key": "587E3CA27C5D99E73E664EA3439A9DF1",
- "extended_unsigned_section_mic_hmac_key": "9650D16ADD6F698AD03EFEAF8154C99E59DC262E544C8E90FC5BAE15268F820E",
- "key_seed": "6306FFBFF4A68BF9C2040CADD546D33296E9F75F8404AE59DDA40A7FE411DB77",
- "legacy_ldt_key": "D54F32E4915C091A20647F8A2834BFC300B72F966FC9A1897E4AD68E13DD2B76006CBF7713576247E90CDDE6D722B2554DAFF759C01E2A0CD0FC30983636C41A",
- "legacy_metadata_iv": "44045E40824925AE4B76E683",
- "legacy_metadata_key_hmac_key": "A3E97D6FAF46FF4704C62D191466C506897DD8D88C8C0C299C340DD5E46F8BB2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8AC0",
- "expanded_salt": "60586BA27D3ECB3CB3C1F89EBCE70CA4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CDB64AFA8CDE51709B1FF291D00155BE",
- "legacy_metadata_key": "CBA6F1332C7C46F07BA6E9472D49"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "636E5AC7DBD3537E363FF0C0D615DD28",
- "derived_salt_first_section_no_de": "8E4B2A013C65BBB0BCC2B2018726B6E4",
- "derived_salt_first_section_third_de": "0092B963840CB55E2C1FF1917D44FACD",
- "section_salt": "370D93899B19B4609FF51027E2A47313"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "04BBC55AC9487D251C70659F",
- "extended_signed_metadata_key_hmac_key": "D872818C09368ADD224151935E0969B702A18EA6C9CEC9DF45C16104C69D73BB",
- "extended_signed_section_aes_key": "3FFF909CA4E4997E2788127CABF54DBD",
- "extended_unsigned_metadata_key_hmac_key": "69619B6A0D554AC4B53614007377E7B1B6707A0C24C3843FD40AB0A2338A40AC",
- "extended_unsigned_section_aes_key": "FEAFDCB5F3E62296E24EA4A433A3DDA0",
- "extended_unsigned_section_mic_hmac_key": "4567E624B1A0C07D21644A5FA9C656DA73F94F3BD9900A13EC4A627081F8EC83",
- "key_seed": "BB76E74404974250460F5BC7FEE4B4EBE3A909362F32BB9ECB358904276256E0",
- "legacy_ldt_key": "78FEF65E88DA930716828874BAC99517E86742AA81A1A2E6BD37FA56DEF41FDDF5CAAF89A26EA72EA2E9CA6B80CE5774A209462DEEE9B0B303986E726D0778DE",
- "legacy_metadata_iv": "FF1CE798381942BCBBB5C78F",
- "legacy_metadata_key_hmac_key": "44094EDA468301E74DDA39F2040BDD277527559311E5EC204AAAF0E0610336E4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3DF4",
- "expanded_salt": "D7AABA15E2C8A670229FC18C11F8AEE9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EC5D308C5929ECD8865962DE62AC8B42",
- "legacy_metadata_key": "2D153CB655B20EC41EBF4DF4D164"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A2269DC40C4E68D8B4D60B0A6FD260D8",
- "derived_salt_first_section_no_de": "EEFDE1FA48F2F62D3AE60CF28E3CD055",
- "derived_salt_first_section_third_de": "BA74344BBDC76914B19DD33BFA4626A9",
- "section_salt": "4AA86A2176F630F8782FA0C7541A7377"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "62F59DE45ADA7BE993A9F1BF",
- "extended_signed_metadata_key_hmac_key": "9F1B06863D76DC7B0502BDB6D1704991F1D4DA0E7FC707B2619CC901C87A138E",
- "extended_signed_section_aes_key": "1508DADDC7601F8A727222F8061B412C",
- "extended_unsigned_metadata_key_hmac_key": "A6DB0DF1E47FDD41B133D8A9AA8BCA584EF4931A7C8B32727763E34F34307DD9",
- "extended_unsigned_section_aes_key": "F271F47EA51CFA7223A819E525E4BACB",
- "extended_unsigned_section_mic_hmac_key": "190A4E3506C9E669FA1E2C8B4DC096A899948F988D84C046628AD1C3F5A987ED",
- "key_seed": "AC3EF54E868462299708514E52437D2316C56AEA842D4293059F89F01F9BF914",
- "legacy_ldt_key": "B21595DCC36C0CC047C50CDBA57F4F103788D9BB1DF34506B291AAE4DCEF269B24E626E4B779344E9A7521F8F51D1981789EA39321D395685C146D553B8EF02F",
- "legacy_metadata_iv": "917AFC2670F2BF536F989F89",
- "legacy_metadata_key_hmac_key": "8B57B35BA71F01A46719832F738648B0D931E470F407B40080D90512851ED372"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4C1B",
- "expanded_salt": "F38761A59A728A00529DF685E6A72C52"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3B6E1B381AD59B38A593A89D7C809112",
- "legacy_metadata_key": "A139A2D5FB43D215FC7C4B4C5136"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "00D691A1BD7C0257FA9E6B48104A1D00",
- "derived_salt_first_section_no_de": "7ED44DBA5BF423003AFDCC1CCE68C2EE",
- "derived_salt_first_section_third_de": "EF1778FB99C8587902D7A6D7AD0E777F",
- "section_salt": "474D26F60FA61A83013FAB10352397D1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "349A239F150C53E727ACD526",
- "extended_signed_metadata_key_hmac_key": "DD7BC6893CFC26CAA89AC4EF55D6218F3A8044F599B2E0100D280AF771D66DAA",
- "extended_signed_section_aes_key": "59FA60A7AD4259419D5D2DF42CB07A8C",
- "extended_unsigned_metadata_key_hmac_key": "7DF4F520D27D617FFE105046A1A89E0F9589051C34FCF380DD454707BC18426B",
- "extended_unsigned_section_aes_key": "F41AA2EBBF169F53B3DA2FE1DB5EFE86",
- "extended_unsigned_section_mic_hmac_key": "33E51AEE8198DE8F92407C05E22FE07262656AE607884D431A65AD2BEE8EFA6C",
- "key_seed": "61E8512F35C7509E579E0C6FED8F290D767AA9F381616F1CF18AC1F3B9BB0DA2",
- "legacy_ldt_key": "FBCB49FBDC0D3D72009E462A372AFAFFAF2400F203B50471A618D1E390CF4FFAA578201E0AA3E4E02EBCB30D62760E48AE3BC123C9B0084F5E419102C16F9E83",
- "legacy_metadata_iv": "F9D3A6720512D67D2A58BC38",
- "legacy_metadata_key_hmac_key": "0536B23CB9C6230ECA60A9DE28C2E7EE19608316D5542C33E9B83B2A80997490"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B800",
- "expanded_salt": "AEF3B9EC32B17FD9D0981FA78D12D541"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7D4F94C68A9713BE6F6E8A63550DBAA1",
- "legacy_metadata_key": "26EC1E16F863BA36160308990B54"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E41C4A750D2EB6C873CD75489F12BDF5",
- "derived_salt_first_section_no_de": "A237F313D76B012AA713BBC3FE2E438D",
- "derived_salt_first_section_third_de": "9CF98315D58B30BA786D7E79C3D04432",
- "section_salt": "6F3A65AD16E2C0D804A6E589E58302DC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F3E8438AC580B1C16ACE3068",
- "extended_signed_metadata_key_hmac_key": "3C5793A9B06B994DBA52076F4F6BE6049D82B98C5A818BF46B3A9C296B77D265",
- "extended_signed_section_aes_key": "E169AEE8193465A86E818172C7E10A57",
- "extended_unsigned_metadata_key_hmac_key": "86A582CAFF8727A94F84E38DEE2A2C252CBD9EF5763A0C7A3761022A1C01013A",
- "extended_unsigned_section_aes_key": "2814D9D358710010E9E5B59D0381576B",
- "extended_unsigned_section_mic_hmac_key": "C13BDCB9A989A425843AA703D93ED6893818D6D211D8670DD6A9AE0A5C147892",
- "key_seed": "41778A3695D009852292EFE28632856BA51031146424C6E4531B2F3398206C6C",
- "legacy_ldt_key": "5900BEC0832623801855D5360F8B9771C23A2D80930F10C463D4531D624CE078447E05A557EA60A50AF87EB3345B79A3A9A77EEACF694065F89965F1C03AAC73",
- "legacy_metadata_iv": "5144C3C6CD588B2B43D312BD",
- "legacy_metadata_key_hmac_key": "88620446BD41DF1D33864157B90E7C35B5EA93E76F9351824B2BB68FDC3E560E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8F13",
- "expanded_salt": "12A681622722D5757FE48A47718037D6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "33955EB8DC764E6CAA317BBD744D5856",
- "legacy_metadata_key": "68922A3A6527240EBED0CD196B9B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C7C53111F6230A03EBF098EE9801781B",
- "derived_salt_first_section_no_de": "434871E2A7AD5C6790F7D92A71ABF53E",
- "derived_salt_first_section_third_de": "B42B5F206C415F916D127212F69F12E6",
- "section_salt": "61A9684057DCF739D5DEF34977401F31"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F7A1799F33CDCF260591DC56",
- "extended_signed_metadata_key_hmac_key": "94EDDA854BCE66B6503C3F7B5BD5064BD56272E7E812FDBC47B15F9D5DF45495",
- "extended_signed_section_aes_key": "464FE2C2168666E0C98BF0AEA2AC47AE",
- "extended_unsigned_metadata_key_hmac_key": "17A2D0EBE43C4D209CB5949B46187CD0FD7B5F4F755E819DCBE30813BFCF9C5D",
- "extended_unsigned_section_aes_key": "E0F61DBFC12490FFD88764B5AA64CC2D",
- "extended_unsigned_section_mic_hmac_key": "DAD477187375D7AE3137EBCEB6227E9F4451C1285A9D9177466585E3662177FD",
- "key_seed": "A759473F3D4CB0CAD6A6C930501352453DE80988E0D3CD2A7F85ED1DE97DF0AF",
- "legacy_ldt_key": "28FB055569176A99ABE20ECAF350B4765FD82E1C3358164B738DAA67C0C72EE7019E2303B7C84D21C65FF2368144068C71B0D3A60B6FD8BB31F5169632E2C4AD",
- "legacy_metadata_iv": "F788196E4B4FE34E197FF7B8",
- "legacy_metadata_key_hmac_key": "C68AFD854134E00BC17F77A91BB84A75A6CB83AFF287866666D02E3EED8BA14D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "80F1",
- "expanded_salt": "1F9EB26FA5117564834D405C4288A4F3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7F07CFB8821F5D01478DE47C8D250652",
- "legacy_metadata_key": "377B2376CD8F758C324CC8A59693"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "09410117658D61ADCAED619FDDCB5392",
- "derived_salt_first_section_no_de": "9E1F693C000148E6368E2F4B13511506",
- "derived_salt_first_section_third_de": "65D2DEA0F7AFE7F2B75DD4C333BBAAD4",
- "section_salt": "BA485904239E6548DD194E895F66E0EB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C6F18730DE1496250BC884A1",
- "extended_signed_metadata_key_hmac_key": "F05136C176656C853EE798C56B879D5B373EBD2251BF6FCDBC2CE23426C83CDF",
- "extended_signed_section_aes_key": "77D6ADF912BCF8C26BC7633389F4205D",
- "extended_unsigned_metadata_key_hmac_key": "4A12B4D3745B8D0B7EA2881CBDE6A63759E6E4E2BA89DBF8CEF55B2E14A8A18F",
- "extended_unsigned_section_aes_key": "596DB871A287D4316116D4B4CBE65227",
- "extended_unsigned_section_mic_hmac_key": "A72D313F60DE22037BC37F791E9A7B92E6058EB602F39A92A8A4014BFBD33BC3",
- "key_seed": "39880CEA4EA10B71143A1C01F17FA2235F5B865003C71310685683FF23674D5B",
- "legacy_ldt_key": "0C18C524FCCBB7D4C6EE1E7A07C5835C0ABD44A300FEAB120DB45CAA9A33AC9461F75988650EE8320FEBA0BB4F6389FA8A402284A66DEC9CEC5C34ABA2BCB00A",
- "legacy_metadata_iv": "C80FAEC643A7F3F0B1FF3A70",
- "legacy_metadata_key_hmac_key": "18C00E17828C92E049107849E680B3A55089604C23377115BB35127E34EF012D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "21FA",
- "expanded_salt": "F800CB300795E94C57C10FE97067053F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "480DC5ADE475CA21787B9445374088A2",
- "legacy_metadata_key": "BF196D04C00BC8C6AFEBD7B41068"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "25F7E797A78B0B33581DCD878C496159",
- "derived_salt_first_section_no_de": "F332DC7B817812C51CE4A0822F22AAE2",
- "derived_salt_first_section_third_de": "38AFDAA8C84E531A4F2210CE408B2BAB",
- "section_salt": "0DECA99AF6E70DB36DC1A5F3D63AF783"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B20BB1B0541EE396D245F45E",
- "extended_signed_metadata_key_hmac_key": "E983063EB77A91F135858779642E8F2ACA0BE58681CC95735D25BD98292C76F2",
- "extended_signed_section_aes_key": "2BC9E4852C5E94FF2F83579FB000CDE6",
- "extended_unsigned_metadata_key_hmac_key": "D08F11BD6F2996AF63B55B969A75CCCD9C932B40A3E9E7308DEB317389B684BE",
- "extended_unsigned_section_aes_key": "74CC4A91329B1819499F63F0B3050DF1",
- "extended_unsigned_section_mic_hmac_key": "73174BF7056DC71F113220DCDFBA2A5D623B193A92F0DA3BFAD4DB2316B55CF8",
- "key_seed": "C9581351C3DE7D4C8A44620CEFFBA14864C6B8FE57CFB2E8422868223ECCF2F6",
- "legacy_ldt_key": "590327B387CB136EF5FE2DE877A68886D6729F0FD50C393992D65DD3B26A0F142ABD349C61391DB046B5FF838F745983BB3587E501E0EBAE75E228DCA49899C4",
- "legacy_metadata_iv": "8C07A8131E4482A0AE340A3B",
- "legacy_metadata_key_hmac_key": "ACFA4807C61EC8B4D1D9283986A13B777AF7C9F3EAD8CC5CEA72993462F177A8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E081",
- "expanded_salt": "32AD35701E399BA3A0E34C96DD3A058D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C83FB557F3B46BE719E2254F3C71718C",
- "legacy_metadata_key": "857A7A920D3ACD4A523493AA40B2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "68FF0D6D028365AF2C82154DF09DA486",
- "derived_salt_first_section_no_de": "E0B6431EACDB64C29657770D4A3B96C5",
- "derived_salt_first_section_third_de": "87783BC546767D3DB381D96F751454B8",
- "section_salt": "AFDF387B481F354C16ADD2234A0391AF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3E5A8807C138ABDB269AB301",
- "extended_signed_metadata_key_hmac_key": "1B7A540E4A7824007AC1E55CFDCF5ACB9BC2774B41A6326E7954AF69E280F572",
- "extended_signed_section_aes_key": "77F7EFF9D27E5F6824F2E1D0D175408E",
- "extended_unsigned_metadata_key_hmac_key": "64D925EF5A1B97B4EF5F687C17846D8A84176C89B5C0CB204BADD5C95E8C6E8F",
- "extended_unsigned_section_aes_key": "039B34243D8E3CEBE1F679C7B1C61A4D",
- "extended_unsigned_section_mic_hmac_key": "0023C27BE013257791443C8DEE6A33C6763D39A25F66E2CC712F9DE674F0980C",
- "key_seed": "9519A1430A4ECF6FF805238E3E96793EA9229C1D739D850C16472534AA68B7DE",
- "legacy_ldt_key": "B30D9A978D9FC9181511CD22FBBC36FBC79CB628A0D3D0E677ACBD716865390741152D32DA64E1CAC6D826ECD61749B85348C52E4F11B76E1B8045CCEF9EEF50",
- "legacy_metadata_iv": "FB1FD481D2C917BDE15A6D91",
- "legacy_metadata_key_hmac_key": "A349E7261B7A4469D4079582B37AC5F651DF281BBEE6E581403C80E11CAB17BF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "12DF",
- "expanded_salt": "66FE179438E479723818F743087BC850"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "629E5FFAAA6EA03B9C3BA9F6CC07C132",
- "legacy_metadata_key": "31C612B70B6AA5AD76D66006A065"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FDE0B0775C2057A7A00D2DB131DE2670",
- "derived_salt_first_section_no_de": "FBC9753A61977B56F00E2D38D00761C5",
- "derived_salt_first_section_third_de": "8A9764A2356A651F610A05990ACAB48C",
- "section_salt": "6973BCE4E824E660C211007434D72116"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DA1430B4EA4726F1177EA45F",
- "extended_signed_metadata_key_hmac_key": "8D005F4F6A9BD53DF30C4D73017F801A3949AECB8DFFC93B8030001FA1FC191B",
- "extended_signed_section_aes_key": "6DB2A5465C94A80A8E9143D581A0A12D",
- "extended_unsigned_metadata_key_hmac_key": "BDC72305BE7670CE5B86C4B293B3CF77E528C065EA2A1DC0DE84543BD9664349",
- "extended_unsigned_section_aes_key": "1FCD9F242509CC2E6922DCF986FA9ED6",
- "extended_unsigned_section_mic_hmac_key": "F17D07588C9F1A672FC0D1D77F2A18A8519DCFDBC74A126B9ACEB26DAD336C14",
- "key_seed": "BA25F1DD557962024576FB35D50A92291F458E98146DF645E4F191DE2971B14B",
- "legacy_ldt_key": "223DE71991B8EC9DEBB4887F628BFE8B4F952ED09AC730C8B9275C849BB17EDB780D46E5BD5D7EB795FE9FF24F2702323804B7EAF8BAA9614115EB752A815FB6",
- "legacy_metadata_iv": "7C7715D24592D019431C61C0",
- "legacy_metadata_key_hmac_key": "EB8EAD55C4E4B358B716133C5C55092EEBF3BD57BABAFBFD35ABC5436A19E757"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C194",
- "expanded_salt": "A56219EC8C58CCD65D9F854DF364F981"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "54F9AC2E317C24F8EDBDE73C9F8CCA93",
- "legacy_metadata_key": "3729124A524FD8135450FF4BD070"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "61BB611D107048C2E865596DB6CED67E",
- "derived_salt_first_section_no_de": "F7D469E088E42D8C6337CD29FC4A8D0B",
- "derived_salt_first_section_third_de": "06D87B6A0111621B7936BECFF231B12E",
- "section_salt": "ED8FFB5E11505081A5EAAA0177E49E81"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EDD781A9F793005DB572BD7C",
- "extended_signed_metadata_key_hmac_key": "A486BAEE70B63CAD0F313AE79D31D6EC62D2D2CC5A4DA8A17436F5D6C66D932B",
- "extended_signed_section_aes_key": "51B12F534B3198D11D396CC78F53793B",
- "extended_unsigned_metadata_key_hmac_key": "1045402ADAE8F351177EE2CEBB061E14059D694B2B9C1BB61B824C7EEE11AFAD",
- "extended_unsigned_section_aes_key": "2F677B77768CDB900D9AB193CD2BD57F",
- "extended_unsigned_section_mic_hmac_key": "2E80A3982A0D00C1A2803041348A1C7CD02D425DFEE1339E737417323F1DB009",
- "key_seed": "3BF860786C86FC3C323005DD3360D8C7FDE361F101B0C107A5168A86ECD19927",
- "legacy_ldt_key": "A2F1CE27F51602BF71112C8B3B2ED1EBEE2E51DBEF16299F175434C2D5837144713A2802963E04FE89154084D1152E7612EDDAC63EE6A8026797EDECB737D9B7",
- "legacy_metadata_iv": "D8D6409253763AD45134C698",
- "legacy_metadata_key_hmac_key": "8E6DD5D62B261611D1A209AA241A0953C708E86AADACEF81D9542FB7FFB104F2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BE86",
- "expanded_salt": "AD5C81395DE0949AFB2CF8078E8D7B8F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E1FAA97C54BCD1E944F6758DDFBB4A43",
- "legacy_metadata_key": "CBC60B625D53316D3386818E170C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6A03006585FB8E61A8B0A8629B414E88",
- "derived_salt_first_section_no_de": "72C4913DDE124EC8E377785FD5C1A755",
- "derived_salt_first_section_third_de": "FEB4671BBCFE7DE54CD59F0EDBBAB6AB",
- "section_salt": "6551DF483ADE1F06183C1086C6DFF8CE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7EC2220B282ACD30556FE244",
- "extended_signed_metadata_key_hmac_key": "A42A0E2B6D9E6582FC98CA347D40979072EB0C656CA9F90A23DA538A25E3BB19",
- "extended_signed_section_aes_key": "F2B937C06ABB9051D3274332A359E90F",
- "extended_unsigned_metadata_key_hmac_key": "79CC93717262B5DE062B2FE6D043FF2265E0EC0A652181C2FB133410C06FC5B1",
- "extended_unsigned_section_aes_key": "F0D12BDA5109C7F470DEE552B1AB719F",
- "extended_unsigned_section_mic_hmac_key": "C1982C985110C3E9B5F0D6D7119D05435EA1CDCF06D4558CFBFEF4649CB520AB",
- "key_seed": "947A1153AB336A82E0F9C67955DBD6DE66EBF56EF659D62AE5D40257F23FA4D0",
- "legacy_ldt_key": "5D32DC97B7B5815B67D7CB08065302ED7C5EB1B35CD6640D6B9436EB8AFDA7EE52298D61BA6F96252D9FA9ACFFFB79963651297E778A7D33613ADACE6E75B7D4",
- "legacy_metadata_iv": "5BCB326C85D961B28DFBE87B",
- "legacy_metadata_key_hmac_key": "47354821131ED94B0EDA95355D2405FB11485EC8F4A07062E1DC2F00DA443560"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B968",
- "expanded_salt": "DE90A9067DEE0C062E981F997332FAF6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F885F256B77859B8D3F0FE2AF406EEA2",
- "legacy_metadata_key": "C54289C4EA674EDB004B8499E042"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C01096CA5D60C12150E753FE0D8FD68A",
- "derived_salt_first_section_no_de": "E6F97B6B15A496F0B93A749B1B6B555A",
- "derived_salt_first_section_third_de": "2D88C61AF40DA5D8AB8D0E42B783962B",
- "section_salt": "7EFD37085FE67DE9DFBBE6ADADFF1F22"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DB45A8E4F58AFF8950377FB9",
- "extended_signed_metadata_key_hmac_key": "0A0F1368F6ECC7353D5EE9E49EC3B8D300B90B3C293B92A0839F43AC3C669831",
- "extended_signed_section_aes_key": "150BE2928107CD729297086F393EF5A5",
- "extended_unsigned_metadata_key_hmac_key": "62D6476B29CE4AE6811DB1A3B5C898F2B2534B0B9CCDB054F6983089F32482EF",
- "extended_unsigned_section_aes_key": "CECA593157D968612E9BCCBA476EC130",
- "extended_unsigned_section_mic_hmac_key": "E8F6CCD704EBDBB81ACDF5FE5165FCA504DA01592102DAB5DB1246C5E4EB9690",
- "key_seed": "B9A1B3020850AEB41F586B12647DD576F9875D60D5ADE37FA1B8DE193E924B80",
- "legacy_ldt_key": "995DDE218ED859025B63AB52E1D717ACE851C826EC0D2D29176FB969140B7495B91C68C30527C0FFA9A8DFC020EC71C772A69D11BDA05A9888490281C3FF085B",
- "legacy_metadata_iv": "4B8B78C6553A1246246A3F0E",
- "legacy_metadata_key_hmac_key": "4BF656FC616DAD3636C498FA5D207F3CD0D3D4ACD2C81A4EADE926949ACFEB0D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F21E",
- "expanded_salt": "CE26D0DC511234FC3C537C173E9B7EC6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0384EC91D92C1565F3A9E925A0969CCD",
- "legacy_metadata_key": "405DFEACAF73BFA7199B218AD244"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "84335B36E005F3679F92CE44358B99CA",
- "derived_salt_first_section_no_de": "61E0BA067CCD1B50410C37289C55D907",
- "derived_salt_first_section_third_de": "0B5FEC7899C83531CB57FDD1A811E505",
- "section_salt": "12CD2AC6ED3A9B6D8F82EE4809795EB9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6B4025D47893390706336448",
- "extended_signed_metadata_key_hmac_key": "EF5B36517E9FEFC5AE3BD7ACFD3D8624C749401404B78E4C22ED64E39CB8244A",
- "extended_signed_section_aes_key": "CB503FA539D86656D34D82D2A8F5A08F",
- "extended_unsigned_metadata_key_hmac_key": "458D913A4A46F8A3B3E50B5DEC9F80DF8B0E49CC6203915D8E6FA75D634D469F",
- "extended_unsigned_section_aes_key": "8370558228A38303836BF916EE9C4873",
- "extended_unsigned_section_mic_hmac_key": "1AB8E9B93B34A490AEECBCAA51C62F20FB27B99CB6409D7814A617FE8CC26FDF",
- "key_seed": "4DD207D545BECAA82FC485F36FC3D3E6F80FEEB3182680195A58B5D7367CF600",
- "legacy_ldt_key": "CB03EA167363D4CC05476BC42F5BC02BF508005423C6EBF6BF0915FF3F0D88FF46B259948AF327AF74C026A59CAF56E5C250F3E1B993737280F8F43E3F9EA280",
- "legacy_metadata_iv": "1DD1B7451E253C7A148A2E10",
- "legacy_metadata_key_hmac_key": "AFA9671CFB5F6542812B413DD406ACFA27EC69151C4853D89380F823B82CF9E6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D4E1",
- "expanded_salt": "4295C6FCC2D61562AA396DC8B068FAE8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DA2E382AC76122F6D131415F3D8079A5",
- "legacy_metadata_key": "AD9413153A84B28AF0B40E2A0FD7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "76BB57244D6A5ACC7D68EB275A3EA35F",
- "derived_salt_first_section_no_de": "45E0FBE0F0242AAFEE638912B55EB1DE",
- "derived_salt_first_section_third_de": "594548420488EC6FE84A29B4ACD9D401",
- "section_salt": "EE25F47DABD04E3F80F7F44637D4E8C8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FCD79FFAF58F542859FF836D",
- "extended_signed_metadata_key_hmac_key": "7C8409A07D277E380AA64F52C51A50E2B1AB1F252D30DFED8659BA410093E9AF",
- "extended_signed_section_aes_key": "764388AE951C567D3688EABD3C538EC5",
- "extended_unsigned_metadata_key_hmac_key": "DD4527BDB3A09679A218C02EC3AD58421745E736E2EB578B833C887920565A6E",
- "extended_unsigned_section_aes_key": "A0BDAB11B6CF1C0C501C64F1419FF3A3",
- "extended_unsigned_section_mic_hmac_key": "98FF62C25187E62551F61262BB501B613A6B4B0BC1D6D9CFF9AA0EFD3ADB1B58",
- "key_seed": "0841D486EA98B3C27E27DBD78C964A9396B824FFD52E050BDB02EE11092B568B",
- "legacy_ldt_key": "95A0EB4E007030C8AFE409C3720F2E0336623C701D3894268BA415B3B88E51FC0A705D86698E94398090CBE08DEFDA288FE25C690679F9CC20A7F016A80533BE",
- "legacy_metadata_iv": "DB6A4D73EB0426BC7AC44219",
- "legacy_metadata_key_hmac_key": "3C522D37107514BB4F17786BB069699E04D4453CDE70C0B6D8DF2C8DF515B890"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7C7A",
- "expanded_salt": "0E10ED93CC579C78D759EF863963BBF1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "50E5D0664505A8845D257524FA329311",
- "legacy_metadata_key": "3CE8F8911BE097EBEA0FC50F5F41"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3F24D8D025E2879CDAB33DB5507635E8",
- "derived_salt_first_section_no_de": "23FD098C44941D91DE2CD39816C82547",
- "derived_salt_first_section_third_de": "4FE8C44835F0FC261F60E7751B2C5AE1",
- "section_salt": "E2DB987F196AF8D1B9C34D6705353D6D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3C71F205BE9431F6EFA16930",
- "extended_signed_metadata_key_hmac_key": "D620A958D3DB7E598CD306AB9378E4B1F7936CA0480D7C02398891E1D40250F4",
- "extended_signed_section_aes_key": "58E1D661770B20BFC715DD5626145CC3",
- "extended_unsigned_metadata_key_hmac_key": "D814DE22661BADF12638EA33C5A566FEE80EAEB6A93197C1F50766AAB8060E15",
- "extended_unsigned_section_aes_key": "8C34FA5021565A1BF657ED17D798C99C",
- "extended_unsigned_section_mic_hmac_key": "E703627C14891315125A9A12E4D83F7E6A277812CE225626FF2967D551B0BEC0",
- "key_seed": "1FFEF03858DE75578DEDDDE51C483F234E84E7F840FCF86B105D917A343B4C1F",
- "legacy_ldt_key": "7B01759101978AC80283B76EB14AA15CC48DD41B1B78C62F80B6D096270322D860EFFE5AAACC7828767764354C391735FC5A74B0109AECF338693A7D870AAE03",
- "legacy_metadata_iv": "2192F091E21AD8B7A8014D03",
- "legacy_metadata_key_hmac_key": "2EEFA9737AFB4D334CC25BA78F66E919C00C64CFD5FC7F800BA48535A6D84251"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1588",
- "expanded_salt": "555EF1DA349514A0E2361476231F3C6E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E0197AA90894A0361A41E15333FFEFB3",
- "legacy_metadata_key": "DBC0AAADE8E66C9A26ED89B1F05F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3431E2A4546B0D7A90A1F0F285849EE0",
- "derived_salt_first_section_no_de": "C01B1AFFF36A10D9A128C420BB086E22",
- "derived_salt_first_section_third_de": "6FE48DB6277D046C275250F1FD3EB695",
- "section_salt": "045F563BAC41CD54C0BE25C0B7C16249"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7229B0513CBD5F5622A02726",
- "extended_signed_metadata_key_hmac_key": "F36D7D29C2E104F8F35A89A800BA7FEA8F8E3BCC0ABB7F7D9351FC30116F1351",
- "extended_signed_section_aes_key": "14E7F377170AB35568D09A79FE03D7BF",
- "extended_unsigned_metadata_key_hmac_key": "E1A3CE0B0E43622D07E63BCE6F3A01B969F655D7746E0528238FE4312B0450C0",
- "extended_unsigned_section_aes_key": "81D9C0B7513D4EBE88998922C45D2716",
- "extended_unsigned_section_mic_hmac_key": "3E54D9B8EAB7AF8FC1792C47D7AC0A080BFEF6A5D3DB7303D17F89F54704104A",
- "key_seed": "1F9998044183FC7A411DDE50C240377F0778AE046B1FFE246963F44A123CAC39",
- "legacy_ldt_key": "7481C70DDDF82211295A71F31ABBBCD4C9BB7CB086B9E9120BCE2AEF980D08A07CA7C73466E04F2F9FD055454DBEC9AB6CED55DA6FB6C98030862D1932915863",
- "legacy_metadata_iv": "8043CBFD5F8592E42CD662CE",
- "legacy_metadata_key_hmac_key": "FD304C8750039A22EFD042A7B43588E54FCAD5F44002289E4E11A94E762D7331"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5AB5",
- "expanded_salt": "33C66EEC104FDC3FFDBEC0DDA645F160"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "25337729A38665DBCE4EAD46756E7485",
- "legacy_metadata_key": "C8B245024145C4C66FEEB60A5423"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A6217CDC1683CC07D47933ADC3A1F629",
- "derived_salt_first_section_no_de": "C4A0DBF8745CE2D8B5298909524D0D2C",
- "derived_salt_first_section_third_de": "6D932FFD7157C559F73A324FD52D2147",
- "section_salt": "FCD96E599675A15E3D7798A5FA4E1EFD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0873E556AA9A02D9F774F25A",
- "extended_signed_metadata_key_hmac_key": "8D22BE13B71AEEAAAE8FF4FA26220EA55E9A1D1528C85C3DDDA2C1E57855DC26",
- "extended_signed_section_aes_key": "216F0033C878B2071C39266F18533C76",
- "extended_unsigned_metadata_key_hmac_key": "CDC1BE7AB483BF2E4C75B37AA14055302F222AD604957578728BDA012688421D",
- "extended_unsigned_section_aes_key": "03FA96693931CDC1B3F2AAFCAD734CC9",
- "extended_unsigned_section_mic_hmac_key": "31918C75C61CB73E97FFE92891DC1AAD17C5DDAA6C5843E4BA6B17F0A7FB8DF1",
- "key_seed": "CC9850A146DD389C5D5461A33D7EB6697BE2301C233F1F8EA79C2F2FA8375D77",
- "legacy_ldt_key": "ACE233FDE3C99CD26148053734F0ACAE0C2AA9FEF78317D1303B08148F2A20BE32F28D4893422AB91F29EC4624903BABCF6BBA793F645F2DEEA38BF6420D64D6",
- "legacy_metadata_iv": "8299B3510A58BEFF70AA65A6",
- "legacy_metadata_key_hmac_key": "A8C84FE621B467EFF92E05C2AB3B878A7F59AF476D6DFD860323FDB301B0CA6B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "147D",
- "expanded_salt": "59A90EE165C62F6376D502230BF35B52"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "510C18B7C8C144362148D26B8A032649",
- "legacy_metadata_key": "46AD57F9D03A2703A374E8F9EFD3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1B5AAC0923801DD0720B65F4F2AB2692",
- "derived_salt_first_section_no_de": "B71A1E329B0F01AF5179207D1FDFF89E",
- "derived_salt_first_section_third_de": "A2A4AD9F009EBC7011FAA45AEDC0D8F3",
- "section_salt": "6E25130DF7FD145699B3735AED11FBFE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8716820409FE0B2D49DCB21B",
- "extended_signed_metadata_key_hmac_key": "D101EF54769919BA95C0BCE003DB00E86B2B9B0DCCF6359205E1E13125E6658C",
- "extended_signed_section_aes_key": "5DD97E221A0A9B94CB0D6E4031F2535A",
- "extended_unsigned_metadata_key_hmac_key": "54C7C093C91EEE0681251F46E4F8BAE2CC407289354D05C783DC856F5548105A",
- "extended_unsigned_section_aes_key": "2833EAC72F1F153462515CA86367C4C8",
- "extended_unsigned_section_mic_hmac_key": "77AAC688DE914E0980B006BC55DC091290E3EF6E241D02A6E56162E7F7F17491",
- "key_seed": "7D845DCF187562A04737435FA26D472AF2B829B040BADA45E1152C8357CC407B",
- "legacy_ldt_key": "904045B23019A3CE2F70DA4B552D400E163C6C35B0B13239218BA339A575E37CB2E5E7C0786F2204739039063B92275DA211952F1976AA5FEA2CDC7316EAA771",
- "legacy_metadata_iv": "2BC1BA0C510AB1A643C35622",
- "legacy_metadata_key_hmac_key": "7F985244DFE68B898203927DA265D4077A29098A05DF70893F76ED81471BE0D4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2C02",
- "expanded_salt": "B7193535640841E3BA5A6D2BC66D2E19"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F551B01032D14627DF047ED444332218",
- "legacy_metadata_key": "F8681BAD9C84E8EA444F6B1AFCAF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "129DCB124F4B77141106124D45494AD0",
- "derived_salt_first_section_no_de": "0CF1894FBD8601AF2D2F06A9C37AAA43",
- "derived_salt_first_section_third_de": "1B58C881BB7CE6AD88B190F0D76C6BE2",
- "section_salt": "D8CE47C35D4E2B8B370CB781BD5AA922"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "481515CE6AD2652B5C54D09C",
- "extended_signed_metadata_key_hmac_key": "61FDA355445026F68499A00CB5F89E563DB21AD4A7CBCFAA4C91408E48F8528C",
- "extended_signed_section_aes_key": "921E632ACCF7391D2BB6FA9852078EEB",
- "extended_unsigned_metadata_key_hmac_key": "22430B4B3C5B859D68580800A7DC5D95001025955FDC32485D4D8D06EEFC78AE",
- "extended_unsigned_section_aes_key": "63DFB53FAD39762398260856C1FAD985",
- "extended_unsigned_section_mic_hmac_key": "753A35757735A5F4DDBCA5D1D062D98B017D5E26F47939570FD7BE838D4D59F2",
- "key_seed": "A5FE8449281ECAC062665A4F27D82FE6D2AD916E784903EC6760F3B75CE1A2CC",
- "legacy_ldt_key": "DCBD1618833490BC87DB8D5B8FE44757556E6A1AA9AD8B379A36231FBA79410A0C5B22A864C33329F9E03355718C2248C7664D86193A46A0B0C02E6E44CD59B7",
- "legacy_metadata_iv": "6C99D51DD6376D4DA3276B08",
- "legacy_metadata_key_hmac_key": "D83E0C4E6909F9AD821932D032A421CE56C9D704CEF31372BC4859FD9A48D66C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9393",
- "expanded_salt": "DBFE858C0C4FF9A80B2F050AD98A684C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5D85A197F8D813BE8C2AB9350678EC11",
- "legacy_metadata_key": "0C9F27D83E7947625EE7428A1357"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8175D203DB6FA94F0A131F871BB7AEC0",
- "derived_salt_first_section_no_de": "9686E93A49101E3455F17FFC0119A492",
- "derived_salt_first_section_third_de": "4E5F51D92635C86C1B5AA35BB60928E5",
- "section_salt": "1F45EC1326084D42EACB220C75407197"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "87478595E9116A1272660BC4",
- "extended_signed_metadata_key_hmac_key": "FF5343D38ED2FBC70A3C77709C4589DA3ED813D4FBA57CDDF2F77DDB09093196",
- "extended_signed_section_aes_key": "2A88DD108C2A6DAFC84719B37CD822CF",
- "extended_unsigned_metadata_key_hmac_key": "13D096536AB084DFE92B5E771E340DCC6F2B5FA747C658937A910E979329760C",
- "extended_unsigned_section_aes_key": "C61901C6B3BE36B0054DB757BF1AFBA5",
- "extended_unsigned_section_mic_hmac_key": "C77CF9033FDDA27D0BF526EA87B3022442354432B31D5291196D58A59510F5E1",
- "key_seed": "8349C1F0C410CA0CC1D674D27638ACFABA5FFB49CB6BDFCAB6738C20746AA051",
- "legacy_ldt_key": "944431FD2B09B0339249E74942025A281D0B6FD7FBB0285B682A534D2A219175C235E0D9C2030BE3314DAF79C952014FC52B1575016EF5BE3CD3BA36B35F409F",
- "legacy_metadata_iv": "3D6DED52DBD772EEF6BDACDC",
- "legacy_metadata_key_hmac_key": "BF8115B20B0B3764D099F298E7C14983B3F38AB673B334631AAF9892150990F1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "809D",
- "expanded_salt": "D403A02A9AB0B76F6429A111EA009807"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "91D618ACB24653BFE92F743F8143514C",
- "legacy_metadata_key": "6B6262270E434C66FFA18776049B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A2D9617268CA2428F62471E4FA4CF0FB",
- "derived_salt_first_section_no_de": "3E84A2DC7304FE9AC1A69E55EBA30B4D",
- "derived_salt_first_section_third_de": "0DE124F9872FACD30128FE825CB0453E",
- "section_salt": "5E0B38F6B50979673C8CB9BD9C9EC900"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FC0A89FAA715A534A01B001F",
- "extended_signed_metadata_key_hmac_key": "04486E9E7434E0DAC92C931FDD46E2B03872A2A67F4A5E1A9821A5EC0CF89008",
- "extended_signed_section_aes_key": "54B919938A512E96DAE0C5AB322C2ED4",
- "extended_unsigned_metadata_key_hmac_key": "6CB3477429C2D63C84A82C41C5DFCD263C528FF1D843D3C6E833763C3A1EE540",
- "extended_unsigned_section_aes_key": "A39659F7958497C6688FFA2946C12638",
- "extended_unsigned_section_mic_hmac_key": "D83619E23444ECEFD6CA3D98086CCCEFF3BDF1B7F90E570ADB6B48EF22EDD7B3",
- "key_seed": "17D6E1F84D9503AAB3BDDA9B2246949CE515D75D617CA911898198636D42F07D",
- "legacy_ldt_key": "3C647C3FA3386F06A856897B8FF2461392AB90EC3E17926FFF3880CBB378C3B9276D4D5BFC918AD61DF3722546BECAAA5690E9DEE8E299570DBFDA50B5130CE0",
- "legacy_metadata_iv": "4498FB3C706FA06E2F07A319",
- "legacy_metadata_key_hmac_key": "BF05948A6909E55A0F3BCA8564F0339BA4EEDFB1F7CBC2F55194EA75E6B18855"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7FD2",
- "expanded_salt": "D68817AFA957519E2B35AD2D74DE08A7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F764C643EADD99538CC7F0AF385829E9",
- "legacy_metadata_key": "DD5A91A0F1FE68D093C427AB8DE6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D465E2D83D3B236257B92B09C2A24196",
- "derived_salt_first_section_no_de": "BA482E698BE747689891FDAF5CB7E911",
- "derived_salt_first_section_third_de": "29B8D7AF983B4350DB2A14DBC57A8896",
- "section_salt": "9C75E57DD05BF2D2D7634B4B47877E97"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6723CA7B910FD724FBB459B2",
- "extended_signed_metadata_key_hmac_key": "096D2C5C9C91BE23137AE42ED56E36CC216B8AB23BF5F0C4DB26BC398240C6EF",
- "extended_signed_section_aes_key": "FF7F8F5D1E713CC61D6F7D59EB67EE68",
- "extended_unsigned_metadata_key_hmac_key": "714B001EA822344BBD5A854AC43FA91007992136EE7E3A44970A38206AFD92FC",
- "extended_unsigned_section_aes_key": "DF928F72D1B43733FBD304B5213EF601",
- "extended_unsigned_section_mic_hmac_key": "E50FCF75C6D7DD62FFA84387A7D94EFFB17B1C8FC0E0D37EFF7C818B3FED5589",
- "key_seed": "7CCDE4F0087A1339ED59165EADA06545F79FE9754858F1F0AAB59B4E08F4CD02",
- "legacy_ldt_key": "944232A331E7730508D88DB2D7E51C04D88ED5CBD4175AD0A20770418F67A8A10BB959D245028BE23B72032D578D39EA6D804435FE281A8601C876CA3B68FDFA",
- "legacy_metadata_iv": "DE009109FC89835E9538996D",
- "legacy_metadata_key_hmac_key": "8A8AEDCE6B88F9254D9395C31725C155133D63D9BC4FED7EF9E5B4935A03D188"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "867C",
- "expanded_salt": "E8B2EBCE07FA9D4B9A1F27C8F5E27E4A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FB7680395B649D94AA4E2C456D6F57E3",
- "legacy_metadata_key": "6954822C184C7E26C3FC47443BEF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0776657DF8FC486F048D9D31EBBCAEC3",
- "derived_salt_first_section_no_de": "D2E338B4DC7031CB504EC622F9DC10F0",
- "derived_salt_first_section_third_de": "310197D6AB2B312FA3EE942BFBB032D7",
- "section_salt": "2FB6E330CFB581F814BFCB9117E0F2BF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3E445D0CCA771B559AC132F4",
- "extended_signed_metadata_key_hmac_key": "79894EF9A903D2241200EE79E2068B40D99788D660608526CA4B49752C7228FC",
- "extended_signed_section_aes_key": "1E5B7062683B715F8636B7EBB7D1AC84",
- "extended_unsigned_metadata_key_hmac_key": "70B00CDDFD77C8511275673E60E29DDE31BDB9461A8750E5B4D0DC4015E169A7",
- "extended_unsigned_section_aes_key": "193F7EBE01C1E93F93D4E982B5C0470F",
- "extended_unsigned_section_mic_hmac_key": "D1E90335329C375DFB9B0A5BFA4F6AFCC156E8446EE1AB096533D896D1364348",
- "key_seed": "28792FF092AD4296826BDD873542505ECBFC078EEB0732B15A0A516EEA374123",
- "legacy_ldt_key": "FF9FDBE1B5124AED17E986FDC02228DE049C8168AD4F84AE2F66AD9953C810FEC4BE7148D0763227583FC72EB9F6F8E1376996010DF81D45568A3C62D1D3A403",
- "legacy_metadata_iv": "D54058DEF711E5C1712779FC",
- "legacy_metadata_key_hmac_key": "910AE32428AB4A00ABF23F50E4B3E94E3C903ED1CBDD22693C4E9BBCE9F52307"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3258",
- "expanded_salt": "C0362D16E64712697496A258479CF544"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CB3D1754DEEA166E68C3F6B453FF6E3C",
- "legacy_metadata_key": "D3A860F0C52197D4AD861FF63E9A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "10AB35FBDE5465B1DCFA7F9CD8D93BD0",
- "derived_salt_first_section_no_de": "C6215BE015BB6FB16F3BF8348C62C51E",
- "derived_salt_first_section_third_de": "DE730BBF3ECE792D2EC9C929523570DE",
- "section_salt": "79004D3509F0C4B749A82A2F89723198"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "51E125BDDD7D6D26D61092C7",
- "extended_signed_metadata_key_hmac_key": "036BAFB65B27497D303BB3B964BC3D58085BB0DE83EB7D8971F5B7F3A688D4E1",
- "extended_signed_section_aes_key": "224C453593428A15E9FAB80F5EB272D9",
- "extended_unsigned_metadata_key_hmac_key": "1C5216BC1CD7FF171FE0F8DC097D19B006145E74256D5A2E2624D0DFC7481313",
- "extended_unsigned_section_aes_key": "1AC71D2DE075DCD67F6A52C2F75E495E",
- "extended_unsigned_section_mic_hmac_key": "A4770E2A6CE182D984DFEBEE75EFB1BA9F0B3100040C1F28E554A8DDC803D6F0",
- "key_seed": "66166824FC7218FE1C188EEF39DF72E6E7FBE689AA0D05C62BEB16070778AA18",
- "legacy_ldt_key": "8F1D4D433BB9C277A266283B56635AFD48C131FF3344ABB217E04E35C714D49F6716A96552A6DB31F133AE58270E70B9468F28773A91F781E32F582A6ABA6F8A",
- "legacy_metadata_iv": "A07135EF5ECDA3435D8B800F",
- "legacy_metadata_key_hmac_key": "6E2EB70F52519628C7D179E5261C6186FB4009C230BC2B32A60B8A3C9943FEDF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ED7F",
- "expanded_salt": "2CB7F069E3E860E04F56F9F3D6DC59AA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EC4F03AB93AC4A711615B91ED4C9EE22",
- "legacy_metadata_key": "F0332F59662EC98DDFF6BD828F8E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F2E994F3E5AC898B930B55180BE22C66",
- "derived_salt_first_section_no_de": "CDCCC20BABFD3E83F85916123D7E9AB5",
- "derived_salt_first_section_third_de": "F1F4584F4CFDACBDDE335E6C851B5F23",
- "section_salt": "AEC5AADE5BF85A506E0093E85A83E4B6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DEBC1687DF89B73AC3A29B42",
- "extended_signed_metadata_key_hmac_key": "008E793560DCECC76DE509002CA1712AB72E4535C963784591BA88F11A907112",
- "extended_signed_section_aes_key": "841CBBBAE199F5DDD4AC01762C330C4D",
- "extended_unsigned_metadata_key_hmac_key": "ED5A911F12DE6E49AE44D19FECBE7080B2A391B825C01809D9F6AA26AE4F329B",
- "extended_unsigned_section_aes_key": "83F9788F59807C26C68663765760EAB4",
- "extended_unsigned_section_mic_hmac_key": "30328B436738E2E4F15F006A64F5CD274D48E77DFCCCF9BE0A8DDAB834F68A82",
- "key_seed": "74FC8E02E73A4E36D27D24BC36024FA8F17C25D76F56466A7B2E42C27BB79189",
- "legacy_ldt_key": "855B17D314EDF70E3068E2C1C389758C03307047E34A2CECB9515200B2E4375736FA79A1A22FF4EFA43E5E1874844D6D80E20BB261D0534F6F012A051BD30E05",
- "legacy_metadata_iv": "DC16B036290DC770116F0FF2",
- "legacy_metadata_key_hmac_key": "5B9E40E82449F99677525D0C01013059E73E9CA48F87DF8BF3E5CF4118D637F1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E440",
- "expanded_salt": "8BF4DA30DF96F4134E52A02AE3C45B20"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6E0D20E26AE45D46A062E5C79ADB61F5",
- "legacy_metadata_key": "DE5721B82A319D4E13DFDEA9E674"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C7A5CEF9C137C6886C455833F63A217D",
- "derived_salt_first_section_no_de": "67C90D1CB65B619184B69ADBBC698E0F",
- "derived_salt_first_section_third_de": "73CA523D84080F864F53544E4C231B8B",
- "section_salt": "C45AF4853E67081917B8995C1D4A260E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "43429038D1BB791674866D45",
- "extended_signed_metadata_key_hmac_key": "1F8955A2A1A800BCD32EF33A2F4A07B136FB4F8F4D7D66DF6551B60A80F7FF98",
- "extended_signed_section_aes_key": "2998AC86FAEC4C80965D9CCB5B0BA67A",
- "extended_unsigned_metadata_key_hmac_key": "473FDBEE23F383D401FADD862C9E3E700CDC76F7268EC8F2B4FA2F1C90A0EEFA",
- "extended_unsigned_section_aes_key": "2D474C9F6881D273BE240912CEDA8DD1",
- "extended_unsigned_section_mic_hmac_key": "33DB3150F1CE0BD0833A73C192AB62726C90E6CA1BDB11703379F88DD0CCC087",
- "key_seed": "5AE2F25C9E5DE69484FAEBA527C6194B7E34FAA6EBAF9F27EF7B521FCD8A986C",
- "legacy_ldt_key": "3DCCA02FEC967975BADF5A62DE3BB690D0D8CBC1A717D82A361E324161DBFD9B2265C5D02F1D7DFA40B4C4F1A5AB2AB2245877033648201AFC2640CF98ED0A12",
- "legacy_metadata_iv": "54A2E80878BD1065E9B3ED60",
- "legacy_metadata_key_hmac_key": "4FA102910D289D3F0BBC593862ABF82EE374A829FA9C099A12085ED8AF1B7673"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "94AA",
- "expanded_salt": "C6235FCEFCC91A3F4C180CC97265F1B9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C16386EE2A952A7298EFD68335B353D4",
- "legacy_metadata_key": "4BF1D50B2414C7405C91CB1668FF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F84C46292CC0BEACA240D66AD2846465",
- "derived_salt_first_section_no_de": "2C55DC6422718D59DC8C68A52A4D6433",
- "derived_salt_first_section_third_de": "C80BE605A23EEB072846B5B2B821C16A",
- "section_salt": "790E59E15BCA93E58B6843D8B0825729"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "423E8E5AED51078C06A89323",
- "extended_signed_metadata_key_hmac_key": "78FC8832DA83A8ACBF4201A3C7C0F42F653E13F370465C5B15BE785D88E0622D",
- "extended_signed_section_aes_key": "313CD8BAA02F0356648EFFC7A343463A",
- "extended_unsigned_metadata_key_hmac_key": "85FE712E4D7F5BB0D7780A66EA5763B3CA6FEFA634511690E8BF15CB6E859BE9",
- "extended_unsigned_section_aes_key": "B466E67C613ADCEE2340C456A3D89DAE",
- "extended_unsigned_section_mic_hmac_key": "848ECD94E6E699494CE4E2618D0B63B1F33C4362BB1D8AB84C4DC58FDEBC41A0",
- "key_seed": "F2B2F3F14B819B0C6E7456E2FF970869ABC1E6CE7950E11014B4730E079C9BDD",
- "legacy_ldt_key": "A89E35AC962012C593EF7A2A2DC2E61E762D3E52410DACF9239280EC1FA410881D6662BE4DDF0BD1275C1E9B299376E1AE0E1DE10DD871A35CD41763185AB0D0",
- "legacy_metadata_iv": "D8AC45CDA13816CA60729110",
- "legacy_metadata_key_hmac_key": "E6427F20B318B7CEF2A427BBCEF52A5955D23C3796AD6EF08174B55732D06DEE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8E52",
- "expanded_salt": "A64B76CCA3756A5C1C03CF1DB2084B64"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "91D10E793EC107FAA79D5738F0F97644",
- "legacy_metadata_key": "77F872DCD00BDC866F9283C2DDF8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C7DB65DB44350FB358B335F0EB602D57",
- "derived_salt_first_section_no_de": "756F9C11D637B8D84A55B05919569DA1",
- "derived_salt_first_section_third_de": "B66B8343DAFEF411BEBCBA9995DEEF7C",
- "section_salt": "92BE56D3CFB557E74F76DED9B84B8BF2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "38E94164986AB375D86DE203",
- "extended_signed_metadata_key_hmac_key": "963F6DC2D00F7968FA0976E62BF04EC4E85FD8861C3BD53C72E32BA12411A4F3",
- "extended_signed_section_aes_key": "3DD1478702988F3C7BB83C13216DFD36",
- "extended_unsigned_metadata_key_hmac_key": "5FE7113B25F4F8F64BA935EE10FD2862960D7B4F96674E601662D8F6766E103A",
- "extended_unsigned_section_aes_key": "0CF7D57BCF32F1422ED07211B76A3671",
- "extended_unsigned_section_mic_hmac_key": "3CD550FB3D9D98733C4E0128CD6FDD8657EDCB697521E18B85D37F172BBFE4FE",
- "key_seed": "FA591EF28294097AD59BA47DEC4672F37670C5130FAF518CE839D766FF8692F6",
- "legacy_ldt_key": "446A3947B4DDF577502DA5442BB23EA3B40D2317E2BC43089D1F74FDC804E0ADDC23A42339E2C4E24CC988890EE4E90799AD3E3941E96CD83D77CE85E9693EEC",
- "legacy_metadata_iv": "09B6D87ED6590030503E8E74",
- "legacy_metadata_key_hmac_key": "2F04F90B911A4219420E2935FFB941F51F363379FC79F6F995935ABA901A326E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "745C",
- "expanded_salt": "62CCDECD43BFB57D020B51A5C4169FBB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4DA009EF5027394FB3E786420D05FF41",
- "legacy_metadata_key": "59C79C74E3608DACCDECEFF1E862"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0FD8D1B9A8DBA0CD843C41C44FD7D528",
- "derived_salt_first_section_no_de": "C4685EB378954E262B809F9EF46F2AE3",
- "derived_salt_first_section_third_de": "7110DBB41B05770BE59D726CEE07BD16",
- "section_salt": "406AC14DDD5BE1D08D90ED6512B00387"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "20A1A74D0A22D6B1B681F9B5",
- "extended_signed_metadata_key_hmac_key": "E44A8F5C603F085961BC1A115C5BADFCD98894B438773A608A1817A5FD605346",
- "extended_signed_section_aes_key": "169A7E44B4668FDC06CE0EB0B289EDF7",
- "extended_unsigned_metadata_key_hmac_key": "72C207D483E0C3C48EE8CAAD5A384485F160FFA6FFD9D672B8347089C6104E88",
- "extended_unsigned_section_aes_key": "68A26B6491038FC4D4BF0E4C83D4A248",
- "extended_unsigned_section_mic_hmac_key": "BBB2766919BEF6A8A3AB2D7C6F1A758F606BE40FA1391EDCCA9A2F884F44898A",
- "key_seed": "B3E3C29DE5255B6AE6AE76D2BB4DA3D1B273A6864697DDD1A36F8E359B4285A9",
- "legacy_ldt_key": "CD647167AB308CA1CC740EA04F2254AC00B4DEABD7B783FC3F65D965C021D2E37C87A50C8BB6F14AC2999C3B9E6ABA8997DA7985D8FCD4BD6E67FE7253870A7A",
- "legacy_metadata_iv": "E585DFAD1E8A3CAAEE03348A",
- "legacy_metadata_key_hmac_key": "B1E2DF42471D98C30651B9632EA305EE33C8D995B3B97695FB5871E567AF7E28"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ACCA",
- "expanded_salt": "FED41EC29ABF37B24CD3BDF6D3EB1A1C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "298A4853AC355339291C9E30CB7A6F7E",
- "legacy_metadata_key": "15429A8B598455CD5B6AC955A67A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "26C5B255DEA93A6D0709B6CD7FD083EA",
- "derived_salt_first_section_no_de": "B8301E17B098C42556133916E0AEDA34",
- "derived_salt_first_section_third_de": "EC04CBD2709D8D4399585E2753A6FCAF",
- "section_salt": "A56D3F6240E4112BD9FCB5E4E90EDB7E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F09C78EAE7C0D1765553050F",
- "extended_signed_metadata_key_hmac_key": "9D3ECF1019D2CF75B6496E35CE169EB1F1E2E4D4B33CB644A1A3157D87DF34E2",
- "extended_signed_section_aes_key": "4FB013AEE40E05170C245DF68DD0C8F0",
- "extended_unsigned_metadata_key_hmac_key": "0B74A7B7EB8E87EEC2EAB41BDB3B079D6A50A6F82EEB54BC866BC3C4EE920F71",
- "extended_unsigned_section_aes_key": "169611528C30A62FE8177BDE25A81154",
- "extended_unsigned_section_mic_hmac_key": "5DE16E1E230052DC3EA29A2AF90E247A23AA192F64A2C5B8A5D6DB665D113A0F",
- "key_seed": "8A7DE61632D9127E19ECB78351D2315722BC62DBDA55CE020D4A43F25BC723D3",
- "legacy_ldt_key": "765138D3D2E5AA5306BEA218F4696365EB6F6EA35E6FEEFB82153AFADE4EA5AF7D5D2AF26BD3E8BBD351393835B4C805A9EDF5D681E8388716C352047ABCCC69",
- "legacy_metadata_iv": "3839890C5C92DE45A4A3FD64",
- "legacy_metadata_key_hmac_key": "6144BCDE77A64B9CDEAE7A96E14CBC1DE14A260FB8A043B929756344EC771B84"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0CDC",
- "expanded_salt": "5B8337C2A530ECB757885A43B9457C86"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "60DD5BCEE6BA14E025AE5E32D652986E",
- "legacy_metadata_key": "EA57CA6C6B0BC4EEFF60741536CD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "90CDEDE05B14E209546AD92F2DE5752C",
- "derived_salt_first_section_no_de": "41A8EFFE68442D1B70F581E9CAAF3B6D",
- "derived_salt_first_section_third_de": "155CBF6F1D0D8B18B080D662B22766C0",
- "section_salt": "E65254396F0DD4CF4B168459C4AAF7A0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E81683BF392DAD0783E5FC98",
- "extended_signed_metadata_key_hmac_key": "BAAD465121FA7809F268699C14AFFD0C1EEBF9049E8D81158E42F9EDCC99F905",
- "extended_signed_section_aes_key": "DF051E0C61F756E65EBA226F2CC07B69",
- "extended_unsigned_metadata_key_hmac_key": "870F9C98D664FCF5CFD6B2E49DF8BAB2A6AB29C680C4627A09B470A6BFD25367",
- "extended_unsigned_section_aes_key": "DE7735F315AC1315B30AAAC3AB200504",
- "extended_unsigned_section_mic_hmac_key": "537CEF7B96F5162E190FFC9062A67110CCAED4734658D17A0FA98EA39EAA9A52",
- "key_seed": "74718747F2C7829F001C1D5746A7CC70F41CFBAFD48F8DBCA327F26516233EB6",
- "legacy_ldt_key": "B6CE6878483F1E3B07948554F192C9D06634FA70BD9DA20ED679B88E1033C864DB4E96B9E41DDEA2140DE27E9484908896F1B8274248D74A6D91CF64AE87194B",
- "legacy_metadata_iv": "46BDAC7C8D7D7278F7188FB6",
- "legacy_metadata_key_hmac_key": "B6C0DB00E88A2AD0B22E4A4A4B0D41DB65134CD65B33BA8BEAEA703FDE33B540"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "644F",
- "expanded_salt": "483FF54EDD561EA4630147C248A75077"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C5ED9728052D0E5A66DE62D713D283BB",
- "legacy_metadata_key": "CBAB2BD649FB6188665F5665B0FD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CA603E309E734C9FBE781639E2CA75D3",
- "derived_salt_first_section_no_de": "933106E9D0C33D8AABCDB786960A2DFC",
- "derived_salt_first_section_third_de": "67D3FBC0DBA043CF1504F22D5DE876F7",
- "section_salt": "CDE6B5571C5C7A4A1D1781416FB7E115"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E8C16825AD7964416348DD94",
- "extended_signed_metadata_key_hmac_key": "A8534B44B8B8FC101D0FFD3B092F1207F1708A2B8B5D24F5E5C9A0F16D398A76",
- "extended_signed_section_aes_key": "A508DF4D8803599FCCDFCD00BBF555BE",
- "extended_unsigned_metadata_key_hmac_key": "ED35857D342BE715D816998691F694D40C4EA610090F9A1E2D582515993FE8F8",
- "extended_unsigned_section_aes_key": "0978D9FD92718C3AB42F60F051B18E0D",
- "extended_unsigned_section_mic_hmac_key": "75D1F0E561E35E203F40683E2D5B4D431589EF98928E0478986E511F0239E8D9",
- "key_seed": "1F82EEBE5FD453D3E9EF739EEF5C7DA445F4CAF9B79EFC1ABD37EDCD9116A09A",
- "legacy_ldt_key": "4001D7DF8906135A1B9803736A65D0F96A1457D917A94D88B4F771B6C6E3C9EC2729E568D9124EA2E5BF34EA7CCF2DADFCE5310982F59B59DD463232073363EB",
- "legacy_metadata_iv": "919ACA85C63AEFA18E415F36",
- "legacy_metadata_key_hmac_key": "6A2C897F78CE118C36087679FA5D7263BFA4F4CE9955586A713AF8F0BEADE107"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "54BF",
- "expanded_salt": "2818C9552A5FBC4796E3911D92FC5F5C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4B748ED1F97708766F2B760563974A39",
- "legacy_metadata_key": "B19832D773F192678D71465A2C24"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3171FF4241493411D14236E82A700F61",
- "derived_salt_first_section_no_de": "C3633F716F313FB47EFA247369F7165D",
- "derived_salt_first_section_third_de": "6D988009B250298DDB3FEE05658E8193",
- "section_salt": "D5ADC37AEF8892D912FD0D854C5D14C5"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F6FDDA6DBF1E0DE71F30C9B5",
- "extended_signed_metadata_key_hmac_key": "B058F3A6C05D18CC3B2157982289BDA0C6A1DF31515EDEFC10CB01F706FDDA66",
- "extended_signed_section_aes_key": "23A63293601D60208433BB61824C5D8D",
- "extended_unsigned_metadata_key_hmac_key": "BB2A4EB2B7EFE067AAC236BE5A0E6B2A65D47C52C2D77E78C84D543ECD23E292",
- "extended_unsigned_section_aes_key": "93FCA124A32A8260A51823AA02A3F6B1",
- "extended_unsigned_section_mic_hmac_key": "58C5F1C10AABBDBDAD9B0BB81CD349DE11A1175E6DBBD77928CAEF7470F82428",
- "key_seed": "2415C30A1AD8412BC1777221331CE377CFBB9E9E949E382AFE0FD2E69EF5A319",
- "legacy_ldt_key": "B443CBFC514A730B8C98A3533FE42D66E3A6212240BC608E67E342C58E3E47E712142DC6934FF290AFBEF875EC908C06CC2E3E9F82645A3C34BE497706FB9221",
- "legacy_metadata_iv": "A30E7ED0AA7C25858AC7C577",
- "legacy_metadata_key_hmac_key": "716FCC6096628D9BBD50012E067D643C714F88899DCA5F70ADF5A80350BA7D00"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "05B0",
- "expanded_salt": "5F0DEC12840AE2B38C6C58D948774F26"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2D23438C8D7972DC4AA881FFF2764B42",
- "legacy_metadata_key": "C656AF6D29AA9D300FE027E427B9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "854C06D14A736BADD37C001ADF73DCC2",
- "derived_salt_first_section_no_de": "BEED417471233F438AB20AB22CAF3C55",
- "derived_salt_first_section_third_de": "A674EBDB2B3BBEBC70ECF37B064522C5",
- "section_salt": "C97936E49F85452F072D11BFBA99D4DA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5D99EF34AADEA33D39CBBBEF",
- "extended_signed_metadata_key_hmac_key": "BEF3C668EFEEC58DCE279E34B007AD58803EF4F71B672E57930A1BE1963C8964",
- "extended_signed_section_aes_key": "5EA1448BEFFED0FDB0E32B9BE7A79543",
- "extended_unsigned_metadata_key_hmac_key": "CB075B8EF545EAB234AD76F6F46B3B312B734549BC05D35FF8A51868E1D5CB77",
- "extended_unsigned_section_aes_key": "7B2457766CB845134E5452A362FB84CE",
- "extended_unsigned_section_mic_hmac_key": "56A65B989AA8C0D7EF1CE0CDB52CAE14CBA09F0924741471C5C15C8DDCFDECD8",
- "key_seed": "64A18F9F8A6FF78DABF6FF74C66082D49DA3C40A7516EAF74A78F4B6907645B6",
- "legacy_ldt_key": "77C95A468A29E308942E68CB66C2A3B9A7E626A39313CD91AC07239DF70781A372C51E1DCDF94F806FCC9F34F29A7E1A7C3FAC7DB24C6AAD91A9F1B2028DB902",
- "legacy_metadata_iv": "DABA6807F372B89C224FA391",
- "legacy_metadata_key_hmac_key": "6FAF021CFE6B1CBAF1E519C0E724D602087F5A2F315893B9B4A0D7AD49C5B22D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "018D",
- "expanded_salt": "BEBED0CFAD5FB1A50EF5B427AE468F11"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3BEC29F3276F5ADB54AF70CB341D9E65",
- "legacy_metadata_key": "084A213690B929B16117977E0ED7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8BA5AFC0AA17BE426D5B4EF119B16B53",
- "derived_salt_first_section_no_de": "E13C3F2FEE8570C04F8A5CB9AED13632",
- "derived_salt_first_section_third_de": "DAA16F2C16921C53CC43B009FE14F119",
- "section_salt": "F9762F11F8AAADF4F965410C43FB325F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6409627015F5F374D7477F49",
- "extended_signed_metadata_key_hmac_key": "EC77A830467CF7CA1268CF2F22828129E80D6993BD79F7A6810ED0058848858F",
- "extended_signed_section_aes_key": "112169F2F0F84949EEC6528CBFE71CA3",
- "extended_unsigned_metadata_key_hmac_key": "41195A42597476D4D713091B80F05A4E48A51F92256A745715D9B682D21AA959",
- "extended_unsigned_section_aes_key": "3B86248B33524C2B2BFD578FCED9739B",
- "extended_unsigned_section_mic_hmac_key": "36ED67A4FC58D03AA52177A7E021E20B10B6BE280E0594990578229DD86A7743",
- "key_seed": "9599B05E9AE30D52BD39500FA78FC5F5E65633AE196FB6244557F2DB23D09422",
- "legacy_ldt_key": "DAB4D7DF47D334EF7270E8BB6286BD98B22EADD88C4CC3AEC8E96F2D67D6AD7D7B7F47B6C0BC1E4C7AE3DBE7045C468E774C85E3933B27BE5A474C827ED280BF",
- "legacy_metadata_iv": "A50F9701DDB9BEEB2B4E235D",
- "legacy_metadata_key_hmac_key": "7D74CE7F972D5751E236F1247CE43FB7C5115978400D42EC04DC42A5224021FE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "596C",
- "expanded_salt": "842BFCA20EC92C35454701E568999967"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EB98381C2FCF07B7BB3B717099189D50",
- "legacy_metadata_key": "3146AED6A7235B4C294DFA8E3786"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D39A354604E41236BA84F59678B69A41",
- "derived_salt_first_section_no_de": "152DC6FF65836A9452FD6C035F8E19EE",
- "derived_salt_first_section_third_de": "FE9404A45CEA521853806512F27D44B7",
- "section_salt": "21524B6A9125BE2AADF8DF6362924EF3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2652B9F2FA9A6962014B2B92",
- "extended_signed_metadata_key_hmac_key": "06212F246DB0F6D455F9B33A1DADCF4262CDB084F6362D17A91AEDB6F3713EC5",
- "extended_signed_section_aes_key": "81ABA166DFAA73A9FA4A1F5B91CD31C5",
- "extended_unsigned_metadata_key_hmac_key": "E02AD5F13A39C276D068A0E5034BB51A134953C2D050B65E3D4B65B64AB5FDE9",
- "extended_unsigned_section_aes_key": "B21E927F43BE9630E69EA66608B8F17C",
- "extended_unsigned_section_mic_hmac_key": "5BD6578735A4B24C9C53FE3437A6DAFAB06D382909897E7607AD024A5D78BAFC",
- "key_seed": "A696C46BFA6AA99A0F11C1FFA86E6D877AAFF5150ECC2B1EB8E8F033D2B71BED",
- "legacy_ldt_key": "56633FA67C83A226843E35C5C3AF832FBF3834041F08917DED2B07ED9BFB84926892549580B673C9D5882D30B0F1A02BF966EF5C62D0AED508A4E9AC3189499A",
- "legacy_metadata_iv": "3264BAC484F329EE55370CD6",
- "legacy_metadata_key_hmac_key": "68E173248ADAB38C93FCDE045D196FA278414DE97F899A795940007535CFE926"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1E38",
- "expanded_salt": "B7E72C7FCAB345A649F75553F0B7AC82"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BF2C74BCC3BA87265C0CE9BA9739AC3A",
- "legacy_metadata_key": "FA2D1DBE86BCDB96A5DE6303B8BB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9D3742176FD54327E7511E4F131E7599",
- "derived_salt_first_section_no_de": "0CD057EDAAF48089D0A88264C3631619",
- "derived_salt_first_section_third_de": "AA11ADD3262CE1EEF81463DD4A6D241A",
- "section_salt": "AB612DB15A0DE16781A8549083B09DB7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2662FDA948D13FDBBE39E30A",
- "extended_signed_metadata_key_hmac_key": "5C5D631B56F5D70FF5A0FCF3F31E88897BD598B9EC93461EAAC45CEA6A73064A",
- "extended_signed_section_aes_key": "8B781406A6F69DC53595A3C3434BB4D6",
- "extended_unsigned_metadata_key_hmac_key": "0DD273B2873B72210565A0A0131A6EB49C8E62E2AC97EF6A7ADD89B5D9E787B7",
- "extended_unsigned_section_aes_key": "C3D5B51D926C43792BC194591F8F56E5",
- "extended_unsigned_section_mic_hmac_key": "4D7C0C23AFA6951F3B01A63C9EE6E2C8A587907CEEE183253BCEE8BA3CC62198",
- "key_seed": "206905DA776B231DBB842F9025B48B5C0AE4616646909DC30B5661AC78774E41",
- "legacy_ldt_key": "4FC04687CD3DA837BCC1426B61DCD084538E0C26D606777DC1F037A51C44D53C0681846C80CAC23FE9275D2D154479C9F4A486B51B815F3C6E9D18C7EEC4478B",
- "legacy_metadata_iv": "85D5C687765C68E48CE7A6A9",
- "legacy_metadata_key_hmac_key": "69745B4520697B73B6D8DB9816D1B16C122F4B029D34215723EEE68C52490D63"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "37C2",
- "expanded_salt": "44F371DCC189D1F182C78D991F843EE3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7CF97F8BA7A6B70652877DF154C59868",
- "legacy_metadata_key": "DCF190BC4777D48035DC7A120509"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D9E35880D8E6C178DE292937D920D478",
- "derived_salt_first_section_no_de": "318959DB007AA4A10F42FCB65BFF0A09",
- "derived_salt_first_section_third_de": "66EA0F8AF3460F1297D343E03A417E11",
- "section_salt": "5163E637A41D086703704D2F4CF32885"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2857F005FE9C28F9F196D5F9",
- "extended_signed_metadata_key_hmac_key": "3BCE63E3CDF0C7B1CEE42484D3522E8BAFAA137754396373FEBCB7D0D995A1E6",
- "extended_signed_section_aes_key": "54A1B681048A288CD6CEF553D74F5C99",
- "extended_unsigned_metadata_key_hmac_key": "1F39F17497AB33BC3C72184671DFB4B280F571F1C8AC0AD5572FC1CF4A98B802",
- "extended_unsigned_section_aes_key": "543BA619A84198E3EB8ADFF4815DE6BC",
- "extended_unsigned_section_mic_hmac_key": "31AAF60BFFE644B14FED96F9D46BBB144F1871BC7AC3E8FA6C5BAF42B0E33E86",
- "key_seed": "6D306F5FC756F6ACBF4CB898DD2D2A5279FD0AB41E3217C76C336A999BDBAD4E",
- "legacy_ldt_key": "C628450DE14679E9A91634CBD799E83650145C8940C2D75D2F46809E5144457CAB2279049915AFA8DE46FA615AA0DE8F419691A9E591FC6CCA4B51113A7B2716",
- "legacy_metadata_iv": "790F7FEB06D3DF01EE6C4593",
- "legacy_metadata_key_hmac_key": "CD95D1D24E0F395EF7808927A57EAC29A22738ED46A457950A53C5A3C9B14EF7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5023",
- "expanded_salt": "109048E9A467056C2256904ABB2636F6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A914F2515C45757273BCA5A3D6588207",
- "legacy_metadata_key": "E0057A4D18C9C6E26712B8666C9D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D30DA575E60072FF79D2E2989249CC14",
- "derived_salt_first_section_no_de": "252CBF5112CDB24277082F0D83A823BC",
- "derived_salt_first_section_third_de": "807DD46CCD4EF133182B2F921494F64A",
- "section_salt": "0BEDB88CB782D0D94BDF2BDC9C1EC411"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "96CB407A6313D8099D44A32A",
- "extended_signed_metadata_key_hmac_key": "47BA8B1049CD3E322E0D932F72BB365F754E4F8ADE549420D3F05CA417627246",
- "extended_signed_section_aes_key": "F564FD8D7C7335A1B134A2910F7FE914",
- "extended_unsigned_metadata_key_hmac_key": "C0D2967046158E8B8504A9C3D6160A3DBC7F4366D9892CC2D16FBCE2F6FB4419",
- "extended_unsigned_section_aes_key": "AC348ED8813AF696CB14E03533283DBB",
- "extended_unsigned_section_mic_hmac_key": "CCADBB0E433EA697B02B15EFC28FA5D93AB7B42F4A6858DF9979D3CF4589A744",
- "key_seed": "F275C67473DC3DBA5096F707D71503FF417E7BAA7474AEFC41F390958956CF04",
- "legacy_ldt_key": "5CA11DD746ED7938EA2B570C1D62779FACF95D937D519E8B627CD236F558458A11311D5DFDBD86D4B8C42397622262A85B454874AF8C804DF716B50280D76C9F",
- "legacy_metadata_iv": "9FEDC698C921B3EE9AE5440D",
- "legacy_metadata_key_hmac_key": "348C0D7FF39E6DCB133E7A2898EF634C855DA90E2DD05CE2105751E157CCEB19"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AFC2",
- "expanded_salt": "62B8CA2E3A820F35AF463153D3E7AE96"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "40C8F96FADA9A3B423EB960B3E69A133",
- "legacy_metadata_key": "752C9C6D100BF7AC20E9E7BB090F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "905E8212E383CB994AF8426EB188216C",
- "derived_salt_first_section_no_de": "5B0D6119D30D45BF589CA7AFE63FA560",
- "derived_salt_first_section_third_de": "8B2D0133BC9F78990757EC5C2B69C402",
- "section_salt": "C385A236F686E7E3DD1CCDA43B55FEFC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "00AD45589BC7956E09885670",
- "extended_signed_metadata_key_hmac_key": "0CC99F4E479C82EA979ED37D31673455107791093A6DACDF77E0E13D04B4FF9E",
- "extended_signed_section_aes_key": "0D9C6665D7E857D650B5DE3ED2DABA28",
- "extended_unsigned_metadata_key_hmac_key": "A2D4C73A934C8D671DFF36CA314A590345D99816E05FAD44D68854751BE1EC69",
- "extended_unsigned_section_aes_key": "0B5DEDBED22A5CB9C18E41DBE0CEB051",
- "extended_unsigned_section_mic_hmac_key": "42F47D4D60F2EBCE7F5A34BB8B5A2368AFAEF1051D41A3DF5D8000A28F950B4C",
- "key_seed": "C218BBF9679F61D8318D920084CB67A85E78501E7BBAE1978A7514E43612F731",
- "legacy_ldt_key": "23E0AE1E5AC529C4DE62D5C186FB2618F5FC1F8B23C1EAB468717D102A02AA54E1B04024F899670119188433D89E657BC42D6693710C180D550FF2D7086CF5CF",
- "legacy_metadata_iv": "2114D833166AAE72E4C4E190",
- "legacy_metadata_key_hmac_key": "40C1570AEABC6017BC697F285DFEAF2F1620F23F5E61291577EECE4C3F73FA05"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "93E5",
- "expanded_salt": "1F1F18ED6228B931178B726CE145BDF1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "01EDF0F43ECDDC56E8A696AD38626127",
- "legacy_metadata_key": "FEC9EEB831B216C779D16263BBB8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5A22F860F4D720E2E3ECB4100FD307DD",
- "derived_salt_first_section_no_de": "1203109C012511A4FFDA450509FB314B",
- "derived_salt_first_section_third_de": "0D88787E6F30765A17C7672579BB42FA",
- "section_salt": "3600741B877A8C511ADB4A9CBE6584F0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9D26DE4E2908EBD18A839DF7",
- "extended_signed_metadata_key_hmac_key": "253DC3AA2A814DCABF72144D7C893421A6AAF05B01F24D3FDA30B6238FD71B3F",
- "extended_signed_section_aes_key": "041FCA3DAAC4B29AA6A5B5041C478AB7",
- "extended_unsigned_metadata_key_hmac_key": "0CB9C58B5417E54991E1DE8E16E4B9959254EA05DCC229D1C3AE4D9D735B7F25",
- "extended_unsigned_section_aes_key": "964F1EFA7F07E0454F8DE15E0EDECF6D",
- "extended_unsigned_section_mic_hmac_key": "14AFE4412B8EC6ED7CF21421C9EB3E70F315B8B002176C83697D66390D22AF05",
- "key_seed": "ABF347F72764CD23A39530C14E2AD4CD29B62D4B7BF6AFA803466688E6785884",
- "legacy_ldt_key": "C73CCBC36187CA829BFFDE2A02CD4FA828A02599B00D7A28F227661787BB4F65737057762F5B65A2446658BB58B667C71B3495AC455574B9241E9233ED71712C",
- "legacy_metadata_iv": "72A10B36872703EE1C7380E9",
- "legacy_metadata_key_hmac_key": "AFFA9CCACDB5F5FA2158894630D3A2B1E8060E1F6C2391F8B7D8D706199D4B82"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1D3E",
- "expanded_salt": "F61F9DEAD42ACBC580AE2F16E49D80BD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DD6DA193DC4762CC12EBFAC8C8C7A617",
- "legacy_metadata_key": "75BB8F061C523714ED43EE8BD57D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F136C2A3721EABBEACC82A6BD9B75761",
- "derived_salt_first_section_no_de": "7A69A62CDD40EAD2BD1EBCBD553B657D",
- "derived_salt_first_section_third_de": "01E92A246E2D5844C1DE584538D2A6E1",
- "section_salt": "BEF12937CD029C6898D5014AF7C26E60"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3156C0D077E3781F527CB548",
- "extended_signed_metadata_key_hmac_key": "EB2D59D631C2BCA09ADD8C3BBE0CD5E62845922EF5684B5A27F21D500C083401",
- "extended_signed_section_aes_key": "EDE8D71F42E4AD6267F2FD3F4B92B1AC",
- "extended_unsigned_metadata_key_hmac_key": "F8FD08E22F90975B37187BFC0F52D66102B08C48D98A57AA42666C8C0822BBB5",
- "extended_unsigned_section_aes_key": "87E455148079974E3563F7B870C64C5E",
- "extended_unsigned_section_mic_hmac_key": "FD26897456F75353F2DA941FA463913A6A3320FD4DF89ACED7BB86C49E5A6883",
- "key_seed": "940EAA5BCEE6AFEA56D83716AE22D1569BCA603A3435EB9C356926F3732AB4C2",
- "legacy_ldt_key": "6C30AA4725A2BED6DADC932D3DD3638B2569FC7B2BE12210E934BC2DCB64FA7E0A7834CC28B63902C34CD60EF91B004A360AF1263E36BA8A9B2C83DF3737422A",
- "legacy_metadata_iv": "540120E3B64877DC923F0B53",
- "legacy_metadata_key_hmac_key": "0CECB1D5AE9369764A3661E1FC49D631954AD9FDC9CE102EE85842BDF1D98111"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A0B1",
- "expanded_salt": "7F7E691B788614D001375EE922D3B87F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C4D7AEAC5CC44A74DA36F899083C429B",
- "legacy_metadata_key": "309D7F0F81181FE1932C64E7C5C0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "382E8C64CD81506A43F66CDC4845F7E1",
- "derived_salt_first_section_no_de": "847CAF4241BF031F6DED6139DB7A68C7",
- "derived_salt_first_section_third_de": "B304B8BCA44C0D60BD4826B242AF551D",
- "section_salt": "30BFE3D299D745A250C8F28AE0146B1A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3255A55C381EBA716259D77C",
- "extended_signed_metadata_key_hmac_key": "8560FA14AE3263A14FA0FC5F62422818F7C1557C011BC8A81C5CF9D34674500C",
- "extended_signed_section_aes_key": "3E24F9CFDD599FC78AB5318C42127FB4",
- "extended_unsigned_metadata_key_hmac_key": "C8ADB0A3D7BC4FB2C07CE73619205B8B723B3C03858AFBE4B5292B41A5E49F23",
- "extended_unsigned_section_aes_key": "94D74DC731B50051DB67819B0BB03AEB",
- "extended_unsigned_section_mic_hmac_key": "AEB15033368200EADA2C936B842BDCFAF3A6EAE645A47D09879C7C11BC57E2E4",
- "key_seed": "0014DEC0FCC355AEF1DADEEB65954B15070654E10522860481AA254D3F909A4E",
- "legacy_ldt_key": "80314E2CCCC91A05A12BFC0FA27E1EB585E2A0F1FF8A4CF7547C789C10100E4553DDFC3BC2BCB372B4D7B3EF44F620601E33BDCF5B54B8BFF033A4C386F6A13E",
- "legacy_metadata_iv": "EA1DEBF13A98EF2834D03715",
- "legacy_metadata_key_hmac_key": "E30F408BDE5FF1D088F5BFB90D041168B84D7688814E78F6ACC9D0ED93777084"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EFAC",
- "expanded_salt": "E52C24E9617643F332B0134CDB3F67C1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0A6C0EE912E43942957ECA6EEC75F559",
- "legacy_metadata_key": "7A960FFF7234A8CB3FDCD57A7921"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E2305D14E0C5B168BB286332813CA757",
- "derived_salt_first_section_no_de": "0F5F800C4ABBD8083D1DDE93A74E3E37",
- "derived_salt_first_section_third_de": "C1C8BED103D467C82B804344CCDAB10C",
- "section_salt": "13A59F9BF1640FD3421FC37ADBA31805"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C20DC65A2E073B5B4F549F96",
- "extended_signed_metadata_key_hmac_key": "110C2F38FE27D09A18DBA28A7D728B6DC16DAA6389C0106817745949015C8E5F",
- "extended_signed_section_aes_key": "36D4830F5721AFC122EEAC91FDD57AB6",
- "extended_unsigned_metadata_key_hmac_key": "2D191219B2CF573B96CBA7CABC84E27C6EDDA436FA2B5869D3815FE74139E967",
- "extended_unsigned_section_aes_key": "29122C79F21A63CC60E833265EA5D2B9",
- "extended_unsigned_section_mic_hmac_key": "2CA9EC69704EA741B9884AE3459ABD223C0FDE3E73B643B9E1539A5F84B436D3",
- "key_seed": "83E0538E0457482F90C60E82376E3334685F22E7049CD02406EE6F7C170DC899",
- "legacy_ldt_key": "088A5E6C62EBB793777E42F7CCFF058075D313DC6CDB059A954AE537A0D4F7D51B8BF7495AFF36A0DF1F8CCDFE559675C31E9B5190D1287ADCDCDC5905E7678F",
- "legacy_metadata_iv": "F60DC1EB7FBDC8E893AAEEA1",
- "legacy_metadata_key_hmac_key": "A4D60494F0E26C00B95BB790AF8054D54F8D965067D9A2B7F9F7DC6A5750BCD3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E87D",
- "expanded_salt": "15AC07565880FA3D2942E9E9A439047E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "88BEBA1FDAF441EC8211C0D9F13B532E",
- "legacy_metadata_key": "874ECB35F8778425CCE0809BDA04"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0CA855A04F15F4F9155ADE6BAEDCF722",
- "derived_salt_first_section_no_de": "CEF3D0B41EC6107D61B88EFE9E79C406",
- "derived_salt_first_section_third_de": "728B3FE18817FA2A386F2CDE72D7D634",
- "section_salt": "ADE21264132B21C49B4B8D22BEB21F9F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "56F7FEF6EE125F5C072A1CC4",
- "extended_signed_metadata_key_hmac_key": "25ED07394D255621304DEDEAAC41350C50DC7D4926B3A158465BC0901E4016B9",
- "extended_signed_section_aes_key": "4D4FDC04A366276C35F2211CFB5CD1BA",
- "extended_unsigned_metadata_key_hmac_key": "BBAA4FC4E04CDAC1895B55C636EC44D21FDB01EF578FDBA7003F24420586A0C7",
- "extended_unsigned_section_aes_key": "BD5E37730B4AE9E3F2ED15956E9620F9",
- "extended_unsigned_section_mic_hmac_key": "1A12BE140511F3C7BE4FCB32E986A8A0A59C44AB16640A4D07CE4E80F8806D49",
- "key_seed": "07E249AFAA6F92BB56A15A22FDC04F97D1A1C9C8513458D22DFB44BD3E9C2128",
- "legacy_ldt_key": "569A59189EA7BC8341D80C2CF5CF80D8260D905BC9364A7112D19E609A49FF0DF0F73A4356D156AA6BE27B3AE4395D5B752DE201479D47555C9CCA266C6B50AF",
- "legacy_metadata_iv": "D2F33B59B89578906E808DE4",
- "legacy_metadata_key_hmac_key": "17DFE5EB6DA82CB574D95DDD1EDFE1B7ADDF28CF473052A0E504BF3DDD8BBAFE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C0D5",
- "expanded_salt": "90DF4A7F2C4F06675938C44987ECE398"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E98E8FF2A7151350A09271B57A9A08B4",
- "legacy_metadata_key": "263E0220C15B90E31FF0975FB083"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A36A590A71B7B90A77F43F3C610CC2DA",
- "derived_salt_first_section_no_de": "F5658AD027C61C98BF3A21AD4AD934AC",
- "derived_salt_first_section_third_de": "FD94B4BF03615673156494FE1C057974",
- "section_salt": "71532C134DF78DA72F696D93FD0BCF1B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "79FA70F61F51C936AFA70B9A",
- "extended_signed_metadata_key_hmac_key": "483EB25C361E9EDB61AB3F57FC742246C15C7A917EC8846922B177ABBCD2D614",
- "extended_signed_section_aes_key": "FA560BE0618DAC7C3DCE6CE46DC32BB7",
- "extended_unsigned_metadata_key_hmac_key": "00D32C2088AA1DB2D43365FA6BA8EAA94F9E6A9BAAD30F297172A8BD4486516A",
- "extended_unsigned_section_aes_key": "FBFF92FD7B7E65A3CCCAA930B2767A23",
- "extended_unsigned_section_mic_hmac_key": "1F576D7E23283A2EC14679108D2C14EE0DF0C088B279AD687F461C38D08AD356",
- "key_seed": "00595502BDA3F1423FD6E8F4B4EA07EF141303278280698CF0CF828D6B562DF3",
- "legacy_ldt_key": "3CBFA03AEE41C9B902A8D6E1C8F56D3F21797B33045B3DDB91D1CEE3D8BF7D7F0434102C07053EED5721591890BF50074B63371C14B32E5806069F419695D9E0",
- "legacy_metadata_iv": "D25649C9038964F37B5497DB",
- "legacy_metadata_key_hmac_key": "335D12E395B6ECB59350B13C6BBEB3265ED5D3EF6CCBFB6568EFCA00F83FC219"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "85F4",
- "expanded_salt": "212EC0D9A82912A07E2AFD930EE8ACBF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "584CBB4304A4475F32798B225273AF13",
- "legacy_metadata_key": "BCBEC2588A9938262EBBDC7F71A7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "15098ECD21824D1BE8925EE559908FD8",
- "derived_salt_first_section_no_de": "7015AC9C889B1476276FDE70665799A1",
- "derived_salt_first_section_third_de": "9EFB6C35851C7D35EA0206D381E4B2C0",
- "section_salt": "FBAFBE8376E5C65414DD4EB077AAE552"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9218AEFC1D2420F17DFA416A",
- "extended_signed_metadata_key_hmac_key": "10828C800EE79EFCC08EB2ADAB1AED5BEB6B7CA06A2EDA55490F0E74593DBA47",
- "extended_signed_section_aes_key": "0E5C978661B7C52881DEDE71011F0606",
- "extended_unsigned_metadata_key_hmac_key": "A66BB86CA85EDF2CD473DD0456E32E71333AE6FE710918A7DE95DDB44B72B2C8",
- "extended_unsigned_section_aes_key": "3D2407E7493872CDF74791E40D998EE9",
- "extended_unsigned_section_mic_hmac_key": "6B848A30F026A19EF4E4A84E8C6DD936C1DFC8BB3C5ED437956A58D82D40F73D",
- "key_seed": "6696F4DA32860ACD34D19C88325D485884A015CFD72A867E92B8BB2C3B609290",
- "legacy_ldt_key": "3DBA64DCA974685627A53EF967F525848733C70CF91036B407F3B9B0E1631AFEF854F847CA01704BF490461F25B7764E95CC906828AA801035724C15762CA307",
- "legacy_metadata_iv": "6712E2793375A1BA155ABB2E",
- "legacy_metadata_key_hmac_key": "FADE97687911C515FB324C0CDCD2F0DD756F33485CB9BB9412B6BA85E84DDEEE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DA52",
- "expanded_salt": "290F865CBF4F560E7A49BC27D4FB2EDD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9B653EB0193DC300E0F3ABDCABED703D",
- "legacy_metadata_key": "A1F1C376A022379EA792D9BF7F55"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "315A5B07B3F067297F7EEC70508095C4",
- "derived_salt_first_section_no_de": "E902149655CCA39D09CC48EC6AEFC9FA",
- "derived_salt_first_section_third_de": "8E4EBC41CE10AE4B2B60CE2A7ABAF7B1",
- "section_salt": "A7902D38DB42A93FB36B3485A5351E29"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A12E8AA5B8D65F22D8323954",
- "extended_signed_metadata_key_hmac_key": "CC0407BDFEF93ACB5D64000E7FFE92FF5E1DAA8F9F5AD70E945816DDAA1F50C9",
- "extended_signed_section_aes_key": "FA56E51C6A5795C4C0231F6C018BC0AF",
- "extended_unsigned_metadata_key_hmac_key": "3104BA0EAEA120E5FBDB7D8141CF193EC9C06F248E5F4DE9D818A7F033130903",
- "extended_unsigned_section_aes_key": "7224766C4D193C43214D3B4E62DEA460",
- "extended_unsigned_section_mic_hmac_key": "4ECCA972BAC501904DE2FB78824EAC7493A521A3D7B9EF69F18850CF7AD6657E",
- "key_seed": "9AD0FF71F50EF63FCE22A4C97CB7A60DDDAFE74F1F36072855D4932F3EF8FCD0",
- "legacy_ldt_key": "373A402B5D28A9FF8466652EAE34A777206A68CFF9129C6B46DAD22D652920E2F2C30DD58840DCAC1D0DD07880F1B25AB1FDE56E97E090DCA03099C162CC333B",
- "legacy_metadata_iv": "735ABB65CA3EE3E11398ADB0",
- "legacy_metadata_key_hmac_key": "2C4B7EBAEA0B9DB9582E793DBB369DB45A281B5FE25EE6835BD301F0B64389E5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BF37",
- "expanded_salt": "5767E07DE7BA2DCD9C62D1334A3983E5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0226259BAF4C143E7477EDF6CF94CEE1",
- "legacy_metadata_key": "E724360C1D38F1F8CA5A49E8D762"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7A8402FF31B767A785EC1816F7BA7CD5",
- "derived_salt_first_section_no_de": "4A84CBD56394448C2D554EBDD3D61608",
- "derived_salt_first_section_third_de": "6BBAE4CFE15DC347448F2DAFA3B9BA82",
- "section_salt": "BE39E34D498FD7CCC965D655AD771777"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F604BB9C67D81481F9CB2321",
- "extended_signed_metadata_key_hmac_key": "7652DE93B6C7185F3711A4568A3B5F91F0ADAD62DDFB25D7291E558E2BCAE068",
- "extended_signed_section_aes_key": "542D1E80FBAB61939C6DF9ECF2759685",
- "extended_unsigned_metadata_key_hmac_key": "DC9B25F6A4CF499FF48AE43B515983114E73A182E4284136DA10FEE28E1AB015",
- "extended_unsigned_section_aes_key": "55523CA429074473CE9A6416C982691B",
- "extended_unsigned_section_mic_hmac_key": "719B26FD493EA1F0DAAF843FF42E40DDB62228B7AE520020018FFEA061015B2B",
- "key_seed": "FEA2268B74C7DBD1400C8F89033F58682FBE437508E38AC3C4BA1CA740623AB8",
- "legacy_ldt_key": "81427E388CBDB718F52D8B43F7D9BE5896228630CDEFC6A9A1B6C16D3D8FD187FEB45FCBEABF30134C8EEDE32C5E1EDFCEC196F2B76B6B15430AF6BA14E72BB0",
- "legacy_metadata_iv": "C33D9B1E69F130D4D1C01FDD",
- "legacy_metadata_key_hmac_key": "FB6B08A901B3455F2BDC891042E2556B7FE6F37244590765EDF67BF554EC8A42"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "786C",
- "expanded_salt": "9AC1A89E01C18BBFB5B8077381B8E7AF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "651C82BF821902E15F9EEC19DFC14B04",
- "legacy_metadata_key": "157D6E4822D162AABE20D54C3F78"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "76C78A429E51D27E0D95972C117E3B8A",
- "derived_salt_first_section_no_de": "1CFA3A6475FBA19C4E572FE6625D305C",
- "derived_salt_first_section_third_de": "E11546E2EF8F3AEA7BD3D8D4C725EE63",
- "section_salt": "A25B5870429A4732BDC483177352BA4C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E484AC65E2EF2B34C3AF4E31",
- "extended_signed_metadata_key_hmac_key": "C7E9F199BCA4C073B5685852117E43134211DAA5833C0C4FB8D9DCEB497619DB",
- "extended_signed_section_aes_key": "6716ABF87765DA001BD327DF8194174C",
- "extended_unsigned_metadata_key_hmac_key": "CDE57FEA19C48D26ED25275A0A366A953892256A0EC8E0AE57ED5A1653067CA9",
- "extended_unsigned_section_aes_key": "37A206BBE379A4CAA0A0C5746D5DB435",
- "extended_unsigned_section_mic_hmac_key": "03AFC4FD8492208D667B797EFB6F7613E20E3111AA68C51EF97BFE933F1AE0A3",
- "key_seed": "DBF0839BC0F4963EA6E2C9F0E4F6A06F2BAE0F23661277225547F6709063D40B",
- "legacy_ldt_key": "897F7B6D81652F06C9B6A1AFFD01A4F97CC11A26501AAE1A8E88FAB33174684BCCF3607169EF2DB1C47FA4F7360C97AC6A7B1E80DB4BC4D30F537817E393068A",
- "legacy_metadata_iv": "22C587A43A23B8AFABCF8614",
- "legacy_metadata_key_hmac_key": "36FCD929BA7A02D7CC7FCF6B8584E3D74468705D6A775CD01F902989231B5488"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6144",
- "expanded_salt": "1CA9771448B30D0318BF75D599A95912"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "46221975609CAFE8B419A947E6258A52",
- "legacy_metadata_key": "F939513D41B828D371A7533C01FC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AC99F9C79E3EC5C2E07753CEE6771843",
- "derived_salt_first_section_no_de": "539BABE11E7BD9CAE80D693A93FE7536",
- "derived_salt_first_section_third_de": "1AA1964BDDFB1DBC8E0BC28FED0E20AB",
- "section_salt": "7235544BDC105F362463D496D6015A48"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7039AA69121DEFAE53108B71",
- "extended_signed_metadata_key_hmac_key": "8B4C140AFDAA8CA34BC5B9D9D7CF2D15374C2ADF64AF94F58886390C6602F864",
- "extended_signed_section_aes_key": "333CCCED0D91177A7206BABC78A85100",
- "extended_unsigned_metadata_key_hmac_key": "F9E44D8F2C0BE5043F0C114F66C6E7F58709BBAB5132D62A380C2D8E035DBEE6",
- "extended_unsigned_section_aes_key": "218A77468DCA8F169B4BB74261BCBE3C",
- "extended_unsigned_section_mic_hmac_key": "031E9A1042E013145E5F7179C7E15E94E2FC006E4E78DEF5F989DC31157EAE16",
- "key_seed": "11ECEF0BAAF9B464EB4A7B8CCC5B06DEC70652EAB227235B6722AAEEB574360B",
- "legacy_ldt_key": "70EB9C88CCAD17F65FBB9603310F08431A360E8A88369462B44D33DD96B323586CC3470DF9DF60F4AF7D43E3BF191C351C2D7EB41F9615690A50668D3A0E1A3E",
- "legacy_metadata_iv": "12E910F02D2F9B9E4C30DD3C",
- "legacy_metadata_key_hmac_key": "2F19A039CF3EC28D8527DF6EE596B82089977A5F848E17844C7D34905F1D7339"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6F39",
- "expanded_salt": "8CB2ABF104DCEDB8B340C36F381F356A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "28A9F01384D6605011AD15D0596AB404",
- "legacy_metadata_key": "B6EDC9AF75374BA51FB1509843AC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2FE54435AC61EBEBD1099D2E1F86EA70",
- "derived_salt_first_section_no_de": "792568CAE78204276FEF7B428C220D1B",
- "derived_salt_first_section_third_de": "42188197FB950C413A885648A95F6EE2",
- "section_salt": "2134C9905DA215C8BC2C035E5B93253B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2EE46AEBB4CB36494DEA05AF",
- "extended_signed_metadata_key_hmac_key": "8E58746B270E4176D84FCB589689AA7447F25F8497E6CA59056BFA397413C948",
- "extended_signed_section_aes_key": "98E235645B3DF3573DC01D1A5C8F22FA",
- "extended_unsigned_metadata_key_hmac_key": "349CFD9952896846B5788B903E082943653CC137750AA8B2422B2CB02D2BCAD4",
- "extended_unsigned_section_aes_key": "171E8B4D9FED383ADF1C0C065B5A5E1F",
- "extended_unsigned_section_mic_hmac_key": "F0C2851C258F887F41CFC24CF92F0396CD00521E9E896A1FC018E84BC091ED94",
- "key_seed": "F09A94515F55C1A84AC4697D655290D968A957EDE864DA5B49555A15EAD5C0CD",
- "legacy_ldt_key": "EF1A5C7954F89FA73BBB084FB8D4485A70B3E749F5E8204F68B46EAD9BCE7BB550F957054E0403A8665594D7C79ED23A258E9D862C0C1AEA951BCE26A7C4FEF4",
- "legacy_metadata_iv": "1C0638C96677F6A447E30ACE",
- "legacy_metadata_key_hmac_key": "2BD7513943506DA7C67F12B59D95DDB782072DADB28812D457E9AFE1187AA7CE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4B08",
- "expanded_salt": "6B7A15CAA804D47470BDDE9E08DB6050"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0CF4EB2D748CD93268AE44180045E76D",
- "legacy_metadata_key": "D2334DB6BC03D062380BA49BC11A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B127C211DD814F7869E86EB6E9977E27",
- "derived_salt_first_section_no_de": "219EC928AEF0D6BA1155E64F4C45356D",
- "derived_salt_first_section_third_de": "3C8FDEF52C403B65B472175B667A1A7C",
- "section_salt": "B0B9CA01650B71A3F30307641076EAE4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "30AA4C22F41706DC4C91864A",
- "extended_signed_metadata_key_hmac_key": "09660E864546B912A134E22A5B6B7D81631807564DF866FC6B38E4D391AA7D34",
- "extended_signed_section_aes_key": "220B5E69FE340123C55333898B731BB4",
- "extended_unsigned_metadata_key_hmac_key": "F80BB5C1CB872A0CD4AECEC3C62B5447E8C1187BCDE9A0BAA7C55CC9C85D318B",
- "extended_unsigned_section_aes_key": "591282AF416C852E78F55C782DCB239D",
- "extended_unsigned_section_mic_hmac_key": "288E808CB08B7282273E391DDE4B543E4597384F2D954238E8BE7046DE4DDE11",
- "key_seed": "96246C04EF50160AA1F91613B082F1FA487314EE47A81B522E80E74D27A32AFD",
- "legacy_ldt_key": "199C0B5BF9AD2910D3A3AED0DDE04A417BD368D2FE77CFB4E313D37CB661126B6340B9BF4A019E8464D56ED0342B0D70796F12352D06F0321E901845849BDE32",
- "legacy_metadata_iv": "3720EDBBE60BC8CDB5AD0016",
- "legacy_metadata_key_hmac_key": "9982801C5F9A8CDAA07358ED6288965C9BF88A3DED3D01EBA4D7333612577059"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C3E4",
- "expanded_salt": "83DE4A5CA78AA5769D3DA47D3DBF7023"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "07C77C520E6803817459DB3A512D3D8B",
- "legacy_metadata_key": "AA3A65CA6603CA545711AFE55784"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9290F6B1EE7408251787BF73F89985D5",
- "derived_salt_first_section_no_de": "DC504E8178E5979B07C93A16C173E637",
- "derived_salt_first_section_third_de": "33E64FA0755EC152D5652AAB870CEE7A",
- "section_salt": "9F1544E113ED10BBC3D284B8E41237CE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F48F32A0C532BBFE507DB79A",
- "extended_signed_metadata_key_hmac_key": "CCF3223E9E5CB517967D42DD7EB47C287DCB0418A46D8F15DF52D49D830479D4",
- "extended_signed_section_aes_key": "85CC55F61DE69C3A353E333BBB3A5021",
- "extended_unsigned_metadata_key_hmac_key": "5724E37CA9BF2FB696D6B81955DACF44129A1023F9342E703AE4094A7F41E62F",
- "extended_unsigned_section_aes_key": "115186D11CA221C4EBF42351F681D090",
- "extended_unsigned_section_mic_hmac_key": "01C3C7A825C7C0AE0C75E0E761DA2304208EDA86A897BC01CC46F79E14AFB30F",
- "key_seed": "669981E8C3D4AF42B7B9447D5A9DFF10938018DD5004AE7BCB7AB9973835AE48",
- "legacy_ldt_key": "CD7715C1D01A9A030682165179743881EA1F78C39B60CBB4654A54D38516DA9D3DFAEF8D94965584702BBC7C12AB6D4ED0213B19965CC821CD79ABC760F9F03F",
- "legacy_metadata_iv": "31ABAEA055B23297E5CB4BBF",
- "legacy_metadata_key_hmac_key": "026AA7885BD5298A2619A5C0B03F707EC1F9F8FB8728043402059DA086F4472D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "98C5",
- "expanded_salt": "71231AFB6B0AAB5F15A314227CB5D2EA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8A1E09AD0A487864116A2B9523F48F81",
- "legacy_metadata_key": "B5C409B5657DCB4F564EA3BBEC47"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B3397577D66ED57A26A095932858773F",
- "derived_salt_first_section_no_de": "2CECB836C1843C3374AC5F552F8A3C1C",
- "derived_salt_first_section_third_de": "51862F4774E6C578ACF2F0EB0CED4A7C",
- "section_salt": "EF7B631474B1CF52CB58922EA5EAD670"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2575CE8910EF29805B60F90B",
- "extended_signed_metadata_key_hmac_key": "5D627D118D5CBD5B2F6DCC768BCC7D79070B57BD2345BA385133CA8CE2962C94",
- "extended_signed_section_aes_key": "CA7C8E5107EB1BD87488C8C1B72D9383",
- "extended_unsigned_metadata_key_hmac_key": "F935957010E9F7B08EDD65400A6CE03C834E23734039537C0C38171E7C4A2EB1",
- "extended_unsigned_section_aes_key": "52E0B23BA7CAA47F757EAFE439B6D6B0",
- "extended_unsigned_section_mic_hmac_key": "820D5944ECB5BE154012149F87BDC73F75781AAAB148DB659E4B6AD9698915FE",
- "key_seed": "F3BF5DC98117470F207CE1CC88D763E3AB92251BF15144CF36DB7F062868DA5B",
- "legacy_ldt_key": "A930ABA6B272788677FE8A7634C7C0A00FA8EA5FB3E01218DC3374C63DEE674FFA5D50A4780F87ED6FEFB22956793609CC1C653B45EA5FDF5884B0C503640620",
- "legacy_metadata_iv": "00A63B2B06112D06EFA9C70B",
- "legacy_metadata_key_hmac_key": "478FB3383DFF7595FA87FEB6D88554A05350EDF482DF20BF7C3386B0097F252D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C8D3",
- "expanded_salt": "7182778F762B915EBC8F0E4DAD5813EE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AA073DAD4D86D9E84E5F79B84A6ECF43",
- "legacy_metadata_key": "609088384F0537CF86572B445906"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F2EF0D94A5C051EA0DA71E3983776D3D",
- "derived_salt_first_section_no_de": "AD48D910611604DDEBD81C8B242B4203",
- "derived_salt_first_section_third_de": "FF5401FE661BBAC4209DEB8A2FC4E66F",
- "section_salt": "D5515FC8E5C07EAADE521C0FC10F3A8D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A3E1B74895B8E768261FA6EB",
- "extended_signed_metadata_key_hmac_key": "D48F4B88858154DDFC67F4DB771E6139D80B93157B9E4D3729F424F3BFDE73E0",
- "extended_signed_section_aes_key": "5A4AE5D39F48A67485B189A32F325FC9",
- "extended_unsigned_metadata_key_hmac_key": "58149563941453688EC777464EB417C54508798A2608C61B5D6AF73828536D95",
- "extended_unsigned_section_aes_key": "33BD346F1C168AB82E6795D815C36E5D",
- "extended_unsigned_section_mic_hmac_key": "EC5427401CC189B9EF1749EA9F45AC377D463368ED2DFBA5BAF31AD231880FAB",
- "key_seed": "82E52847FA4E6EE061257E61F4AF2ED5F771377B8B8B9C7538E242E1C18C2953",
- "legacy_ldt_key": "8EEE42D6E7E3E37F45F4A8AB247ADCFE7CD3BE3020A65A3437D8894491B24A2B8BF2383B40A7A81F1C6DC9D2936A486056F8199CC7070A54BAF749AAFE18DC0C",
- "legacy_metadata_iv": "21ECEE2DD0186A39C8FE116B",
- "legacy_metadata_key_hmac_key": "1FF689C6447BDC40845190C086D54224399F8FF1F6478458879694EA5FD953A3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "418B",
- "expanded_salt": "AB31F9F0CBF01967C094379BB1BA27F8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "708DC11CFE4BDD5BAA808E0C5752D824",
- "legacy_metadata_key": "BCFDB420ADEAE8C8246EE2CC7C5D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A8E712A12E8ABB5C441BF52C4B04099A",
- "derived_salt_first_section_no_de": "C6F5076BCA4CA3ABB42418E2AAC4FA8A",
- "derived_salt_first_section_third_de": "20426F6361F0CE6C16EF0EF1076128CE",
- "section_salt": "F69C43A2EB002C48053C66CC9B0BB9A0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4BB04D85190C1AECA0915595",
- "extended_signed_metadata_key_hmac_key": "90B076CC70CF8BF4CBE2CEA289EA602BA44A6AF0C604EB7E1C0545DEB2EDFF49",
- "extended_signed_section_aes_key": "FBD8221B51DAA1647735D2CE09BA1AAF",
- "extended_unsigned_metadata_key_hmac_key": "529B431060553602C4AA3D0382E5531CEF4E34F688832F2E7B2F3BEC1D4599D1",
- "extended_unsigned_section_aes_key": "7022A90280CC12E45FFEF182437DC9A1",
- "extended_unsigned_section_mic_hmac_key": "ED4EB0F2D29399533B98DFDCE9328110AB836B1B4022C4823FEE8CF52EB3D9A0",
- "key_seed": "E477F546E9160C00BFB5698B6BE1D7C85AE583712B554D886DA5D04DC26F761F",
- "legacy_ldt_key": "E7A2362C1A599556B81900EE0A9779494E44D5681EA85E50E565857B164665550997C4579C2E681A75ECCC6F61359A5F4B1D77FF73BEBD335677BF8F3E664E64",
- "legacy_metadata_iv": "11A83FC6D6072E8A5EB3D9BD",
- "legacy_metadata_key_hmac_key": "27B95781E2C580189E959C212D29DF4E3559F87897BEBB08FA8164F36B3C3CE8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C2B2",
- "expanded_salt": "308D44E4A01D614290B4AFDCF8BF00EC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6F279FB7070582A9C30A2DDA5C528DE5",
- "legacy_metadata_key": "D3B5E33EB645B1C5FCFA4DBDC2F3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2D555C68614AA4B6517E55D4EA7F1962",
- "derived_salt_first_section_no_de": "9FA48FC1BC6F3FB72D5CA2FAECC727B4",
- "derived_salt_first_section_third_de": "491D8C957D3D02BEF272DA468E48D1B0",
- "section_salt": "BC0347CE8B4D96A2CF725132166D824B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CBB1026DBA03A237ECEC5B33",
- "extended_signed_metadata_key_hmac_key": "09E78F26EF03ED1311FE91E4052CCDACDFEC5A59C6735B710CBB694B5175C76F",
- "extended_signed_section_aes_key": "96CE4A4AA6636BF40CCDFA603E0B7972",
- "extended_unsigned_metadata_key_hmac_key": "FFFADD1CAD942DDBB7C70248D7A71C6C0D17EAEBCA8ADF6C0D9D43622AA2BC20",
- "extended_unsigned_section_aes_key": "E6B54E526614544DECDFDF0222D276B7",
- "extended_unsigned_section_mic_hmac_key": "19819C7737C832666E27D59C3DC62D2B67E74AAF77C084B0C5F7CEE5E1B01E80",
- "key_seed": "DA28DE4FB7354AE7A42FE5ACD337FCB4E6441C0A734FB78759998E7F63884E42",
- "legacy_ldt_key": "FBD19CC80050E2A3CCBA658BC33A65315F246915AF2DE1C880849394C4D3D3AC1D1BDC81DC8B9E67089A611FB7557048B779DB4D098573133348B6DF1D40F530",
- "legacy_metadata_iv": "03EC3946454BB96EB1BA4483",
- "legacy_metadata_key_hmac_key": "35FDDF9F58A2E758123195EEC435154878395C3558CCAFA75DF7E14672B46511"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0361",
- "expanded_salt": "CA993E1238742E9FBFF2A867AF6DC67C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F962CAE6F65E793974E3F747C6B70E13",
- "legacy_metadata_key": "B4068754A41879949FA0CEFAE275"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "009D23255EA9B45BBBF6C6288D399245",
- "derived_salt_first_section_no_de": "B61854D69D1ABB5F4B4B242031C3AD38",
- "derived_salt_first_section_third_de": "42DFF326C2975DBFE293DB83A1491D0D",
- "section_salt": "84E11FC3206B1FBDFCB1384C6572BA3A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5FCC65D755D6265DB0C0EF9B",
- "extended_signed_metadata_key_hmac_key": "9D64725809268C5CE2B688F794BEFF42CD1FAD007D08DA9D36FC3327955EF9FC",
- "extended_signed_section_aes_key": "C38BE3EFD36685F5F3E20B7555CF298F",
- "extended_unsigned_metadata_key_hmac_key": "681EBB56FDBC8FF66FF061C52D959E2CF04947D5938DC95D78B37E3FD6139A1A",
- "extended_unsigned_section_aes_key": "53F88370AB013A847A09937B3380E149",
- "extended_unsigned_section_mic_hmac_key": "E7E512CB6A70F0924FEEDCB91D1EB332DB8A20E4ED0F8D8B572215387D782344",
- "key_seed": "75EBC7DFCE82FD78DA0A8A09A49125ADECCABA053654AC8240535678F74201C3",
- "legacy_ldt_key": "8F9AAAD406B3AC203FE85B4D7ADB02684FCAF0EC7862034DBA2AA082F91E1539562778FBE810023E52B2C3CC2AECA114CCEF1D1CE55D047B28104E26462FDFA1",
- "legacy_metadata_iv": "EA7E07E57EEDF6E41788B8E1",
- "legacy_metadata_key_hmac_key": "FC4B38D5AB2F34872165411CFCB142BC09050F74B40BD8E59A39317CE952805F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5BD4",
- "expanded_salt": "C3606EDDC3602573F2916C405095B5F7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2CBE7CD74AAF6CF75E886B2542732F0D",
- "legacy_metadata_key": "63E1F3E4C1D02B0FF098E64FEC3A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "85209C4D2489BC1E5B0066B0A191A557",
- "derived_salt_first_section_no_de": "7E696E6DD47AAD02189E184D6D386FE2",
- "derived_salt_first_section_third_de": "D687657B078A5B487EC78A090BE1DB19",
- "section_salt": "ACF33CDD867D001B1BA21A1DC77B284D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BAE03528F3096BC3F727640D",
- "extended_signed_metadata_key_hmac_key": "9354B77F6EA24D0782BD80106ED2599966F1D120CA9AB1D3EF8BBE7ED0D18E22",
- "extended_signed_section_aes_key": "B3929AE06F50B33AEAA7DFACC1E853A5",
- "extended_unsigned_metadata_key_hmac_key": "11EA86EA9ECBCF3B37607A4C9BCB29485C27215BCD821F199B1313295AF25322",
- "extended_unsigned_section_aes_key": "C49B2BFDDC7CDB9B63A07F1522E9BE2F",
- "extended_unsigned_section_mic_hmac_key": "D35213E8F591E865C6866B0B8311D0C68DF63BE1C2C410F3C50DCECA633A9AD4",
- "key_seed": "03D66A4FA30B7F3C5C2AFD3194B30952264FAA1C9C1F81AF57669A4D43E17D7E",
- "legacy_ldt_key": "31FCB6BE030F09B28D5ACE111A3ED0A95D8F92D8DAEE27A2D619328201BCA8429C075F31458F3491515C20F6BF6FF093330DA58D3C22B10F238B21D6FBA4796C",
- "legacy_metadata_iv": "852E1AC7175AA7DD90A81F87",
- "legacy_metadata_key_hmac_key": "4657537266D5F2AA5878213138A8DAF1260F7D86739A596DCF8DE6D7E19DF3BC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7E9B",
- "expanded_salt": "51990F3F28F0FD4AF1956143A80B6D1C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "18A7A1BBC7195A21C35E2FF0651005D8",
- "legacy_metadata_key": "C054379A9F5B91559B09B0E2406E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9251007A7BB3AE7F56F72BA497191BFC",
- "derived_salt_first_section_no_de": "EA25DFAF47A3F771DD74CAA01BCAE1EF",
- "derived_salt_first_section_third_de": "904B8E6E8106A02F4A075FFCC54F2BAF",
- "section_salt": "C02DAD4159F8EDDFD1B72DC5BBD674B2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "31D0A7FABDC7775C5A637ECA",
- "extended_signed_metadata_key_hmac_key": "41A061274A589C01EB50764806DEE854939D348158F57A8A21E0FEB20C287B86",
- "extended_signed_section_aes_key": "003E8B44996452D56E54C0FA7C9DE3ED",
- "extended_unsigned_metadata_key_hmac_key": "A85879659248BCEEA534AD0A64E713E66C77E443B617B33E7D6D6B309F5365F0",
- "extended_unsigned_section_aes_key": "3FE2911AF9722132A0ECF2687E5C52A0",
- "extended_unsigned_section_mic_hmac_key": "937A493B645DA8B2BC1C3D90B782736DBCF4B4EB765F8DEA268BE527F9DC8492",
- "key_seed": "9A6EFA4F060F761E47674743241F6B16550F0CE9DC154EC6C1E69C0F9B3CE9FD",
- "legacy_ldt_key": "2874E0BD12A44FE7EE30A1B020C4B386DAD42093B272005A83F056A5E99F524B0F7843B5A12F90B7394046501FFD329C33DC64C17C7A8F8FEABF6FE3A4F043C7",
- "legacy_metadata_iv": "F7D15B62052EE88F2B6B8817",
- "legacy_metadata_key_hmac_key": "82875C3A898DF209D32903E7A6EB0444E0BAF63A0CE2D298265EB2C025D3D87F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6204",
- "expanded_salt": "146E127059BEEADDF612FDAB50258484"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CF86BD43081D719C7E491824128268CE",
- "legacy_metadata_key": "AA52B69B98CE4806B943F3BD0623"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9D73948C0BB29E9DC08580D8DF1302E2",
- "derived_salt_first_section_no_de": "5DF640B9C1EA323ECDB30E5B671E5AB3",
- "derived_salt_first_section_third_de": "6F93AAB49C9FB91456D5FA47854BC01A",
- "section_salt": "69E65E774944BECA8015549E8A78E5D6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BE76B71F3A09AFF4EC983F47",
- "extended_signed_metadata_key_hmac_key": "EC394B8E9AA7360184FF448E4D4F32CDEA69213576F36CA8EDAF3C998553CC58",
- "extended_signed_section_aes_key": "6EEA7A33719B0A7ABB6FA60BF5B15D4F",
- "extended_unsigned_metadata_key_hmac_key": "64CC4252E4AB212C874E824250AED285B833721E4CC8E85BC17833656DF165E7",
- "extended_unsigned_section_aes_key": "433DA05323F2D178C26314EB31D1283A",
- "extended_unsigned_section_mic_hmac_key": "D32905F35D1055A5130F1EE313B71405CD781C911E54A9C6CE90D78CC6051705",
- "key_seed": "A0F3D16A954816174218D392D4F80C9D96DAD35A3772CBB54C22C84786FA7DDD",
- "legacy_ldt_key": "2F7D66705A2587F5E0721D652DDCC2BD622FED9242AA271C6CFEC646F2F5F80EC9BB19E282A99ABB408E12A1CE63D7F6F3AB543131C357BDB31897D4576CE17F",
- "legacy_metadata_iv": "6043768BCE8273F4D808E256",
- "legacy_metadata_key_hmac_key": "C97533580CA945D0404D5C6700C8A26E832469660DA3210A11E35108FF8EBE29"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F5D2",
- "expanded_salt": "4BCAB4222372A8648D564F082606A8C8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "290819F65EEDD3BC0BBAFB1959637D39",
- "legacy_metadata_key": "FB5134C60391CEEF563F986B1746"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F9DD4D9B3F6ED23DB51CA49EA1279851",
- "derived_salt_first_section_no_de": "3F3127420C2B0236BFD3387E0635D276",
- "derived_salt_first_section_third_de": "1F9AF03F0F96763F743ADF3927EC5F94",
- "section_salt": "AA26CA24129AA63A1D56D8668C6729C4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A07940EDE81F8E47E8BF6E8B",
- "extended_signed_metadata_key_hmac_key": "6CB1CD091EDF3E282AA5CDA237EAA2A54F94C29BF43CA6ACE77C71E1C22D4389",
- "extended_signed_section_aes_key": "BE6150EAD86535E702CFE8AEDEC14395",
- "extended_unsigned_metadata_key_hmac_key": "ABF8CAA1A90A9B558DDA7F9D6B747E7934EC8B160D411D9CC3AD9D53C6C810F3",
- "extended_unsigned_section_aes_key": "9C727502E9C5FC4A5742823C6BCD3461",
- "extended_unsigned_section_mic_hmac_key": "92D15BF59E40DA2BAEAC2526126A1861EC798A2010CCF32CAB84357FC2F11420",
- "key_seed": "687F66B9C5E16095A664BFAA77CA6CD43522ADA80D789F22A2F1B5A2786C6685",
- "legacy_ldt_key": "1B9240F5F8339597EA84F651D3DA32C0E8F181F5D553914DFE77EF03179AAB14157CA24DAA318ABDE298A63AF99522968F5D11E038EF96B8F0C5202E1F6AF878",
- "legacy_metadata_iv": "993AC2FA15D04920F4FBE1B7",
- "legacy_metadata_key_hmac_key": "344E979E665135DA188AD94DE93E6263AF069C4BC734C57EC0C7CABB8BE159B4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4B17",
- "expanded_salt": "5C4E05D98F665D11797DF1B0AC5C23FD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "62FBF7C865D2E5C2CCC25137C8E938B2",
- "legacy_metadata_key": "B35157A2BB296A5FA8213A5DF12E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1ABA04853D08B25F10CF4DD3617AA3E2",
- "derived_salt_first_section_no_de": "5A096C9CF395105DAD552F70D4430D04",
- "derived_salt_first_section_third_de": "4843FC9ACB9E476C942E0269B98F0422",
- "section_salt": "886A49DF47B19843780DD87EB25DC7FA"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "76CECD4265D9F9FDE0C956F1",
- "extended_signed_metadata_key_hmac_key": "019C593A0FBCEA98D3DAF74F2FB70F85538E86802ED18A1C551DC2D095F61853",
- "extended_signed_section_aes_key": "03AD9BA0395AF2DA0BCF8623612012CF",
- "extended_unsigned_metadata_key_hmac_key": "722EEB26B331D4F8E4DA1FE92640C5E3834334C27AA80FAF02052BF19BB67018",
- "extended_unsigned_section_aes_key": "EB4C6A0C8A75DCF38383DEEF1354E228",
- "extended_unsigned_section_mic_hmac_key": "46EDA4A59DA84C85281E998F3A4A0D5BC19773D6E29A9941B34F8BFA0DD1A30D",
- "key_seed": "7A6130263EF38B138C27D244F7E79A5A54BEC5F5C19BC0F2288679CB1FD1FB8D",
- "legacy_ldt_key": "8B678E248093A95E3BB4FD0FBFBCCAE456D84178C296BB432176FF70697D5F5F32648815EA208D058C8A63D371EBD819E1199D0F505C57BF79C81605A589D310",
- "legacy_metadata_iv": "2019BF401F50B1FDCBCC54F7",
- "legacy_metadata_key_hmac_key": "909E3349F52CFBD45557F309979FF3FE47BF716B57C9BC70480E3ED6C784772D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C035",
- "expanded_salt": "6375AC6B2A6AEB7A3DDA1FDE7F23AFE1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "ED1DA5C213BED4A819DFBD489D547E58",
- "legacy_metadata_key": "D3683B7A1D610C1D63BAA5EC3AB6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D725343054A7E5CDC6A6DA84B22BD8AB",
- "derived_salt_first_section_no_de": "4D1DBE0DC6C7FF96B90A169450DF4753",
- "derived_salt_first_section_third_de": "413D4604BD8E088B16B07A8A03435FAD",
- "section_salt": "DE492742732A845FA65C564C8823E8E0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ED49A3DB6754985B646E53CF",
- "extended_signed_metadata_key_hmac_key": "EE45E2C23018B47DBD6CA5B84E9FAE7B2CA5CA63DC2D483F8B48CEA2BA45BC27",
- "extended_signed_section_aes_key": "B0DFAF284549B60F4D4B64B452200CEB",
- "extended_unsigned_metadata_key_hmac_key": "E79763B567C669376BCDFE2F559EDC78F57CF4B579F1D0AE981119D166E4F5C4",
- "extended_unsigned_section_aes_key": "326DA10A83225289DBB598117A18D9A9",
- "extended_unsigned_section_mic_hmac_key": "EE39A22C75DFB0606C884DAE582E4A90C7694381F85C23057D4C71A8C6D8B951",
- "key_seed": "B49DC807D3809482561460D4CEC6DDC83340871AC7393675B063E76BA94BCA13",
- "legacy_ldt_key": "4BB0674500760AF525B742B228BF37D572ADC8018BE2EC50EB743C6C97276590FB808DCDBF152B0ACC400B8BCC4C880F300727DB69A4463491A56D8EECFF5C91",
- "legacy_metadata_iv": "A0B6410E6E90552D4B6CF0A9",
- "legacy_metadata_key_hmac_key": "0BFF4699D2D36E22CA6054F63E77D465419D34BD7B9407F2F7A918F74B16C779"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F5A7",
- "expanded_salt": "C507B10853369A63E8BF8B2E1C0F372E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DF281326BD7D43AA30C3FB53E1F3B3BE",
- "legacy_metadata_key": "F133B88B1FA8A206538741D71FB9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D08FBCA4B99DF9CB1B82F7548DC6B53F",
- "derived_salt_first_section_no_de": "D885ADD31B640B7283B73824E8C39F51",
- "derived_salt_first_section_third_de": "6828E8AA38A859E11CCC00A89FC7E700",
- "section_salt": "7873B4B24E9A9C10EF43B165A83946E3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F61FD5A1E230271BC4A1F547",
- "extended_signed_metadata_key_hmac_key": "566C6B0160925446272159CAE5DEE968D9F319ABE6C69CD316382959541BE343",
- "extended_signed_section_aes_key": "9A76684260D035A4F0F5441D62CACCAA",
- "extended_unsigned_metadata_key_hmac_key": "578F3A34D354F511E06A50DEDD5675614312A06F00B31F87DB816F80E43D7B09",
- "extended_unsigned_section_aes_key": "CBE9B5661FFE904C20C0D632DD5396F8",
- "extended_unsigned_section_mic_hmac_key": "2713A77B4462585530C24421F740F56210A06FCE15F7DAB5CA4F1E368E263672",
- "key_seed": "DCD088261DD637804AD559E93C272F9E5ED0DD3687452A091515B52AB8666C75",
- "legacy_ldt_key": "F409540FA138A212648877204441F47C23D2D7667FA8A2B1B00385B050CFCDC591B8469FC5473A002ED95684B1F5943999FBC4C73BB288B9FC6D6203E9A7A212",
- "legacy_metadata_iv": "57CEBBC318FCA4808E845D94",
- "legacy_metadata_key_hmac_key": "16F0D311B9AF0C533817581443228962E880C7A359C22D9D9644927BDAAA4963"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F2A2",
- "expanded_salt": "135CEEC1FDAC8B2884C8F11B923D0F68"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2F009387ABB073CD8A67801711628573",
- "legacy_metadata_key": "475A12BBB78355377EC92DF563F3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "410FCCDEB4701598E1A0CBD0A1BE7982",
- "derived_salt_first_section_no_de": "82C2717CBF261BB8DFA89B3596474344",
- "derived_salt_first_section_third_de": "78C3699C5ED47AE42C9AECCE5CC9F4B9",
- "section_salt": "346D609615423AB74980C67F4143C6FE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C7501EE58E56F633A81A5356",
- "extended_signed_metadata_key_hmac_key": "2CC1670E6D0DC8A764BE3F7980A13693087218A769167F1B118DF3336889C4D8",
- "extended_signed_section_aes_key": "CDB20EC1D925B4B8341EE21CB1860A7A",
- "extended_unsigned_metadata_key_hmac_key": "EADCDEC5012AADBDC2DA659C44976E089761EF747F677B2FA577C7D876FAE8CB",
- "extended_unsigned_section_aes_key": "E57765D7282C91AA275745459FA66244",
- "extended_unsigned_section_mic_hmac_key": "83E2D2066DF9B5075C2B97FD2AB57F860051F4181B94C7EC9990CEACB881FCB9",
- "key_seed": "3CFC8786229C2F7C3A84B0C5EB62B05500C52C575F35CAB75314E890D5C6CACB",
- "legacy_ldt_key": "B56E779C52428E0BFB3A297B955A3253C566327FDCE6DF42C72A9BD8694E63D04DE448A3F55E5E9C1CEF10AB9373836F671274F00CCCFBEFA0EACE82EC60F340",
- "legacy_metadata_iv": "E82D8AEB3C419B1E416DFB1C",
- "legacy_metadata_key_hmac_key": "739441E61964F1150371065E88D7934BA0C3E858A684BB36CE9EB6E3B188F562"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0130",
- "expanded_salt": "379C952106EB79A603FEE5EC28AACACE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E401492F016E833E43E0D0189A397327",
- "legacy_metadata_key": "75457F4615A727BF7BA53340883E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "62D259A855D4090E057A0943CEDCE5D5",
- "derived_salt_first_section_no_de": "E5729E00FE865AAC28980567A51CE1D7",
- "derived_salt_first_section_third_de": "5E3723E7B887ED6EA785C48362DC11D9",
- "section_salt": "05ADC910FC40F2C889BE2220154C372A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A2A75CAB93F8F37B66339F52",
- "extended_signed_metadata_key_hmac_key": "EB57FEF0143EB6D5B2857D2B32D9C76A6D0E821ABC6FB8526C1B29E990A6AA6A",
- "extended_signed_section_aes_key": "307BD6CBF562A22FF6111432100AC968",
- "extended_unsigned_metadata_key_hmac_key": "B677314A8DC90FFEE7351BF778ED83C56D0644740B8AA09E8E363F9076463F8E",
- "extended_unsigned_section_aes_key": "810DA2E2ADEC9006C4F29A56B2145357",
- "extended_unsigned_section_mic_hmac_key": "FE71D5DB3F1148717C334B4F6A1E59B500BB44943E38FE3F0A175A6F7C006E24",
- "key_seed": "2E1B59D8F2856691107D785576C72412DA526B8BBCC23BBF1CFF8625A954E565",
- "legacy_ldt_key": "738A3D54123DE55B9D33D004D253801E2E64261D37D93A0AFE2DDFDDA361B5AF27A5128CA411523398CD48821E86999C93AAC4E4B0A277F12DDE2D83FA1C95A4",
- "legacy_metadata_iv": "9AF178E4DC70A05A50D60C54",
- "legacy_metadata_key_hmac_key": "18C0DAD25F23D682E2CE974254514F06ABE4814949BDDA39A32FC48C44504538"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C367",
- "expanded_salt": "106B05762679F15DBDF5088316EF6F6E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7F012C91454260866B77BB71C0BBAB6C",
- "legacy_metadata_key": "55AE907DE19AC5256A7A557C38A7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "795BC3065F76C52EDEEE1EBF47A2FD01",
- "derived_salt_first_section_no_de": "BD93B6A724A30486215A621C73B48E2D",
- "derived_salt_first_section_third_de": "DAB567F9B2E20C6259FBE241071815FB",
- "section_salt": "FD44138BFED428405A4015BDD90E13D8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5747A895AC2B3A982A9DD6AC",
- "extended_signed_metadata_key_hmac_key": "31D93D3D8F831BD11F209A63ADE30F9EAA059BC397170514FC879471BFAB3FA2",
- "extended_signed_section_aes_key": "1356AA88C2CC52DEE58F4AB96A4D75D7",
- "extended_unsigned_metadata_key_hmac_key": "562CBA107549A9AB2BB1CA7D0E03A86741E07AC57175D8E450A04671E37A0AFC",
- "extended_unsigned_section_aes_key": "355C0C576711EB3D5D274B52C4074A70",
- "extended_unsigned_section_mic_hmac_key": "B21DF85DA75114720F3FAFD607F2A7E43DA75DB1659F886D0C4D8056432C0CA6",
- "key_seed": "B4C0835FB44D9D06DCE2F6C5A4654E56238A2734576EDB9D9E7AD54B42568B7D",
- "legacy_ldt_key": "2573A84625FABAA4B9DF6466024AD7575D82B86A1C7FB06B8F15405C21EB229ACA58AE3D6AEAB198DA304FCFD6466FC465E145F72EF4D452FA4BBCA9154F34D0",
- "legacy_metadata_iv": "19AAD0E0DE787D35E54DDA30",
- "legacy_metadata_key_hmac_key": "9FCECAE2B18734CB2B3DA9D7734C120C00808C40E937D16488F4FD383D8816DD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "45A3",
- "expanded_salt": "F472EB176DAA9619EA126AD0062E4666"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "06982742AF9BD8C2738D0A1C4288945B",
- "legacy_metadata_key": "52727496EC4214DCCB65B940C3C6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A67838C65D243D1021BF2AF585862A3A",
- "derived_salt_first_section_no_de": "4DA34FBF909D91EB99852C575E9E7A77",
- "derived_salt_first_section_third_de": "DC8E801944B129A8C7519F55C5817798",
- "section_salt": "18A787F48BDAFEEF13978C8773440D51"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ECA8365AE1F97C62F8736BF2",
- "extended_signed_metadata_key_hmac_key": "E67B1348833D4F7CF114CEA496B3C8456BA7B8735174F915B1FDCDFB53FE02C6",
- "extended_signed_section_aes_key": "C3AEC6DAE3A7C6FC8A19013B8DB5A97E",
- "extended_unsigned_metadata_key_hmac_key": "37D77C1B989146CFA607B5160564E24BA2528A46A8803A87F9BBD041AFC9A1F6",
- "extended_unsigned_section_aes_key": "ADAC1913E81E31842C6A919CF85A3C9A",
- "extended_unsigned_section_mic_hmac_key": "B9DDF8BB9BF962CB25864864AED341CCD1608DAF7104BA60B9E961F2E0C1641F",
- "key_seed": "E180BAF9A6E4E087F92C772C647FF1E2B0512612C47119C59BC38B56E4337049",
- "legacy_ldt_key": "BB7B48FA6992B8B151620DF51A65D9FF0E35E5FF277E6D28CCCD06ACA44AD0E27BBF49DCFCBEC7189E94C62D91D52568B2400FD17231151CA56466D42E2E8F7B",
- "legacy_metadata_iv": "1915675D7B915E847FF75DB3",
- "legacy_metadata_key_hmac_key": "D399138988B25936B7878B5741E604A6BCF5A48F3F02554B64118106C7884754"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D0CB",
- "expanded_salt": "A13E42C714FD7A34AD37915E2216072E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "681EB07498B92C4716A035AB59F8803B",
- "legacy_metadata_key": "D75974276B73B38464625D00EDEE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BC6AADB24D7BB06C946D947055243EC4",
- "derived_salt_first_section_no_de": "CEFCA7A5FE5360BABDF547A4FFDBFCBD",
- "derived_salt_first_section_third_de": "FAEE1DA5C05B388A794BE7803D4155DA",
- "section_salt": "78B725811A2CAFCDFA950869114BE661"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F3E2940E72836B0529217B2E",
- "extended_signed_metadata_key_hmac_key": "F6A87AE5478215DC99C00C6D66B978E4E9B51D5BC478B01FBC2CA503EC467043",
- "extended_signed_section_aes_key": "8A7583E8E0C1A6C532B315DDF9A130CD",
- "extended_unsigned_metadata_key_hmac_key": "A50DB895A8A085301E90B5AE2D38AA2CCAE8E8E52DA3FFD4BC5892CF41E86C64",
- "extended_unsigned_section_aes_key": "E3ED1EA53375E5495956B9BEB0EF61EC",
- "extended_unsigned_section_mic_hmac_key": "FEA9A118F91E20E2121EE0EB31DE24EFC055FA8D18B7EE28D0241E9BC6B90DB9",
- "key_seed": "388E562A8C6A9FECE0E025248C40570FD197E19CB23E733945B484500D27E4F7",
- "legacy_ldt_key": "910AD05A05E30694FD82B7A06E4CB396E1763A9664ABE87A91C9E176DF785D79A1788ADB4EF819F79EA099F9EFC1B47D8C5E1F37746EB5073E0A10D44ADE73B7",
- "legacy_metadata_iv": "271B5E2711F6899CE08F6087",
- "legacy_metadata_key_hmac_key": "425B8D129183C95B979AA9A970345973957CDA7A4D24EE3C970426379C18240A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2E52",
- "expanded_salt": "56080FC3ECCFD28E6086BBA7EE598C54"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "ED12B6FB651B10B924CD6D8868E93703",
- "legacy_metadata_key": "296034F2E45E77071FB9E0D3A37D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F154FFD9B01F2BBA0DF09004FCD564B5",
- "derived_salt_first_section_no_de": "08AEBD510DB7396EC943A3943EF50D16",
- "derived_salt_first_section_third_de": "CE2D94B24AE21E3843133C7D3A0E4642",
- "section_salt": "90873010E300EBB7D2F3E04CDA3966AB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "255E059DC684A04D440A4432",
- "extended_signed_metadata_key_hmac_key": "31E2419E79ADE63A63368517F6E8FE413D1FCF48813631102E15F39E07C48C4B",
- "extended_signed_section_aes_key": "8EF8CA7BE2B37E71D6CD1890F05B1E16",
- "extended_unsigned_metadata_key_hmac_key": "6DA66F91A50312B618E758006E4521AC7B4E623DCFB88BAD16BDC6E0E9984170",
- "extended_unsigned_section_aes_key": "EF3EE406D5F43D3C9E539E43AF46135A",
- "extended_unsigned_section_mic_hmac_key": "8315CDD7590D150EE91571E66071911176002F0C4A19A9D34A088B75DB097185",
- "key_seed": "32C725F33BC98B37915E931B5A25883EB856FC39D993A3761F98AD4CAA398DBA",
- "legacy_ldt_key": "1034DE7281F6DC5E83589CD7B24DA1FC329A84868D8EABD4EF7F535B46DEC03F6EFAC866C9477B785BE6C6127E89E7A0FBA074E8A3E88F723BECB70CBD20A329",
- "legacy_metadata_iv": "95D421B8D76A76C8DFB7BCCE",
- "legacy_metadata_key_hmac_key": "0B77EEDE30A209E2CA1BF1A30CA9472D70BEEA269FFA6647394DA85137F27130"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CA59",
- "expanded_salt": "C0B1814D3780ECCA886C8302365857B9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A85F3457A069751A063E3321A5FD5E26",
- "legacy_metadata_key": "A28AE95808E7445849E4E12B35C1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EA06410ED50FA3ABF5BA4A00FE9CE286",
- "derived_salt_first_section_no_de": "EA5C325BAB0A2667F61D25352DDCCE9C",
- "derived_salt_first_section_third_de": "1F5F4B2132373115E10A4C8C3A19271F",
- "section_salt": "109A2BECAFDFC8306B9BA0F1ED0E22EE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "66152B5EC46F63755E148A91",
- "extended_signed_metadata_key_hmac_key": "198D3E5C2D6BCD400CA0E776BB158A839A3F956C8AC3E36E86DDA9D1B3454B31",
- "extended_signed_section_aes_key": "693BA171F291C1B99BE11F08493D8A21",
- "extended_unsigned_metadata_key_hmac_key": "77A28A3B820A47136C8071324E11221410E3948A596F4ED71C6DFCF6A22FD83E",
- "extended_unsigned_section_aes_key": "116A93F83AD177AC2F18EEC9003A8BCB",
- "extended_unsigned_section_mic_hmac_key": "BE3ACD1A174614BAF9015F7D04083BE0580DDE8D6FB0E672F4C71B664DD35A35",
- "key_seed": "CB67583EBC4BCDE90A5AE891FD19649361ED089C5A5325B60E2CB66D57ED2B2D",
- "legacy_ldt_key": "279C5AE228DE7BEB30294FA697366FCB9D2E43178E6B1762350E2C17AB603BFDF9A075A928D9685A02083E07D1657313329C89BB8F6C754999E6F3115AD97648",
- "legacy_metadata_iv": "C0DAE30E8A4EC8DC8B15AEF9",
- "legacy_metadata_key_hmac_key": "FEE582E442BD59212D88E16674E94964EFA53D508F80A933241B39BA08F01960"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7D1A",
- "expanded_salt": "7856EA9B51EA6EA890832C105B3A4B2B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5CA8045869428A511EB5E80E3191A2A8",
- "legacy_metadata_key": "77F3FF84BF010E0A0FE04C986C11"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "39E9F8B43909FEAE3789B20932E4906F",
- "derived_salt_first_section_no_de": "5051D0379371FCCEAC40169F499D99DD",
- "derived_salt_first_section_third_de": "5701E6205448E108ACA856389CB313CC",
- "section_salt": "844DF1A98A478DEF6D011E5072133196"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8C600C0E49F2ADE14DD700EA",
- "extended_signed_metadata_key_hmac_key": "1DCFD9E8508F52EED0918DB629D321BDF7EC77DD0D9487974170F1A27B53E2D4",
- "extended_signed_section_aes_key": "83703FF2BA36682557DBAE6DB6B1CA62",
- "extended_unsigned_metadata_key_hmac_key": "13EE5D0C9F2BE99C5998DD1A69EB635C063D79F825FF573AB6DB218462E64A41",
- "extended_unsigned_section_aes_key": "D9444BDCC3B826672EF6F26F8EADE1FE",
- "extended_unsigned_section_mic_hmac_key": "CE1FB022782FA9D1F7E3E8B7056D63B0A432D029CEA5FBCA94946A0352214817",
- "key_seed": "BBA7FD3D5F1CF22100516D9EA6EF166A3AAD2BA804D20C24EEE07298C7602B4C",
- "legacy_ldt_key": "A5AEF2E4537D938CE942C8C8E94B9804CA3CB68FD6DFEB55A66458D510864FD406A593D64512F296432379A76F4D577802112DDF0BCA17BC0CB7E104D196C059",
- "legacy_metadata_iv": "E5E770AD49593A419479105A",
- "legacy_metadata_key_hmac_key": "E54CD76F7E5F34B430BC089BACA8EE28085571232CB806C13FAFB3D1D1607B25"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DFDB",
- "expanded_salt": "220C79E48E39FEF7CBF7C6279F4C8C09"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "08FB2AE0E53AD29CEDCD341F7DAFD4E7",
- "legacy_metadata_key": "C45621536D93284035AFAE23F329"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "792BFD7282D6721E77151FEC585307BA",
- "derived_salt_first_section_no_de": "10E0F80EA9543BB1EA1FBE9E51536952",
- "derived_salt_first_section_third_de": "E23D6C2AB6D8882784BC418460E17E4F",
- "section_salt": "7013CBF565C0B527DFBB74BA56335F70"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "27A1A2844EF8702DEAF2E6F4",
- "extended_signed_metadata_key_hmac_key": "2D7694F4DCC0068B1098F1A627BE5347EFB4B46EA3489B49C567CAC6C3E30E7B",
- "extended_signed_section_aes_key": "65A8D4911BD93D480058D2E561F4064D",
- "extended_unsigned_metadata_key_hmac_key": "4D53D1F9FD529EF25126BD61C5800814836DF35B13A1671522E66301141A97F6",
- "extended_unsigned_section_aes_key": "51B98CAB61EF74C8C5B7A47A64461F07",
- "extended_unsigned_section_mic_hmac_key": "84DA43291DA59601BFE390D2A9048CFB66BD39B0DF5664F8FAB378F1E502E56E",
- "key_seed": "ED91C38E120E7DFB8881976F4E823A90CC6FFCA94C2581BA604CFE3B2ED9B839",
- "legacy_ldt_key": "273AD03B9D5D21D0F9E69081B66FFEAA1FED50E55DF109492D032EFB64B43FA66E9099C27629448F0832965743FC7D9B4D60A8D5FC04674759E1620EBC6224F8",
- "legacy_metadata_iv": "E9A21D997EEE75D68BA25FE9",
- "legacy_metadata_key_hmac_key": "13C743AB85A42E6FFAEA0B4DBA9586D41BC8FD710734F45DE09F9DC431CCDD9E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A87E",
- "expanded_salt": "4CC8AA5BC4F46F2E04B2CE433B2928AF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C7C54938B33477DF0AB447B960A80E12",
- "legacy_metadata_key": "92458D2F4C1CE0861816E4361503"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D6392C83FBECB5AAD52F39FCC2B7F8B8",
- "derived_salt_first_section_no_de": "080433C34641DE927C402F0BC185ED81",
- "derived_salt_first_section_third_de": "AA9CF938326647FED6B4E02287843280",
- "section_salt": "E36DFDDEF5D3F25B0B1F150771196689"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0F699AF66C00F9D444DD411B",
- "extended_signed_metadata_key_hmac_key": "2D344EDAEEB3A563E101D5ECCC1D4E8BE7364B187B34EBD95804C58CC751CEAC",
- "extended_signed_section_aes_key": "32753CF73C78EE1607A0D6C56AB75759",
- "extended_unsigned_metadata_key_hmac_key": "86F52D1610A7DAE2792B8A18E6521DBA56035C571FA31B857A616EFE0CBF41AD",
- "extended_unsigned_section_aes_key": "0C97002D1ADEA1B3AE3C63FB082B94C9",
- "extended_unsigned_section_mic_hmac_key": "59E2F004318186F2A28EB142C30B3F4D3E2178BA8C2EB17C50B44AE3DCD81D86",
- "key_seed": "4420B2CFEF3B92FD31B5CA331157B59B52DEC4802289D305DDD2131B906CBC72",
- "legacy_ldt_key": "B48E903D04D47E21306A063C4E244193D8FF1F064C96A0B0E12A758B18D45D063A1E31CB8650CD9B858666A3F07D49AAB0F395FE5D1EB7E083C17872F6FA090F",
- "legacy_metadata_iv": "53869044D12B0567BA1960E1",
- "legacy_metadata_key_hmac_key": "B5C7E86DD866A81B99BE7280AF04C03ACBFEC1D26B8EEF129E1FB5B5A0C8D2BD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5827",
- "expanded_salt": "D1C06A8FCF2F00BD9F58B3FCC53782A1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D373D61FE99DBAE30710B1D5EFFB38F1",
- "legacy_metadata_key": "54A961FDA1BBCB4291E4B48E70AE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "440D31EE0EA80B8B8E44FDC10FEA6B68",
- "derived_salt_first_section_no_de": "BDC57345A140FA54BCC870C0DD3063F1",
- "derived_salt_first_section_third_de": "2D11E6191484BB7C01266B917C9D75D1",
- "section_salt": "9F8F14D6F1A8120590FA134FF80805EF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B4C4E9C76357AA753218B864",
- "extended_signed_metadata_key_hmac_key": "B85A59061E8197E6927C9F5D5DFCDD233431D1725990E7BCC3DAA24BB84FDD67",
- "extended_signed_section_aes_key": "B89205DC8CD665256B215CA6268D9208",
- "extended_unsigned_metadata_key_hmac_key": "B9E3AA836D4DB6322AFD87600690C9F4AA8B0A471CBE5C90FC01C9D8EC307F44",
- "extended_unsigned_section_aes_key": "5BBE292ED19E375D8DB4FED5AF1B40E4",
- "extended_unsigned_section_mic_hmac_key": "A4F97AB133DB3F4244416CADD8A406FF9985ECDCCFAF6606061CB75C6214B0C3",
- "key_seed": "81AE764D9397E06F38E2AC2F2EE68BC30E9B12DCD7ACF5EB937428089B30EE2D",
- "legacy_ldt_key": "7BD181D7B6A795A100C20320782B3F38F765ED067FC9B99C93F67C9FF99854ABEFD8655F5EF86FEA7B321B715E61D7B285B2A936E171669336C972023794D60C",
- "legacy_metadata_iv": "B7E851A4466D9BADD2B2A4CE",
- "legacy_metadata_key_hmac_key": "2462DEE9D4F77CF13D6423D4890AD53735969E16BB1D101D51FE525D5FC0185B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E2B6",
- "expanded_salt": "CE2AD19079F7E7059C6C1E9F6F8D7376"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5D2E1A96287EAB7A25665537C14F4634",
- "legacy_metadata_key": "7DB640BE9B520F0FDC8EA616F542"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2DF9B9207A310141E3FFB1D1014E8A2E",
- "derived_salt_first_section_no_de": "E19C42E296B556E264556BB331CFF326",
- "derived_salt_first_section_third_de": "7E78C38336595E7DB45D720ED2D1E201",
- "section_salt": "7502B9D6EC10A8B706D7B9AA2618AE32"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "76A477FE8DF96945240E3339",
- "extended_signed_metadata_key_hmac_key": "B9F82B67EB21016F37DDBBA3294D4AFBCDD48242E1EDB9489384B496619D4D7F",
- "extended_signed_section_aes_key": "95280E5635CC993EB0AC389E7FC531D1",
- "extended_unsigned_metadata_key_hmac_key": "05542DCF328F85754DE470846D7CA27378454DCD2BB8138D979B0C334CD8DE84",
- "extended_unsigned_section_aes_key": "42413587153A51C06587B8895131CBA3",
- "extended_unsigned_section_mic_hmac_key": "B162E827735B0D7A5588251FE3AE0C731CA1BF7394D7A0104F629672B2010565",
- "key_seed": "4B300658666A3300B658B9FCAF6F4A896F27F58A432B0932FEDD76FC1F881943",
- "legacy_ldt_key": "2262D35303CF4E83B3933B1502FBDC2DFD6333140A49C40235D3A7AE23E0711027C1E547D1A9D14976E280B4C30CE44E69003507D06597B1949C2BF956850053",
- "legacy_metadata_iv": "40D3958A1957106779B9E7F7",
- "legacy_metadata_key_hmac_key": "C4CE499DBF43A1B75CC82024829778D188330C59906FAECD2C47AC97D3547AC1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "88DB",
- "expanded_salt": "4BFF210B0BEC8354642AB785DD13AE00"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F5E5070FAEC1C097018798B04F3722BD",
- "legacy_metadata_key": "73C32EB3DDBCD92E4F2F1AF7221C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D5D23F074EA91A39B754C55EC211607B",
- "derived_salt_first_section_no_de": "9F06BAF525904019F91F9DA6BB657A84",
- "derived_salt_first_section_third_de": "4F2ED784023D958AEDC814FD4B10C923",
- "section_salt": "2E6DA16D7AB77B015127493BD1EA2F4A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "722D9C6C1C94CCF12EE62871",
- "extended_signed_metadata_key_hmac_key": "8261F992EED00D8785ABD985503198E38F9ED2DC25C2521F325D5DCCE6955566",
- "extended_signed_section_aes_key": "E111FB2F4134EA25FB7D114AFDEEB440",
- "extended_unsigned_metadata_key_hmac_key": "DEF7D06C2D69EF1A202F6DA6C045BE16BA4A83798BC0C3CCA9ECCC5B26918192",
- "extended_unsigned_section_aes_key": "C2518F6ADB2118179CD192DCCCF67A19",
- "extended_unsigned_section_mic_hmac_key": "D7C77585133BB1B720431D7500DB3D046801C856D1F62630F26E10355BB975E6",
- "key_seed": "E833F3F098B145D70D1409643A5D027884C81C9D8F18940853EC0110D0B6693A",
- "legacy_ldt_key": "BC6E9E4FE8B899D3B2C98B9497F1B8A887AD82B9ECA23A89B7691B7758A9375C31E22619F6F81B93D3AEF99CB1E05151AD14E953CFD8897F2187E1A030E17EA5",
- "legacy_metadata_iv": "0AC7F4BFEFBF869FCFA15359",
- "legacy_metadata_key_hmac_key": "745A37D0BA7845F389527FEC8F69DC65812CE68D63C41CFA785218DFDB20E19A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "67B2",
- "expanded_salt": "25319C7354BB7C2F0D2A4583947A84FE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8F4F33FDECF70E171ACC8CCCA59643FE",
- "legacy_metadata_key": "CFFE4531D76D11E2E86801FED045"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8C9F3AE7398FDD8FB65FA9F532E0CF2D",
- "derived_salt_first_section_no_de": "C3602723E7C1CF744C0F5DF67EF3D4EC",
- "derived_salt_first_section_third_de": "7741576DC62CE8F4AD9E7B84BDF1A71F",
- "section_salt": "B83B08D5A0FCCF3F60213B8AC90ACAE3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "133FFE9B637AE04A60B64E1C",
- "extended_signed_metadata_key_hmac_key": "150D5E3BDB6BB44359C9A583E1D14C67365255C1846ADCE21CDD0CA1CF347E84",
- "extended_signed_section_aes_key": "D4DE4065BFF12B3F969B41E80DE83F18",
- "extended_unsigned_metadata_key_hmac_key": "F577325E361FF514151A4E458BA2C71E183F3302CAAF99B787C27EB50ABE456D",
- "extended_unsigned_section_aes_key": "835B6A661B1B26D11A08D09D8BFFFF82",
- "extended_unsigned_section_mic_hmac_key": "6318E66CC0909A2ADBEE47796B759BCEC66A2A6D0AB6796DA3F755885C8773FB",
- "key_seed": "DAE069285E70849422C2F9A43E72938286276BE7B7A137D14AE7922005EB4924",
- "legacy_ldt_key": "AC013AC11828E9009C109AC5447D5697EA6648D7E67A0CB96065E12FFBF20B70E0E5B820E4FCC368B21DDA1F6AA9E6113D584FD84D8FA9C09D8D62D510D415EA",
- "legacy_metadata_iv": "E4D4893E1FEFD0C576A9FBFA",
- "legacy_metadata_key_hmac_key": "F36D63816D31D09457341571924757E412A4F828C57BD9D9F70C0E88B8F5A1AB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "24B4",
- "expanded_salt": "D77E9E22341EF859EF4A0A92A1449327"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F8B496C52F312ED042079B3302CCDFA6",
- "legacy_metadata_key": "C2F249020A3983AB4FBE22F880EF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F0E1DEF25E1B1B30A656005CA94C4BB7",
- "derived_salt_first_section_no_de": "101780FF6C81B7E333FE3A545E5EDDB7",
- "derived_salt_first_section_third_de": "17CDA1F0EB72F9C2311EDC5957C0538E",
- "section_salt": "501B2579851719BB8E2B2FC8D641AB53"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E6FBB831C1A6CFABEBDC0EDA",
- "extended_signed_metadata_key_hmac_key": "EF1DD1CEC30C172F1580AB6A62F5A16DE79DB3C0EECF472DF19438A1C74C8F85",
- "extended_signed_section_aes_key": "86C08A1C189A3E8286EB5407AA895EF3",
- "extended_unsigned_metadata_key_hmac_key": "6C741891D115C5C6C121BF397D02029086AAA48159FF5AD4251FE9943604F38D",
- "extended_unsigned_section_aes_key": "2FB90EA98DD157E9C942FB8B1C207F1D",
- "extended_unsigned_section_mic_hmac_key": "849A1D7B47E535A486E2E1FE7688162702E39CCBDC0C91571D7EB32F9B28A69E",
- "key_seed": "1B92071806F9DFB8834C4F6D1F806DCBAAC8FB16ED82641E10CE8749343BBD3E",
- "legacy_ldt_key": "BFC34FEEDB522AE6D2426DDB651C1A8DDE40A73DD513E7A09A3E5A2F3DC8AD493C9889409CDC9173C4E726CDC4A6343E0F35716ACB8531D45EB3F49C2D383D80",
- "legacy_metadata_iv": "F15B87C94CAA061B28753DB9",
- "legacy_metadata_key_hmac_key": "BB0EA267B4DC88F10AD3635E20A3DB8628A6140589A0E0B277594727E9F0103A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F76D",
- "expanded_salt": "523DAFB4B4C712928E2A5C013D352149"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4EF9553B8AAE758052B87F074E42DB0B",
- "legacy_metadata_key": "367CEBB09CD19627EE16F821463E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "191AF90225C82FA2ABF669E4118CB91B",
- "derived_salt_first_section_no_de": "86150F98238232912EAE0B68A8E89F48",
- "derived_salt_first_section_third_de": "C24AF7535FABFCB9641D3381E5372BB5",
- "section_salt": "9661D26494301559B404C50A992AD974"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BD895776C2BDA6414F7402D8",
- "extended_signed_metadata_key_hmac_key": "444FD31197C6FEC9C6614DBA16EA63C4CB820AE63A87457BDF32E22DE59AFE0F",
- "extended_signed_section_aes_key": "0137DB7F80FB37300A7610623DC8C513",
- "extended_unsigned_metadata_key_hmac_key": "625A97482ECC4607C339AD1CD7023A3FCB9796BE8C6AE2DEE5B3589D5EF0F953",
- "extended_unsigned_section_aes_key": "BC611EFD90D7BFA894DABCC114DFF1DF",
- "extended_unsigned_section_mic_hmac_key": "5E155DCB0B56E12D8124DC3C26EBF4097F86D0D28A25EFA564D97C8A42191D68",
- "key_seed": "7E32F8F86F1E461A8D95D31F11214BA1AEF910A515D3E325F4A0FF152D6C31A3",
- "legacy_ldt_key": "C0F00F4162908705AF6E58B33AA3FCA44F23AF1AB2C436C6ECD1910DDEEC21987AD7F14FE9BE0558613B0FDBBCF41D758A6A4F724EE5A3681A1E752200A7DDF1",
- "legacy_metadata_iv": "FEB1289D9A5AA7EFAFCF0145",
- "legacy_metadata_key_hmac_key": "F6973C432AA47BCA6943CFC5A87E8AD4F116E8723410ADADF85A38069BD6F5DD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E2F5",
- "expanded_salt": "719C20D32EBBD1F4FF843DBA5EAF017E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B9E3B4C91B7428552454882F2CF73F47",
- "legacy_metadata_key": "A90E77635C3A1915B129C9E7F0A0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "26BD96E041094BC073D55C30B29363CD",
- "derived_salt_first_section_no_de": "48D67446248689DD85F79D61F63DD9CB",
- "derived_salt_first_section_third_de": "FEDA47E2D8D162CD52A438FA0CCDBBBD",
- "section_salt": "BE13902115E7B1723B97E8656DEDB58C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B59A624BC7647A89D255D712",
- "extended_signed_metadata_key_hmac_key": "E8EC0144D932EC8124D1BCA1C38298FBA2319517F2C671BA9F05F8315FFCFD74",
- "extended_signed_section_aes_key": "49ECF1F8FBBB2660C29B425F54E49DD2",
- "extended_unsigned_metadata_key_hmac_key": "FD9D7FE06AF75F368673E2977246913669B72383F3E556A06D21B9E77194A832",
- "extended_unsigned_section_aes_key": "F3200D38840FCCF9A13B4FADB09DB257",
- "extended_unsigned_section_mic_hmac_key": "B348A212B5216D0FBEB503BFBD1F97628DBCBC8495E04C843C8D82FDF031C0B9",
- "key_seed": "6D2E33BD4DAEE6CC67C662009D5008BBB8F62E4B63B8CD3FD7A75029F7DB63DF",
- "legacy_ldt_key": "77BDCECE84B3177E180DB6ED5CBFA691546B265E90BFA210067258E27F14E286E51CA6A715FA678EF00C34FA1ABF3325F229D7EDA2006F11CDA6A3F3D66751E9",
- "legacy_metadata_iv": "DAD33EAE94B711E11CD667CE",
- "legacy_metadata_key_hmac_key": "07669B23008FA1E251EE68B0E10322B30828E580FF8D089FD346C4EAC8B511C2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2FD1",
- "expanded_salt": "696FFF2001608BA5F6880FFDCA7B07B9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8FF10B06F3E2B68BAD84397C714563D6",
- "legacy_metadata_key": "8484E6FE4ABE18D3B12798488109"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4EA7A3AEB669FAB358C638DDE0570772",
- "derived_salt_first_section_no_de": "15E9FA7B74A54D10B6132B63036F11D8",
- "derived_salt_first_section_third_de": "F9BDF729B327290566ADB9E95D80334C",
- "section_salt": "67212D59912E906E77948AD5F5C8C413"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E243153932CB6D5F36D9B55A",
- "extended_signed_metadata_key_hmac_key": "CE8B541E5BF4CC2DAFD7C3B5CA5DB1FFCC9DAE859EE7CEE4CA230F3342C5A8BD",
- "extended_signed_section_aes_key": "81EDEEB5CF344B22345DACB88C6901A6",
- "extended_unsigned_metadata_key_hmac_key": "76C2F8E5841EAB5296900AF4384A6AE1BBEF776F9C4B70FCA73D4F834AC0524B",
- "extended_unsigned_section_aes_key": "3DF593F6EC22B285C9F87630E59D657C",
- "extended_unsigned_section_mic_hmac_key": "B737B46379D34D8193457E26ABE15213F6F526BD921396C21346E0EBA211A0D8",
- "key_seed": "1395812CE762899A13BB6F85084319DE1ABB82B10ADA2E45D968ACDF8C78BC3C",
- "legacy_ldt_key": "B891C37BBEE996A9DD732E2915A7A1A59987246D5EA0F238C7FB1A1902204AAD3EF23BE95329C0272B1C8A5F03211CEF7A4339B46C22E4308F3A147C6B295F80",
- "legacy_metadata_iv": "8AEA6A7CF984B136B436CFBB",
- "legacy_metadata_key_hmac_key": "99422750DE64E8A7DC5DFF3680CFEBAD1C123D911161A58A5EB951E0C59DF2CB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B12F",
- "expanded_salt": "5F1B07FE6829797B2652C280DDDDF93A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "877E76E30D9F99E616D94906F70C3848",
- "legacy_metadata_key": "B9D6E86B23CD988BFA04CC4FC605"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "45799916BF6C5BABB5FCB134E9022912",
- "derived_salt_first_section_no_de": "6B3BDE2C51926206A5B395900097155A",
- "derived_salt_first_section_third_de": "B7665F8E600C357731BE395A233A21B7",
- "section_salt": "28E6436E8023AFF00B05F46202863E00"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9676A2E48752AB26AFCD94AE",
- "extended_signed_metadata_key_hmac_key": "080F35F003E9DBE86A48EDB3664C8F4A5EE8FAD926EA1B292EFE5900E1C59FEA",
- "extended_signed_section_aes_key": "151E82A07A50E4B46EF32299DD707F7E",
- "extended_unsigned_metadata_key_hmac_key": "E17328E88B253A32493CFD5AAB63FE83B0620135629A2EF767AB32B3CA79A9AD",
- "extended_unsigned_section_aes_key": "59C0267D3294C88BD963256029800F75",
- "extended_unsigned_section_mic_hmac_key": "40341BB262F6902DCB9CEF9141F2F1964A044D7DC88F2B7473F07F8F45BF9152",
- "key_seed": "9F718E06744B30C6721729B7C8BBD086B146240F3A1930980140D9C0AE2CDC87",
- "legacy_ldt_key": "57271469794C4C9FB4CD453DB244857B25B68F2BC9B0D319F7245B04A8DC49F305BDE6CB69CD5DC88BA59F17D018DB53C187CBDC1D15D67CA5542962AD8E8E1C",
- "legacy_metadata_iv": "37C06B09DAB9EC45696ADF3E",
- "legacy_metadata_key_hmac_key": "F651E48560FC070DD2CE0F407E338AF801E1AD36AC78711F2962313D1BF28B88"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0F17",
- "expanded_salt": "3C660F96A29BDA437905659F689CCF99"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EC376F7AD88910413088555084E0C203",
- "legacy_metadata_key": "8972285FA4293A28A69874D3CFA4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CDAA4384852638F79845AEFCA8EBDB35",
- "derived_salt_first_section_no_de": "89A325193343C6383D3AC0513A5DBCF6",
- "derived_salt_first_section_third_de": "ABC7D33F7933616FCE81AC19D9C3D774",
- "section_salt": "A5AA9D4B67296E48BA8684A976D85180"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5E68B3079E755B2FABB310C2",
- "extended_signed_metadata_key_hmac_key": "784A00F9DAF599191DCB80D3DD0D198EB19B4032A3A6797F1B6EE48997C916B3",
- "extended_signed_section_aes_key": "7D1D9832BCD442416B987A4A3D5D32E2",
- "extended_unsigned_metadata_key_hmac_key": "DC33B9908875375FA636633F102A1B92B59D3E2A8E91272E1F928B6524E05BD1",
- "extended_unsigned_section_aes_key": "C18D6A0DEBA781EA251B56F222465F02",
- "extended_unsigned_section_mic_hmac_key": "FBB9C8406A7D52F161EE4181681E84365852242614C8276553FF8AB753F2D8B2",
- "key_seed": "3F830A7BB98DC8DF38B087D4E4829241B5E6810EAB0F78BC0F0DE345D436FF0F",
- "legacy_ldt_key": "C4A4CFFCEC6DAEC85891501F24385A5A718B005F4341A5B1BFAC6C96589AA2E5D1CA59FEC95C5051B5D1CF3CE95B6A52DC8F2063910FB20A1A6DF41BC40DD772",
- "legacy_metadata_iv": "907F5E2E91E42909BC12D9FC",
- "legacy_metadata_key_hmac_key": "1AEFF7E20E8BE497A46C4CB03D3B52D941C758DA9B753C7B51E16837E01561EA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3545",
- "expanded_salt": "11DEAAE477B40084E38D7C6AF2EE3CDD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3DCC73B1ECB2A4C1716AB62B198BA4A4",
- "legacy_metadata_key": "BD9598CBEA2CC07C6485329DF8BC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "57DF139347217632373979AA5E2BD4F4",
- "derived_salt_first_section_no_de": "39907DA4C95B4A30D9629A8234E2FFC8",
- "derived_salt_first_section_third_de": "F7DDD2B75709366A793C615E1C730B81",
- "section_salt": "DAF8E7F994EFFB5FE6F9438CF42E98C9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "03A73319DD406417D29E0CA8",
- "extended_signed_metadata_key_hmac_key": "8BA2317C76D06CB1332008361CDCEC06511B8A3A91C61FEF243331B4A2A5EA9E",
- "extended_signed_section_aes_key": "2971ECED3060CE5DDA2321139BDADA74",
- "extended_unsigned_metadata_key_hmac_key": "9B42D2D102E2CE8B6D73DBEFD9AC8FABB9CDEAFFF56AF7E30C81223954FD9234",
- "extended_unsigned_section_aes_key": "59EF0620E0754C0A670AA9D765D1AB55",
- "extended_unsigned_section_mic_hmac_key": "A1E40F8622D4BFF1189F15264B3F838058183EE5024646F6A80D2E9A2D741F49",
- "key_seed": "29AEA08FC72BEF729562E12EED70CA9AEDCE2699C3E9CA47DD79E6E50EE6073B",
- "legacy_ldt_key": "FBCB99AFEFD88DA6107AA0FB2F2133183E4FCF517202F7ADF821D467C5E4EFBB665C982B5359035A636531DD60DC97942609B2A5DC2A7DBAB9F13F39B4D3FA94",
- "legacy_metadata_iv": "FF3CF25B4A81CAE7164BA1C7",
- "legacy_metadata_key_hmac_key": "010412ADB83AC730FF6573B8B86BA26E2C8B80604DFDBA0BEB7186376AE7BC30"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4CD5",
- "expanded_salt": "14AF2A8BECD8CFF88E248CDCCC1E8571"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "68435AC58EE37125026C98A884AC8F12",
- "legacy_metadata_key": "41AFD74BFF8032815E7C131A7D27"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E08C65425E070FD3B55DF67E6E0FBCBD",
- "derived_salt_first_section_no_de": "84C9F0975B1E8F694357F0ECA7B3FBD2",
- "derived_salt_first_section_third_de": "A206F2BC36F7856C9F242473BE7470C2",
- "section_salt": "5B9BC6D8763C8D36107D9910687CE899"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "91BE7B9780AA342FB37A69C3",
- "extended_signed_metadata_key_hmac_key": "D0C63C89DE67AD6CD71AAB82144470D7488AA388AAD5C48C59F8C052998176E5",
- "extended_signed_section_aes_key": "11CB6D2291875E81812922A2887AE240",
- "extended_unsigned_metadata_key_hmac_key": "1F8B6FCA7B40F63CC43BF516304953AADA94E44639F39E83B2D7A87AC20ADCBA",
- "extended_unsigned_section_aes_key": "B29BF57DAD727104D0C7B73403DF6A6B",
- "extended_unsigned_section_mic_hmac_key": "91A654B30EA103FA98F8D718D5448C6134E88A38DC7F4405E9226FE09D103315",
- "key_seed": "1722C3F27160412A258C176A431E13F70A312DCB5253B2ED9AB04F61EE3213D0",
- "legacy_ldt_key": "04B02EFC1B4CF8DD221B223BF6D5AB0E42ED18FFCA3AE9279A7BB90A7D9A8230E382F5C613A276F54833B820FD0EDD6EB9CB1CA877337E19C72EC0E0B3E1216B",
- "legacy_metadata_iv": "E38E643078DE5A2196BDAE18",
- "legacy_metadata_key_hmac_key": "90236E2CAD57F57C46BDE7B7914C2F842FB4CBA2B044BFBC260E9F61B5A22587"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3CD8",
- "expanded_salt": "878303CB472DC4FD17E961DE6E02ABD5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BEBFC1CF69189E172C8BCBF65E0A48D1",
- "legacy_metadata_key": "2FEB822C00F6FF7D88055E97015E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B6103C0E0E9F468BC4922AF9EA668A8F",
- "derived_salt_first_section_no_de": "92AC80F491EA6FBD7626729574D568D2",
- "derived_salt_first_section_third_de": "063C47BDF096181BAC757DCB243C9B21",
- "section_salt": "685030558D5112E780B9598F728A2BA2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F719465C4A18380932991B02",
- "extended_signed_metadata_key_hmac_key": "1BC32F21E647AD0583F112CAFEC4CDE84A222AF49A1C38D27EC248B2CC2E4CD8",
- "extended_signed_section_aes_key": "7122D6FF90C644935A816B6A6B20FB7E",
- "extended_unsigned_metadata_key_hmac_key": "E1B9A593F89CD7CE87D61D7B21F528DA2E036B8AA111BD01CA0D48247E32939F",
- "extended_unsigned_section_aes_key": "07ABAC1A493F6AFFE360A56E158DFE8A",
- "extended_unsigned_section_mic_hmac_key": "84C72D454046D6A312F39C3B9C606A8094D7FE87569E38BA908E56AF681617B9",
- "key_seed": "042F7C38D2945EFF5588B5112F640A7523158C515302DA2344388D7E29AC5C1E",
- "legacy_ldt_key": "01B211A35C9D23EB035350E65A0D7D795B91B50D877C584FFC25EF1E15CA2FA64B3B78F639B07ED1D39DADCDFC43FC82DD84877CA35F2D7DD16F499D05F8FBC1",
- "legacy_metadata_iv": "1737BD97378A4EB4FC2534E7",
- "legacy_metadata_key_hmac_key": "49AEBB0027D81371377C527E2EDF3E7065F93F8D6AEE5807F001D61264AFF8BB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DA97",
- "expanded_salt": "921F6C15955EBD06E5D13DA0CBE87FC7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AB29B8066363B845DB4F7364D697DB01",
- "legacy_metadata_key": "AAA6DE61666679767DED97558E04"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5366E1D0AF8E282377B3267C8DD23E86",
- "derived_salt_first_section_no_de": "C6A80F4A87BC4F2908085B321A6B1D7E",
- "derived_salt_first_section_third_de": "077E41D4457A56313B4890A60EBEE532",
- "section_salt": "23C14063E7D82003882D61F5CC54DE0E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9E5A4DFD1C42D29BD0BB2236",
- "extended_signed_metadata_key_hmac_key": "CB83EA5E5DB221DBB5056B89037B29622B1AB002F23040725E32685FCE674E49",
- "extended_signed_section_aes_key": "D7F450C78D87AA4B050F018496EE1382",
- "extended_unsigned_metadata_key_hmac_key": "19666558066BB0FE459D8AC788F20F264CD3012F01F123EC8D24DDC618661F24",
- "extended_unsigned_section_aes_key": "9A8C8AD82F9C19D6D5FA166A69DE6C5B",
- "extended_unsigned_section_mic_hmac_key": "1E921D02C98156CDC6B2B792EDA81781DCF8EF4C3CE5D0918C096C29E6BCA52C",
- "key_seed": "695BC21D6959491CBCAA6E9ACD3C3FF62EFE9E0970939896FACC545E484FE7C7",
- "legacy_ldt_key": "B9E6C6A733EB70636F0CC39CBF2B4C5380C43BCB58B21567D6BCD2DA63EE287BE74111BDFDF861804CF72E92CA8E3F1A8336921A9C4281B13A47A6BCE70282AE",
- "legacy_metadata_iv": "A830C0E96CEACB5D19C961AD",
- "legacy_metadata_key_hmac_key": "ED75C2EE8E8CC321B5150D7952949C73C20A5DE3567A9275624DEED312C30974"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A4F0",
- "expanded_salt": "8B075EBCD74DD861AA755DEFAF86A07D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4E1BDFAE674EC6E5FD0B56CF4E2ABA01",
- "legacy_metadata_key": "90660D510E224D7227D7BA124C23"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D589597EFAF8A8F5C2F3E55EDD3C875A",
- "derived_salt_first_section_no_de": "3CCF37A9A721CDDF123EF67ED09FA81A",
- "derived_salt_first_section_third_de": "DCFF621631EBC55D32EFE26E533B61C2",
- "section_salt": "7A923EE87F771A9C30F6863B83DB87CC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E579541B41019D8BA1900CA1",
- "extended_signed_metadata_key_hmac_key": "F472115151CB65D78FBB19F25572D90A44D84EE2782EFD4C931FF0653114C091",
- "extended_signed_section_aes_key": "FDC64A9A958ADDDFE60E431602B7C206",
- "extended_unsigned_metadata_key_hmac_key": "824EBA562737C4C6456A279E785B4B71872FEB12F37023588BC8C6B7868219AA",
- "extended_unsigned_section_aes_key": "2A1F440C1CDEE655197F88C526925D6C",
- "extended_unsigned_section_mic_hmac_key": "8DC2FA04682C64EA1798D29A04989CEFF01BEBEE81A4D3275DE00ED6DE1A0908",
- "key_seed": "55AF6C225EB33220EACD3D7D3A92D6B32C3DF87B0B9BA26010C179F2C261AB3F",
- "legacy_ldt_key": "55FA73E719B67822359DBBBBA6097D6D218980CD8552F1D604353D5DF67735B406BCA4EFADAE7F2D8C8E2330445875B58B536746D9B1551FB97494BCD127EB52",
- "legacy_metadata_iv": "748BC6BF861B00F7FDE86CF0",
- "legacy_metadata_key_hmac_key": "E570AEF796CB46FFD7C2C7E2896FCF9B0EA9634D6B7712F8E980526E03E3EC1E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CFFA",
- "expanded_salt": "B317FDDFDD33D262B41995B69AC1DC5C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "920FF6D05E300C9BC0066465764A9A67",
- "legacy_metadata_key": "615F5900A5B420BD6092414203C4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "535A6D9102D5220410182B8A836C7686",
- "derived_salt_first_section_no_de": "B38EAE792B414DC2659F413421B0EAF3",
- "derived_salt_first_section_third_de": "1BD054235371B0978776762E0DC0E5EF",
- "section_salt": "B5972AA181788F295963F411E25945EF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "83BFA62748B75ED0777DF71A",
- "extended_signed_metadata_key_hmac_key": "4F6F856408C1DF25DA6095312CCEF86D109E51160509E09E81E400785FB8DF49",
- "extended_signed_section_aes_key": "5FE37FBE0AC5B843E92234147BC45640",
- "extended_unsigned_metadata_key_hmac_key": "85929D530550B446931EBBCA9F126EF88A4D70132087DBCBD05AF405AE792289",
- "extended_unsigned_section_aes_key": "CB214A1EB73413A1BF931228848444E4",
- "extended_unsigned_section_mic_hmac_key": "B5FA28AA4E56F81EAF9EBC3106351CFA33208B2045957A466C1744383B4D1C69",
- "key_seed": "94EE59D92F11A28C32A4B4B6A2C95FDD2FA88FB07FD2B236D2C2028A9899E443",
- "legacy_ldt_key": "FE57642C0D873EB750342430E8C523DCDEBBA4904D10A7AC341DD8BB4E28C482A0D1E189B45F9F86AD87ADE9A7E2DF9F6F731162353AD356040707D891E5F6EA",
- "legacy_metadata_iv": "ECAD5435BE46AB1C712DB240",
- "legacy_metadata_key_hmac_key": "F9B17FA8953EA7ED8C0551A0FF5A19D87F963E8DE0256A30C83AD3EED8591C7C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "62E4",
- "expanded_salt": "04417EE8C6D26A069E986068A83F4AAA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4F11894E5EA838E94DEB10CE1345A4B3",
- "legacy_metadata_key": "42351A81D7A5C155187193031BCC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B87DC4E1C4D5CE5DB048194AA4BADE27",
- "derived_salt_first_section_no_de": "48650F3EAB066D28D1AA5EAE072E7522",
- "derived_salt_first_section_third_de": "F7845339B7841DEF522BF036397592D0",
- "section_salt": "255349D7267CB8EAB0B2466ABF948D66"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D863FD62BBB176533C2C24F9",
- "extended_signed_metadata_key_hmac_key": "A306A73B47CF4985900BBAAAFF58BDBB8E1509E0766F25F8D166E7662AAC8AA3",
- "extended_signed_section_aes_key": "C50184B1FB0736EE83676B8DF3C49A27",
- "extended_unsigned_metadata_key_hmac_key": "02376EC3459580265B022B40950A3CE58D208AAAC5792F6E3706BD9626F091A0",
- "extended_unsigned_section_aes_key": "58B088E011B9EBA64EB15C61772BFA7F",
- "extended_unsigned_section_mic_hmac_key": "DD3FF6903FB441414F446024ED16CFD338C50BB87E97697CDD23D189A4B9E235",
- "key_seed": "D04090D6DA18AD8913DD231D514B8C0541AB118659C44487DE0D9F8C1B83515C",
- "legacy_ldt_key": "9B5C68B6E3D59541B913D672201BC9D7D6AE136213705D6E40A1E608CB88F42466946A2DA70224BF72C8CF05AE5571FB7F00A3D2EC7B20E2AD782CD9DB00C077",
- "legacy_metadata_iv": "D2AEC941067BAA6111FC2A27",
- "legacy_metadata_key_hmac_key": "D4E5B0A9510CEE322764D3D7996D85D283716CA83EC045D97D72F4C79A0ADB20"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6F6A",
- "expanded_salt": "713A238EF2498C7684F7EE645A1FE3D7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "56286E72D66E5862F3FA10826183D99A",
- "legacy_metadata_key": "8156A7DE173950E18C7D1087FB49"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E8823CBB70B6D73617B5B510FC0FA054",
- "derived_salt_first_section_no_de": "7DD932E332DA4D006545EE8554BFA491",
- "derived_salt_first_section_third_de": "0CFB45407B2FA78DA163467FC21DC9A1",
- "section_salt": "26305F24B477E1E0A428E80B0133606A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C8FDC9EE827E263230BA273A",
- "extended_signed_metadata_key_hmac_key": "4CA4FEF818466E03929E9980FD601495A200D0BF76AEABA6E9FC954A2904B342",
- "extended_signed_section_aes_key": "315E505BB0CD62359928EBD76BC175C8",
- "extended_unsigned_metadata_key_hmac_key": "7F3297BE260C14AAB6FE9C552364CCDF1C4CAAE4AF97B6B97EC11FCC1938248F",
- "extended_unsigned_section_aes_key": "246274F32DFE73A7218740311825B6B9",
- "extended_unsigned_section_mic_hmac_key": "256552DFAB47E0DE416505093123DAAA7E9A4A5784F648FD42B8AF7C844994CB",
- "key_seed": "D60A79893E028BB629FD4B02876EF4F6975FE02E454D6664D2C9A17792E65882",
- "legacy_ldt_key": "5304805E5052CA1120E3F25811C53437A22FCE31BE269E2A7E7674070A776BFB42B24B877E850BD9578621B7DA72E3877F5FD4412B9F31E846C87A250C7D020F",
- "legacy_metadata_iv": "E9109CE933474C0ADEB607D6",
- "legacy_metadata_key_hmac_key": "E540ABBE777852D1D47E52F9C512CDDBDCAD7CE1EBAA534356DA4BA947083714"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1AD6",
- "expanded_salt": "5A8DC9272C9DF536FD42992269390E3F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "855D5E929F6D9D443119318961360689",
- "legacy_metadata_key": "F5C83BB392F47BB2CD8CA71AAF9D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "861CFF6CF1C079496EF3E57842B887F4",
- "derived_salt_first_section_no_de": "6973D4703473ACA20A675352C8E473E1",
- "derived_salt_first_section_third_de": "965069381BD615455AC76BE2555FCD6D",
- "section_salt": "997D06C85BE6697B640B1F7691E36697"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FB7132F56CF46B365C97B9FA",
- "extended_signed_metadata_key_hmac_key": "C8A836636571567D1DCAFB3504CA08B6BD6C4B297C2E73DE875DBB23E7DDBB80",
- "extended_signed_section_aes_key": "B83A912A8D0F067D32907A31BCAFD033",
- "extended_unsigned_metadata_key_hmac_key": "0AF36005391DEE37A07403E3D256F20AA248CE06A7DF30EE41E0F8E1DB7C1C2C",
- "extended_unsigned_section_aes_key": "85E4196FDD9215F5EE4D965E05EF49E3",
- "extended_unsigned_section_mic_hmac_key": "1FF0E36783B4A6D8216A9414BF167B3BC96A7A035C2036ABCE2318CBE57BB067",
- "key_seed": "A75403BE0477BD7DFC5F448BE4B976E53065E42329EC46F27E40C24AAE331F98",
- "legacy_ldt_key": "C616BEB6041B3B6A3CED1AB9629788C913866D85E4687703473572B09A4B4CAFC38EC81511AB681094C368F8D650544B85F6986D8430286C6A4861C057642257",
- "legacy_metadata_iv": "AD1C5353CEDE06FD9B93D288",
- "legacy_metadata_key_hmac_key": "CA7F815F7F80EB485CC14F3386358388C092296EF0DC53AD3B17E669EB5D2768"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DA2A",
- "expanded_salt": "D926C6B49C390B1D0DE57E0F4D93F419"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4AAAB26E75AF04EC0E964422BC157416",
- "legacy_metadata_key": "EC0F35EEF802DF59027F61434B4C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "98B2E638ABF831E736E0121CDBCA06C9",
- "derived_salt_first_section_no_de": "91A7E07877895AAF492F55D0675EE970",
- "derived_salt_first_section_third_de": "336038B14285E67DDA4AF38696744FA0",
- "section_salt": "FB41EBF88D1E590D4573051C6202B352"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "49025A0D3AFE535A63C701BE",
- "extended_signed_metadata_key_hmac_key": "D37C33CCFC83EC14B35F58B99ABCDF0C0578ED7D1D03F5191F1935297D3CA020",
- "extended_signed_section_aes_key": "755B6EF28306738E2932018DC2FB72A1",
- "extended_unsigned_metadata_key_hmac_key": "39C4D6C6873EEDE365E8CBDB05DFE1BD4D042407B25546B3D28381FA8AA64679",
- "extended_unsigned_section_aes_key": "F69B41A5330AF26138DAD6F4F0BD3EDB",
- "extended_unsigned_section_mic_hmac_key": "3476341A4B47742205A241299FB1ABCD0F5268F13CD0913E5ADAA9233335C5F6",
- "key_seed": "DA85E8E23C912D3FF17E6386AD1BB200F0739F137E44F6A95B3CA1ECE0B634AB",
- "legacy_ldt_key": "5F28E082AFB7346E9968F319854157DE94565845D0F2E6E3A654C33ACEBE8036F144BDE548030F53B9210AA74422780436438E3EB5B95A2E943D509C9DF6F59B",
- "legacy_metadata_iv": "14138A31624E83B6C595C6C7",
- "legacy_metadata_key_hmac_key": "B25BD435A28520D704C6698DEA8176F9C0141ABB329A80C82E01689C33AA5EB4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D3D5",
- "expanded_salt": "2AA17F5928645FAC5BFD526264EFF80A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "32F34D22755FEDACEBB85A038C1B9D68",
- "legacy_metadata_key": "E8F265D71288B71527DC2046C3E1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B4E30C557FC581C2F0E0D46A06F55F6F",
- "derived_salt_first_section_no_de": "1A8881FDA7E6A16EB1D9ACDEC3377F31",
- "derived_salt_first_section_third_de": "A81690926BF08C9AF69F411C443540B6",
- "section_salt": "890D04519B2538870AF07CD3DB2F1632"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6929BF2CE02F1599E07FE000",
- "extended_signed_metadata_key_hmac_key": "C07437B73ACE89E8D9555F5A9730611A74788A2EF2B1FEDDA768B437AE965957",
- "extended_signed_section_aes_key": "C86F3C34D3EF75E20321B2A5BA6D8D2F",
- "extended_unsigned_metadata_key_hmac_key": "7713E2E281FAD53EFF6C5F03396470550A0DE43F985827A49E1352BDC4DE091E",
- "extended_unsigned_section_aes_key": "C1FDC4B51604748519E1CA3216CBCB67",
- "extended_unsigned_section_mic_hmac_key": "777A9AF087981C1E83602506A663435C6ADEE5C02F27B7B60F6006703BDAD3B4",
- "key_seed": "1F536F5BDB3A86B7C77B05EC6DDC49BD2F12F3BD3FBF3AF746B0749D021CC2BE",
- "legacy_ldt_key": "039C56E6AF6700254DE26298BB5096DA4E921F697E972342B0C341879C0031477159C9161B2B34EEBE9D4122CF9E20C42C4A12C86D980014C195FDF773866526",
- "legacy_metadata_iv": "C6F4BE741534519A733C027B",
- "legacy_metadata_key_hmac_key": "204371EBB36BA3FE3E6A34CED66B7F0C745066319D12D917008554608D437015"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6696",
- "expanded_salt": "29F2FBA97A8A0F519A9360098991096B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4D6F7513AE6D39390C42B2189189400F",
- "legacy_metadata_key": "C06C9B9BD44F33B406F9B33CCAE0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2FC46ADD647AF2249628A6CA2703CE5F",
- "derived_salt_first_section_no_de": "A62E23A5B5BC04A5A9CC40C23F38A9E7",
- "derived_salt_first_section_third_de": "4FD1EF87E5308A505D0F7E54A35B456C",
- "section_salt": "42A47739A965716FEF99992FC040963E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D6E648DEFD078B629C4BF568",
- "extended_signed_metadata_key_hmac_key": "7037AA275D62F88BC3CB6EAD109CA5AC4EB16BBA9543906034A86A91D57178A4",
- "extended_signed_section_aes_key": "E336A4936F6529A6A8AC780823A45FB1",
- "extended_unsigned_metadata_key_hmac_key": "D57D3DF7F49A30D8F8BE8F3BFD359E32966AC5BD2CEDF182F54C69D35DACF5DE",
- "extended_unsigned_section_aes_key": "7BC83AA5AAA5F4149CC88F3AE1357866",
- "extended_unsigned_section_mic_hmac_key": "E32613E9D2E806AC07BA06CE4CC518139E09F701474CAC3411208BB40B8B7E0E",
- "key_seed": "FF7FF1AB6EF73BF686F649888BD93731A132D3A4FA2D5E77288D001FC63DCF40",
- "legacy_ldt_key": "B8D903800BD961E6B216021460555F95D682C78C3C64262A30172BCB3FA23545F30819C316763FD3F1DD54882B9D852F5C546D5A5E7B01A7126B525175112F29",
- "legacy_metadata_iv": "13717462B06F9C58CD1089B2",
- "legacy_metadata_key_hmac_key": "CD7C2FA0C15D73DDC0E73F35456031BEC72D8D0D537486E66C8FAA42DFFCFF9A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2F03",
- "expanded_salt": "D200FE311D58661F05B3AA1D1A00C084"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "809936DA3BA4352749EAC27D40727D1D",
- "legacy_metadata_key": "F2A2B41B1A7ED27F04C810139BC4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "99F598EDC564FABECFF4856157CBBA04",
- "derived_salt_first_section_no_de": "1220A474C489C48685EEAA5434909DBB",
- "derived_salt_first_section_third_de": "A849786CD0782676AB85C51BA5A33E1C",
- "section_salt": "90A23F7CB43A21B9F722AA17FC6CEF31"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C90D6FD0FEAE874440881657",
- "extended_signed_metadata_key_hmac_key": "CA84A87BB0D8A6B81A6B0EC42165CE5BB20F94537BB11C180C5C76B9661D3792",
- "extended_signed_section_aes_key": "3C32D8B7289A4272DEDA22A6A30C62DA",
- "extended_unsigned_metadata_key_hmac_key": "33FBFD5C337B7EFCAD080AC5D30F24E84FF078F8EB4321FBD4CD5BDC5858C95F",
- "extended_unsigned_section_aes_key": "42625A6D9B957D949024D5CC3BEAA2B1",
- "extended_unsigned_section_mic_hmac_key": "A4A31F8A4ACDEF0D75CB958D21906A88E38391E7DBABB90066CD11A0E6D2AE6E",
- "key_seed": "CEFFA1E379995C0B858A700A664BFAF5315DD4F47406F9B12D810D6D46430457",
- "legacy_ldt_key": "B32FBBCE4E3136CBE9E8CE58269039E990230D64F03C30C088BA8C799B90B1116ED3AA04B73CF91B0E04637D9B0F77AAD299BE2587966E1C1488178805DA77C6",
- "legacy_metadata_iv": "A16A01E9170D72DBD7BAD487",
- "legacy_metadata_key_hmac_key": "C6B4034F53C012B9926B1C58440FF04D2561BF528CA77C9DE10FC3F1AC570020"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4F5A",
- "expanded_salt": "7293B8932999A86CDA148F60551E9ED0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "00BFD527CC447DC45DED9FA89612EB7A",
- "legacy_metadata_key": "AC89912C634E47F20355A365917D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "54090185E6303D74C444584993559C99",
- "derived_salt_first_section_no_de": "447FAC43A19B42C475E72BF3801DEB9B",
- "derived_salt_first_section_third_de": "2242FC9158636233E5F7044AA4484AD4",
- "section_salt": "3F2E15FE79A870ED7041EEA609BEE56D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "442C12D2471D2758FE4B74E8",
- "extended_signed_metadata_key_hmac_key": "758FCAABAFA1FB2C10744558877B9F9FF413A5D80272545FE50AEE102FF9941B",
- "extended_signed_section_aes_key": "A2AE7FCC449BB660E1AE8AD45E40C6D3",
- "extended_unsigned_metadata_key_hmac_key": "CD3A9E44C5E2EC7F266051DEDE06690A95C23D46079A32548EEF180DB6963B6E",
- "extended_unsigned_section_aes_key": "A43C112581BEEAFC0B4232FC9E86BDE3",
- "extended_unsigned_section_mic_hmac_key": "D8B639B814E0555A3AD2B6E8C637C0BA00800A2F4FCDB39E8D4A8189ECE993A6",
- "key_seed": "0F82EA499EBB0BD2E13822189E81E5138D5058AE868DBFE29F1A4DE47A33F644",
- "legacy_ldt_key": "AED60834004C79E52C15F771EAC586A01E02A907737C7E443905ED6D9419826D2CE6FC0F828286722AE29D57E3F69665613309EA206037065FAAE718CDFBFB36",
- "legacy_metadata_iv": "10BDB10009806D9376FC3BF7",
- "legacy_metadata_key_hmac_key": "B2281E68A0F6E091781C309DCA7B571F8C4557B00243F2F9381B6741AC0A6835"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "22A0",
- "expanded_salt": "A1EF86A5CBDF9113D7E67CBC4145D73A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3872BC86F9B0739ED968084844DDCEC1",
- "legacy_metadata_key": "28E3A96580CE350BF0D348643CF6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F422FCD65FCD1C6A0569FEFEE4C088C8",
- "derived_salt_first_section_no_de": "5E1D377B28E46BBF81647D642D65E3C2",
- "derived_salt_first_section_third_de": "2430DE27C3B36AEF4AC7020B2B80F697",
- "section_salt": "57BB23C32AB9CDE6F94C8610BCA1EF95"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B4B331180323A36A33A9EB75",
- "extended_signed_metadata_key_hmac_key": "6C44561B48663E4A69B36F4D764565F25B857E59AA9005F0C626801F90C7BFE3",
- "extended_signed_section_aes_key": "AE44F140CEF31C62B3781C08DBF159C9",
- "extended_unsigned_metadata_key_hmac_key": "5366784F9D9BFC2FE806586AAF7EF8E65175DB717DB7C9FFAD6DF5785026466C",
- "extended_unsigned_section_aes_key": "226D319BB868D510725AC7D2B4AFAE90",
- "extended_unsigned_section_mic_hmac_key": "9E9BF9C6343B5FA02E6F6303067D759A99F5A555D356A6E32A185BC01291CBF8",
- "key_seed": "712E4302124FB5BCF85442A822B61DDA36BCCC6EB9C1E4238FD3806209214302",
- "legacy_ldt_key": "C9122D76572B49F6DC2E2610240279EC9A69EB11D209343620B9240536E822B7F71BBF7E1D4F4662577909973C0793024B69EBD8C890DB1545166249E8BC0D64",
- "legacy_metadata_iv": "42209D774A00AE0CEDFDF80D",
- "legacy_metadata_key_hmac_key": "B284B5C3B3B9C6D08C242115C08842ABA6914EF8C367D94AEB8E9C062B8D3534"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4AE1",
- "expanded_salt": "9AB0A0F735586F3BEFB3A5D8AF20CE90"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B219303079D628E4001FB6CD5B8F041F",
- "legacy_metadata_key": "08AF728449CA70AD86ECC3888E29"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "29E4A3FADB6F5EC0EEA64D61C870792F",
- "derived_salt_first_section_no_de": "353B0AB7A1BC75F2B63398A941F2481A",
- "derived_salt_first_section_third_de": "FA6C18D89FC1013C5672E42C0C79B36B",
- "section_salt": "4F4C87836626E6C0ECFFE07474FE232F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AF8B108536434E59889DC4B7",
- "extended_signed_metadata_key_hmac_key": "4CEEF9C443EAAC46F6D3CAD1388DA66D6EA8C619034F14B03A69A39E21C89BDD",
- "extended_signed_section_aes_key": "29608CD29A357DFB2E537C40819E6B5C",
- "extended_unsigned_metadata_key_hmac_key": "EA4D3A629177855C28AFB23A201262FD5A55E35105663083D8AD30B090207A78",
- "extended_unsigned_section_aes_key": "967F5F9883AFD925C3ED43C4B6666180",
- "extended_unsigned_section_mic_hmac_key": "E5266A8CF20087E76D13A0C4D499D455A35C2216A9C61A0C8D672565FB4C999A",
- "key_seed": "32C7E59A7CC5729025629CE1A3EE8BEA6E1F7DF67A2EA7E4DE46B63E5E5B16BD",
- "legacy_ldt_key": "199C93EA0EDC46AD6BD0F4B669546CDF03C53564A86D05090F3972A77B65521D6F0D36B020F52C918DDD4BE563A05C31D0F607646A51E2FD8A924311AF8CB8A4",
- "legacy_metadata_iv": "0E8D37D404CEAE1A7F541C60",
- "legacy_metadata_key_hmac_key": "B778715B4C417141A7C52ED5E22AFBB41F6E7F3D1A55F9D1EFC3F76037DAABAD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D109",
- "expanded_salt": "3B8734A30F479717F235A01267434721"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4576BEB7B886404F5E4FD4938F59C976",
- "legacy_metadata_key": "248D2A691BCDF3419B477C3EACE1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8A599724336EE16B53EE0C52E022C363",
- "derived_salt_first_section_no_de": "F86F27FC9CA5AEB4FF2FDA7ABA91E5D7",
- "derived_salt_first_section_third_de": "9CB6DFD55021F24C09A52955B7B56785",
- "section_salt": "E0CA97567F02993271F2B0FA78AE7060"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1B3BDC39D4AC4FC17E9AE19C",
- "extended_signed_metadata_key_hmac_key": "3D50B505C6C9B9216D9D659C0EEB25D20327493FB114DAA85ABB4079FDF7A20A",
- "extended_signed_section_aes_key": "257BF327DD451C4E998CD40D92AE05F8",
- "extended_unsigned_metadata_key_hmac_key": "76DF58E6D5790DADB8CF5025064786756CA31A17C997E00DDCE622646F84FDBA",
- "extended_unsigned_section_aes_key": "53EDAF8BADFDCDBC876B1658E8B0E64E",
- "extended_unsigned_section_mic_hmac_key": "E3145E6BA754E8A2DABDC6A6089F58E9D82DEB6784D84B96F4200C9179119DE8",
- "key_seed": "F2FE9AABFA2FCE328D91491DE1A1313930993B84CC45DC546CAD7076B89550A4",
- "legacy_ldt_key": "85EB4456C5875BFCD965B71CA7BB36099A849E1A2985523E430C562E1BF3F5A518649C55165600FA6C43A94E331C2D3483484B5638E999E218ECB522EC54D2BD",
- "legacy_metadata_iv": "6BB9D7C336F4D9E912EE0166",
- "legacy_metadata_key_hmac_key": "A399A2F9D1F315D25EB60D7365177D1AF358C7F8503CBAC8EE8BF1006C6B0A94"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "94BD",
- "expanded_salt": "A1DA88816824C6E86CA39EEB1185ADDE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EF3B83700AABAC503500EBB635EDC1E9",
- "legacy_metadata_key": "7F5431BDA97FB6C5F3516A93A6D6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C9B4FACAE44A96B5CD156045DD60B6AE",
- "derived_salt_first_section_no_de": "ED775EEBA4628F3526600159868B7DE1",
- "derived_salt_first_section_third_de": "1FA5C74C6AD75A2167219DBA84994FBE",
- "section_salt": "35C4F8CF1839E99A1234B842DBBBFB37"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "17CAA5EAC77D26EF439AFEDE",
- "extended_signed_metadata_key_hmac_key": "FD8B86B1B5F7AF945C14CEF8E5536FFCC866BA3F64AA498BC5C12C2FB7B65A83",
- "extended_signed_section_aes_key": "7799280866B2CF73EF9D8EE610867156",
- "extended_unsigned_metadata_key_hmac_key": "DC5FA4B93CF46BDCF04F53628FED6CD7E76AF742A13DBC63AE2A254AE7564B9E",
- "extended_unsigned_section_aes_key": "12AA2EADAE402A9C89C04B79D59707BA",
- "extended_unsigned_section_mic_hmac_key": "57C7F8C3DC355CACF4F4195EDB5C526761513868F1FD02B3EA15EA369509E20D",
- "key_seed": "7FD02F794E575CE796B8F7F72B6BAFC13519A30BAF71489490C07815F18DC86C",
- "legacy_ldt_key": "3B66AC84714DB3AF8E150AB2FA656826B851A7B22BAE693E98EDD018B3936C4F6D0C88D913652A0F445F147871A6BEB91B4A1BA338E34748408E5538A4A73A37",
- "legacy_metadata_iv": "DD217EB25E23ADB36B408351",
- "legacy_metadata_key_hmac_key": "2B91CCE2ACFB7B844D19BF83E48EE32CEF51D07503E00AC56998BCFC3FDF6813"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DB35",
- "expanded_salt": "26D1C80450D03329789F3F17C36EB3B9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "06F072326066C49B09D3FBEEF6D1F980",
- "legacy_metadata_key": "C5CEEEF334C9F10E0EE87EED8AA5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AA23CE60A233AB8EDABBD7E8FEFADAC1",
- "derived_salt_first_section_no_de": "14F64FE56C0CD9C1F1F7AB7F3A71DCAF",
- "derived_salt_first_section_third_de": "778A384794B3A18E02BC0C1ECC30DCDC",
- "section_salt": "AED38A83914F9299004F2CC02B4624E4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F0F35C71A6A863DD5879FDAA",
- "extended_signed_metadata_key_hmac_key": "A556CA5009D5A14E20DFAB3949CF8228924988CB761F87046FC0B1B059738170",
- "extended_signed_section_aes_key": "4B2946647379E1DCC95958132854FEB2",
- "extended_unsigned_metadata_key_hmac_key": "8BF2A438A5446FDEF2B86ED545DBD2F3F8A0C7133139BB3CE4563E4732288597",
- "extended_unsigned_section_aes_key": "A001A53B1D1EAD4449561FA26814FA71",
- "extended_unsigned_section_mic_hmac_key": "5F4CADE7D44153F2D20C64327972E32ECFC76D09F757CAC68BCC18C7D3740888",
- "key_seed": "3AA4F2D308C797BA83AD005147FF531AC0C2265424E3123E8328113557990658",
- "legacy_ldt_key": "36E40DD0396D7F61ED0C89B6A5FCA92480D53242442CD0807E1237744BAA74935D1DF9A5B68C4A4E5722C5DF9DFD207F61A0AF9F6F239A280015685528001461",
- "legacy_metadata_iv": "E8E4331A915F58D076F2D29B",
- "legacy_metadata_key_hmac_key": "ED927FCAF12FC3D78561FE14AEF6C262C30121B1E2E60D61DDBF8CCC92C259A1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6B12",
- "expanded_salt": "829D57C9267FBEA6EE6A6EA5C7C20468"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EA372CE4903296A288AF48D935B11E65",
- "legacy_metadata_key": "E579734559F013E942862BF81B20"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2384BF8163257967E3E49771E7800037",
- "derived_salt_first_section_no_de": "758DC70962BEEDE316B348383D9F546C",
- "derived_salt_first_section_third_de": "89CA23B7E6DE1E7390B6D7E58BF5E9DC",
- "section_salt": "51A9CAC77E4D47610AFF954CB20353F0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "37C28E105C6AC824087F65DD",
- "extended_signed_metadata_key_hmac_key": "FE438E6AFD8523A142457B2EE3AD33684C926349741AB54ADC2941C2B9F4CC76",
- "extended_signed_section_aes_key": "5823639BF036C3A75AE8E463E24A0A6B",
- "extended_unsigned_metadata_key_hmac_key": "A22FA4D8133E37DB092C3891417588B1BC72A247646678ED669EC94E4E2E0227",
- "extended_unsigned_section_aes_key": "14F7D3317374EEC406820766EF6AB936",
- "extended_unsigned_section_mic_hmac_key": "97CA34B51C7E7580BF0109FB48BF0CCD619FAA4BCB120E9D550A70E739B8661E",
- "key_seed": "8BA8A2FB234F5168B765074D75F09903CD44188871646522E383988302CCC179",
- "legacy_ldt_key": "A49735813C3291A16A1D032824FC3BB52B32312F5A87D60F55E5BC17D6E178D012C79BFC73D20BD772F364123E4E5DE00A8225AE0681EC62A27C928FFA067267",
- "legacy_metadata_iv": "8101F0A4145E3676F5EA8C78",
- "legacy_metadata_key_hmac_key": "E05722FB26917BBB6B9EF5708F579DFF85E8BC2436F9642370BEF7C14A10A2D3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4533",
- "expanded_salt": "868AAD700E23CBF2BD0112D809FE0365"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FB57D667657EB9E6CE99562F86D3CCDE",
- "legacy_metadata_key": "945D49A0AEF059C8DBBF5C720DCB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8A07BEE25148D82DB43A453132F50F60",
- "derived_salt_first_section_no_de": "2CBE425D9E1E557304D008079F1411CC",
- "derived_salt_first_section_third_de": "2B646062728ECE3DB16DD83C95E21721",
- "section_salt": "94433FDBF7026CA5542229756B782EA8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8D4835982D931A9C386400AA",
- "extended_signed_metadata_key_hmac_key": "830B5F3FB2D91151015A1B02B889219CA07A64455FB56C5B960BFFE65802A696",
- "extended_signed_section_aes_key": "852FA635BFFB4D3C981739687756F5AD",
- "extended_unsigned_metadata_key_hmac_key": "185BA9CD65826FE31F8F9E28208ACA3D2C65A588E65382F60C3C3A16F913DB99",
- "extended_unsigned_section_aes_key": "C3FFD4EA4EDE69B57D8DA771A4A6C67D",
- "extended_unsigned_section_mic_hmac_key": "F882F3CC447165A64E51180AE5319FEB03CF84855A95D6FDFCE2B85F281E69A1",
- "key_seed": "8A24FA94BEA58F7CF7D74A0EF7F9C248F43E2AE573C9F6F2BCAB12371CA823C9",
- "legacy_ldt_key": "50892893911DDC9E499F76DDECD6DE8B0F964A732132BCC61F99B5C3D91507A9D5A025DDE8E40222D4AFA38B0AFD63F12BB57D8B2A370E012BC327640B405179",
- "legacy_metadata_iv": "E392D1245A13F98469AFCAA8",
- "legacy_metadata_key_hmac_key": "A16E3CC6FF684D37D1C7F5ECEE29776099DEE6F6B9C3382543DB72D2B464F7BF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "94F3",
- "expanded_salt": "60DC42CE7D0675190153C3043D47B26B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DF4EF685243D149C2AD90F7CAC5AB3B1",
- "legacy_metadata_key": "B4E9B3FF2B9483B7E7915406DBE1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7205C5BFF996997FF7865F2C219705AA",
- "derived_salt_first_section_no_de": "C905CA3330A70D82E042E4B308E86395",
- "derived_salt_first_section_third_de": "1D2CF59747A5786F17B4AB10FD4C488E",
- "section_salt": "560A00B14791DE124176A4C232EA08A1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A97D332FDAFCBD04CFC9B20E",
- "extended_signed_metadata_key_hmac_key": "2F46413CCA34EE675088C67A444035F546B0DE045892DD045F04FFA1072A8BD0",
- "extended_signed_section_aes_key": "B47C0D6EE16AAF3F05BBA3113470B7C9",
- "extended_unsigned_metadata_key_hmac_key": "7B4D38FEE46012860921EB1C34E113762A1327CEF5C927FEFB1DDB1F6E5A9B6E",
- "extended_unsigned_section_aes_key": "7167339B2A893A67BBF7192EA4A63960",
- "extended_unsigned_section_mic_hmac_key": "A207D2502AAD252C4EE69A45FFE1C0D78E60BCACF33E318641361173B58C3B2A",
- "key_seed": "1A6638A7AB467AD30ABD89D64D2303CE14CCE2012DF761F833EC4AFEA409FBEA",
- "legacy_ldt_key": "E829CA37BEEAC0666101719D8A9A849C6715C921D525147A6E237FA106C821D922C08845D103E9526858D08C81B83B1D0A2D17DCA6146EC41A73FC98FC546574",
- "legacy_metadata_iv": "5AF2B9A9529558CF44033095",
- "legacy_metadata_key_hmac_key": "F06BC0F74094ABD32FEE7AB4E921C6992982B9EB98244D395AAC24B27783926C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "955B",
- "expanded_salt": "90F7FC56D1C57C27D67BFFDD317B86C1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A8094E976FD8898250F1FD6649075BB2",
- "legacy_metadata_key": "45C1E08436085D8D99C4CCD833BD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ABDF8DACF01EB135BDFFF8B3C809C596",
- "derived_salt_first_section_no_de": "DB9E1B174C05A743E185E8E75A771B56",
- "derived_salt_first_section_third_de": "5EF98DD55E91F53DA32A875D4E321CCC",
- "section_salt": "029A82B083C498ACC7EAB56E5275071B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "83CD9A7B7C41E0ED759FAE79",
- "extended_signed_metadata_key_hmac_key": "8A7D9E84EBF57E2D6FA9D5779229C33876EAB6117FDF92B0C128457F2345257E",
- "extended_signed_section_aes_key": "C8C14E33DE47D3E5080E2F5995A48A44",
- "extended_unsigned_metadata_key_hmac_key": "2808958B041C3C7F3A97AA5E5A6AF2336DB4AF9745B4E3FC92475AE300986832",
- "extended_unsigned_section_aes_key": "622BE7009B3A6C8FA2C29E987B19B0DC",
- "extended_unsigned_section_mic_hmac_key": "4DE972D2495844B49A5FF54194BD97000385E2A5260D63710595B9F5A87F3D74",
- "key_seed": "A95EEFF87DF7ACF0AEEEDE11C51191AD4E14339DB7F74711D903C01E91FD37DF",
- "legacy_ldt_key": "D44984129EDD59A92817299FEA578F27EAA0183E172C4678D982C2E2BAA7EF658A66A85765DF6D325A6BAEA91240BA27D635784B8A884350C6A0A0858F361DA8",
- "legacy_metadata_iv": "90B02B3312425D506840CD35",
- "legacy_metadata_key_hmac_key": "713C51AB7663041AA133A910FBE788742507E6BF6C93F51657DFC838123A1D62"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "56C2",
- "expanded_salt": "40F3E6EF2CDD33197381CD97F09131F4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "246871E915961772364B609F79F1C092",
- "legacy_metadata_key": "1907C8E97CC8669B4694A2C9C240"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5E7B983DA5382C627804B8CDEEA784E6",
- "derived_salt_first_section_no_de": "3B9BA0540749B6ACFADCF5859ECC6F43",
- "derived_salt_first_section_third_de": "960687A4012B41DA28979E47046451A7",
- "section_salt": "452E86278BD31537AB7ACD49EC260561"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BD5CE759BE0DA28D37CC702F",
- "extended_signed_metadata_key_hmac_key": "1407E7B30D548D66523A3EEDFB8669A0E92920E10A3064F7D1F5BD981A896F1B",
- "extended_signed_section_aes_key": "6E741464B3502C2C24E1C41BD1F4C09D",
- "extended_unsigned_metadata_key_hmac_key": "DB886DF34062E8E813D8099A8036F4EBC6D9962AD442C69C7A3A77D0FDEF4CEE",
- "extended_unsigned_section_aes_key": "4D4CC3AF6BD9E7527EF0B3B81A8D9F31",
- "extended_unsigned_section_mic_hmac_key": "86CB91425ACFC7FAE53332D108D79E669E05AB2C1D6C19831BAF23B65BCEEB5D",
- "key_seed": "05882D89375F7122916484653014106DAC0C3F175446C90A13645AE3287427C8",
- "legacy_ldt_key": "1037867CB48BEF7583E64F504B08DF350506293DF5B574C4E88D737F41774E6B15BE48F4AC80DE3E321E8A676DC423874F996DB17847410A2F2656A4252B8EC2",
- "legacy_metadata_iv": "30EFA8CEC26C7A52D12D0F31",
- "legacy_metadata_key_hmac_key": "2D3A78811C2897953176AFFCAAA533B315397FFCBE03485BA52A34CCBADC003B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "34BA",
- "expanded_salt": "BC14B57B3121E7347C2402D9D06D82E0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FF29CDFCEFAA45851D8899A2C259ECAC",
- "legacy_metadata_key": "2E46F037B961C6A345A12759B1DC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EF2EF807152FC5ECA7837CD2580DD64E",
- "derived_salt_first_section_no_de": "4CC0F3F81F4E42C5C8DEA1B8624FF18B",
- "derived_salt_first_section_third_de": "6A54874EFA7ECF68181C57C64DF95B00",
- "section_salt": "C783DFF89F89B486D46A805EE3C33758"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1606BAA5E73211D70E1F1B54",
- "extended_signed_metadata_key_hmac_key": "D126DD78C17615462C5CD641CC697160D2112B9916AB4F19FF83ED8D8F09F2B4",
- "extended_signed_section_aes_key": "7BE754986490C28B4C639F535F7C0C3C",
- "extended_unsigned_metadata_key_hmac_key": "A81453BF2491CA09745F9080880A77265BDFE62A6808A4322CF321CA923EE621",
- "extended_unsigned_section_aes_key": "E204184010ADAD63336E216B4F0250F5",
- "extended_unsigned_section_mic_hmac_key": "9352D6D49477DB2BCEAAE1BB1F6C4767DA2BCEBAC04B4897EF0B7F4E48B5B4A7",
- "key_seed": "0A6C5E5E75813ACF5E83CABA1AED05D35063DCC81A28F9D94ADE9542D281E43B",
- "legacy_ldt_key": "941AE774415CA700A7BD1979B732C274793AA5D9FAFE08D704A50C6F5F9E3DA53EDE930EA9FE21F1957CBF226F0D9F11F7899FAE47101DD33EBF62DE90FAF8A9",
- "legacy_metadata_iv": "6975CEA0F0E6F82885349099",
- "legacy_metadata_key_hmac_key": "5AA16EC04BDB031DA5957748A136F707C4A4C81E189829713B4FD548A335453E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BBE6",
- "expanded_salt": "46ECC68C1F41C054F8ED36A2E81194A5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A38AEDFAFA95DD8EA450E0CB15E8C8E8",
- "legacy_metadata_key": "9DE43CBC608C160B907E6560F2EE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "F92E4E376E0A1C3CFABD15896D01148A",
- "derived_salt_first_section_no_de": "5B32D9E0344E0C13231339548B57BEC4",
- "derived_salt_first_section_third_de": "A9C38BC95B917813AC05684807B268AA",
- "section_salt": "0A52804CE390B1C0C1F5041A28A79A05"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E4978C6D4B5FED3B4C24EA0E",
- "extended_signed_metadata_key_hmac_key": "61CD522F70904275809622D57F62D66AE04AE30273398EBE35E7ED1740107E35",
- "extended_signed_section_aes_key": "8E926AC138CD415DD03C8241CF7A8523",
- "extended_unsigned_metadata_key_hmac_key": "FD08BFEC2DB31543026FE4B84E2378F529148C142175EBF76B4C5E2B916CA5CE",
- "extended_unsigned_section_aes_key": "F28D0B8B8F9891F7616AEF4F15814D28",
- "extended_unsigned_section_mic_hmac_key": "38802A95EB80DBF4259564B68077DE7DD2BAC212822222A440186F0F662441E3",
- "key_seed": "D692C19FD6CF38F2FCA63D9AFE1BC00D2C4A9807E3BD538DD7BFC4F4BC99F94E",
- "legacy_ldt_key": "838315450913B2E0D379738B37CAFA88111EE0B7CD081B4E5467443DA7397C1CE4F848004C2A2536D996B41D6399A7AAC86B14AA80FDB3B5D21A20F856C9B0C6",
- "legacy_metadata_iv": "F4D465283E54EC616D2547AD",
- "legacy_metadata_key_hmac_key": "213A285A56DE8DD7474CD5CDEA6121BDCF0FAC5B0814689E79CE797D9CE3E9AA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "88C4",
- "expanded_salt": "6C20F2C05795DD573CDBAC72CD27FD68"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "86AFD9CA0D56FF79A001542E06D68A05",
- "legacy_metadata_key": "51488CC58298DD21076A6541C779"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A0490D4BAB3E476D42E8BB24CCFC8949",
- "derived_salt_first_section_no_de": "01FCCEB4D52442257A4B3055262BCA2A",
- "derived_salt_first_section_third_de": "DDCD3609E1BD5FB0F23839A8CDDF87EF",
- "section_salt": "C5AEB75514D3580E06EB5AD9C95A6902"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "304ABC9AF2E7370DD93D9E54",
- "extended_signed_metadata_key_hmac_key": "22CBB01A058571EFA9F18C82B69C2350364A80436F426D349CDE7EFB198279E2",
- "extended_signed_section_aes_key": "1755484CCA789A4F184FBBE27B85FB5C",
- "extended_unsigned_metadata_key_hmac_key": "5CCD10EF3A97F53D7F43A78F25A644DD2B4B4CE83BA45205C1BE5BAB60E67828",
- "extended_unsigned_section_aes_key": "B67C8923410F093D6F3A8F525FC240D3",
- "extended_unsigned_section_mic_hmac_key": "E584DEA5DDFF6AA25B39682330A0CAE7573DEEF5011813802001D0E1DA5526D4",
- "key_seed": "FE8EF7D1844F066BFD85BEA5EC6EC09A7C8392F8146E5C76CEEE6B28D98B68B2",
- "legacy_ldt_key": "66FBB407FE69DE48030F54904D804C874ED20DC6B50E662A6164B97D8227149AEC00C9A5C36DB115021DBE147FE0F409561D19BF572562760FBFBE1FC9410E24",
- "legacy_metadata_iv": "E315F88C9311024BCC25CF6B",
- "legacy_metadata_key_hmac_key": "837B2288967C7BB6EA1EDC9B5DABBA217F8AE583A1A81A364ACA34DACC2992D7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D9C0",
- "expanded_salt": "ADF50475B21A9D25A5E7203AE83FF5C1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7885EA3C893CBAF0FA002EFF2ACEEAD3",
- "legacy_metadata_key": "1E75CF4A50D5CD319014C4189256"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "090FCEA3DB23F3540F6B80A3C6CE90DC",
- "derived_salt_first_section_no_de": "F062E8C8705912B0886DE6013BB0FD7B",
- "derived_salt_first_section_third_de": "148795D2AB21CDF782E2BFDE93580EE4",
- "section_salt": "5CA9518427035852E597FDFD9674662C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8545688187DA8DBA7128DB0A",
- "extended_signed_metadata_key_hmac_key": "E61BC2C9E64BF1BA4940AA08AD1C767C6C01CF343E3EECE0552C25EDACCC58D9",
- "extended_signed_section_aes_key": "5DB50B44B902F8EFE098AD5CD974BC3D",
- "extended_unsigned_metadata_key_hmac_key": "86BD565EAD78657B5E6638094169B9CC35054E5FE18A42464D73747816020E47",
- "extended_unsigned_section_aes_key": "1BE4F40DD99FE29B91C7F52E8070E56B",
- "extended_unsigned_section_mic_hmac_key": "06DA96DCEDB0428192B13E71B7243AC38B53882F391FA06F8EB1BEFF75C1DB1D",
- "key_seed": "25A191D3760FD0F5E3FECE0FCA3245CA64C3395F925BC1CBC6C8A1703D8E0BB5",
- "legacy_ldt_key": "49EE9FA863F6FC58AE4AD9B65ED6AB3324346FD48F1C546DCDDAE573A6022D49D69741B7FDE707855286151293C0A9A35D940B2D3586F83599403E742E5D1927",
- "legacy_metadata_iv": "2E614558CB3E3E3D9AB34ECE",
- "legacy_metadata_key_hmac_key": "91C6BA325DE6EC62C8E83C274DD7C0CAFA5DE90312807E4F7FE61254B26E7F2D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "652C",
- "expanded_salt": "83D30387FCB9A9AE1251BC8B4AC9F15D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6B67ECD360F0F2ED758ADE07DA296ED8",
- "legacy_metadata_key": "208F2749CFE2E7678F82DF223084"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "188AB5AD6F7A38DE37428262C95E7ECE",
- "derived_salt_first_section_no_de": "DDAF9472DA85E50A78E068817184F078",
- "derived_salt_first_section_third_de": "16C749E1B39DCBBCEA3643B12E4A5EA5",
- "section_salt": "8DEDF76297B26CB43B5729BEE34005AC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F254C8D3AEC3706243E5F7ED",
- "extended_signed_metadata_key_hmac_key": "0999B8CB7840CF25C3879A3EA876F5915517B9E95C4628395DADCC4075DD770E",
- "extended_signed_section_aes_key": "5A3B57A960D7072AC522DC78CBE63E9D",
- "extended_unsigned_metadata_key_hmac_key": "68578A0361160B8DD83B1143982504AB33FB3676DD094B3EC9CEEA6E70288561",
- "extended_unsigned_section_aes_key": "582221808EBEFE5CF94460C960634C1A",
- "extended_unsigned_section_mic_hmac_key": "9388ADA8A2524CE1950CDBEEAA465C20B534DFD70622E83F7978F2D211379D6C",
- "key_seed": "4B8CBA389377280C7B3F06F919266E12692F3EF888DB06A7C2CC5491B3C40471",
- "legacy_ldt_key": "69A2BF62B644598DFBE6655ED38411FDAA6AA48CB5D2FF086EA3E3C8D91B027F92372381BAEF87D7C6FEE34D3BCC26435AD58A9E29E8BF3BDDC2356E5C628415",
- "legacy_metadata_iv": "1818DC345EE391A04BDB2C0F",
- "legacy_metadata_key_hmac_key": "64DFC121C3ED27315B1C5B0B5F73F32AE0B6A7A6E4EBBA5AF05D10F5294AB8EC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F8F9",
- "expanded_salt": "1E7F23A919256D21F55385A1ACD66CAF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "041AC8D105F5D65FFD0EDFFA4ED1F741",
- "legacy_metadata_key": "3C7599C5FFFD5D98CB240C4BB0D3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "767C72A711E5341E67DA1670B75E3E62",
- "derived_salt_first_section_no_de": "4DE4D75E4DDEB7E03CEE15E0B6972D11",
- "derived_salt_first_section_third_de": "05F116847E1675A6581BA03F592BA58D",
- "section_salt": "3B34EE7EB6651BD2A22EC856544B7966"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CDB15CBE9A2EF841AE256E29",
- "extended_signed_metadata_key_hmac_key": "848A828A22A9F9F6959CAAD11CD264A76B660A42EA7AE823B1EE8D18CCA59623",
- "extended_signed_section_aes_key": "B4330E1F880112CEF9BB3DF723CF0DC1",
- "extended_unsigned_metadata_key_hmac_key": "75753D00BF99CA81D7E3F11734F6089ABA3951A5BE906F18B3DF7F430BE4E9B3",
- "extended_unsigned_section_aes_key": "4918638C7EEAAFA551DBCC7DD735F4E0",
- "extended_unsigned_section_mic_hmac_key": "9C0484B681F7F4523B1E5FB189775D11BE6D40C0E047308CB2D321B4A1AB110C",
- "key_seed": "BA9B6117EEB81A8BB9127DE87E66842FB36132507922EF6E0E9296D926ED500A",
- "legacy_ldt_key": "9FE5C05EEBCC4E88769D8871F0A906DD40131C31712AF90F1D39ADC527DAD58A59FBA34B70898B40A0577813C3A19568AD4A36E38ACCBEB4672D2FDFA3093FE2",
- "legacy_metadata_iv": "BB29A0E17B8790DC314ADCE8",
- "legacy_metadata_key_hmac_key": "A78FD0573CC1B5EECF462B9E0E02439180283398AF52CA82C002FA22011886C7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C188",
- "expanded_salt": "D15E7BF1627689AA45E32AA51DEE49A6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3BA1FEC2D8B5F207AA558A57E1D61612",
- "legacy_metadata_key": "75057839CF9FB4608E56F8E6669C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "800ADA1764C9338C1E13A6EED3F936A9",
- "derived_salt_first_section_no_de": "AD7CE6E4D232F347679191AAFD81AF1D",
- "derived_salt_first_section_third_de": "105900C7B5E129FFD7D1376547B2DCF4",
- "section_salt": "0A2787A76FC4395C5B84DBA6706B9D25"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "777CFD816AD9B31738E3618E",
- "extended_signed_metadata_key_hmac_key": "A0A6293CA1A3B67970CB3D3FD540D3624A3896324DB6AF62C6018ADFE24EED5C",
- "extended_signed_section_aes_key": "815E7F0035908DE18CEC3FFC1CE219AC",
- "extended_unsigned_metadata_key_hmac_key": "44E86B0E9AD0051BB8529B290497730CB9BB1C9162F254705F9C7D02885F8B5E",
- "extended_unsigned_section_aes_key": "DC01DA65910DD5719B78E45D12496E94",
- "extended_unsigned_section_mic_hmac_key": "C24DB5228585BE55F807E9C2300BB03A4D03A115F174AAFE98C6121CACCB49E3",
- "key_seed": "044E562CC400C5AF656FDE217E18FE926D94CCA99DCD45F994C367CE1DD67A32",
- "legacy_ldt_key": "17D87FA699033B6C9227E68A0390CDB94BFED2608A6D712F56DB2CACED5B81536D270E677433B50ACD6FFD44C42E4E4B8122E8E523AFA4C0F2F880AB2FA19F0C",
- "legacy_metadata_iv": "7F6DFD5D220C676EF5B18792",
- "legacy_metadata_key_hmac_key": "8901B4424240245D518A1B71102F2EF7124BA7D4628D22D9948465FC24CA5667"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4BB2",
- "expanded_salt": "C0AC0EA17A064A49E4D4B9D0272319E6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "73E823D2606C7E047FA52736CB16E594",
- "legacy_metadata_key": "1191096EFA7046D81A70DB244DF4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "697C95A040C44F77DD6FC398B4355B5C",
- "derived_salt_first_section_no_de": "63BA9C3F48392970DD89713EA61CE246",
- "derived_salt_first_section_third_de": "99603C6CB1CAC5418595DACDF1C0CADC",
- "section_salt": "D88CA4876522CC48F23C5592DE832352"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "84EA3D92B7D1D7B6F53430B7",
- "extended_signed_metadata_key_hmac_key": "79B9C9A5E758C1F7C045A37BE1A71FB0A51B5EB8B37FD5F2E7BEB214ED4BD0B5",
- "extended_signed_section_aes_key": "D5CB9427E6E4CFD8CF06FC26129F4D09",
- "extended_unsigned_metadata_key_hmac_key": "45418CFE766E44578997044085812447EAC52283242857DD7AC46ED0D3ED60D1",
- "extended_unsigned_section_aes_key": "62F5D5E1B0006F09712F08F3A99B4D1D",
- "extended_unsigned_section_mic_hmac_key": "2E693B831F354F6D30121A4AEE1CC94E622E0059197114CD041264DA05FCBB9F",
- "key_seed": "D6163238DD52189D06E7645E77516C25D201A058CA0DCA888D2AF1B82A6956F9",
- "legacy_ldt_key": "FA82A2A689D925226446C9A2D1CF178EE5BA872DEE255A7FC26538F68890FEBD465372F6512C47ACDEC346CC9CCC3B7703F876C351274F478E5CFE2374212E59",
- "legacy_metadata_iv": "20E3F315E4E9A5BCAC701324",
- "legacy_metadata_key_hmac_key": "CAFBA40F86A4281E6AB3424CA6834FFE34CAB99E331C365D1477E10C4DB4ACC1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "635D",
- "expanded_salt": "8B48D816C8A5EC527CF07C00B61B467F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AC46A1061821A4BDCB58821000C13E1B",
- "legacy_metadata_key": "2A870326D260E6B70ABA691B18E0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "44D5213F65DCF33D5A44C96E658C0609",
- "derived_salt_first_section_no_de": "EEA8C729B4965B572F883C32C110D0BF",
- "derived_salt_first_section_third_de": "3A6FD1432A1ABBEFA98A03F5ED51367E",
- "section_salt": "A89BC2095E005BF6A6359A5C4ACCC54A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A96010E94A95723B3AB7E046",
- "extended_signed_metadata_key_hmac_key": "AEA8C07B68CC1DA25D4D6EB72625C5026F4A943888E3D227DD6514869EC4BC0D",
- "extended_signed_section_aes_key": "409D62657D4A8F09F55F2A44EA8A3DA6",
- "extended_unsigned_metadata_key_hmac_key": "FEBBC396ED68F3A50F92DDF92014BD8A987F7B5D5F23A27E4F7E0FADD1B6965A",
- "extended_unsigned_section_aes_key": "982D61F8E3268A22FA2612A0E768245C",
- "extended_unsigned_section_mic_hmac_key": "A35CCDC2E85D3371454C578BEE5E087C201059809E3358DF76F23014FBE57F86",
- "key_seed": "E2B400633CE4814AE15BC3D13FB30748A8D246EA7EF9E117659BFB538335A0D9",
- "legacy_ldt_key": "7149A5B7150A537A3EFC8CCCD2BEB3002BC8650C163608E2E7F166102A8320D3F10BCC987EFE4D382D16CB2A33244148459A8BEC14C8BBA8EA13755A682F1CDD",
- "legacy_metadata_iv": "1D2E02DAA7BAE8707A28C3D3",
- "legacy_metadata_key_hmac_key": "1FD0D2F1F2D73E0C43B2337BC315ED2DC460F3107F46C9A4FCD95DC3DD001987"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "86E2",
- "expanded_salt": "512B601972CDD157C3B4077FE3C33FA4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D54C5F02155741DD1D0351334585326F",
- "legacy_metadata_key": "35C08B85F01E7FBE79A44FCDDF08"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2ACD4743022F73C0457317FF74C839ED",
- "derived_salt_first_section_no_de": "B7137633ABCC3353FEE02A3762150ED6",
- "derived_salt_first_section_third_de": "12D5E9E8AEBB24F1C3BDEEB0DC825174",
- "section_salt": "81D3D0E1A15C1324DAC6730EA8B0F32F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F4875B9357D85A514C930D3F",
- "extended_signed_metadata_key_hmac_key": "9F7DB6EB6877A24168DEAE1D2B45A95EE4A0BB3CFBCB740768FF09037E36BF76",
- "extended_signed_section_aes_key": "93BEA2FF9FCBBDB4C3BA77373A89BD1E",
- "extended_unsigned_metadata_key_hmac_key": "5773D793BF53107254C121724B817716A839BC90DC4E0D204479982BB6C619BA",
- "extended_unsigned_section_aes_key": "1BDBE724DF9AF6DB9A8C3450E8D9C20F",
- "extended_unsigned_section_mic_hmac_key": "C70B1A64196EDC0BDDC6AC5F877B3A747D525022C8419653DD3215B0B5CCE5EF",
- "key_seed": "C472B5315F9E83C58438296F3FA069D26BA2964B0D1D94BD2E43E16416ABE0A0",
- "legacy_ldt_key": "534F04B21BFC96D2B54FC8FC458E373E8B7114DDB5AF0D64383F998BBED10AEAE36DC62644953DB14C25F1F7D07EFD75D3329A51018EAABB44425C9C96002566",
- "legacy_metadata_iv": "D88C700868D1E17D58408717",
- "legacy_metadata_key_hmac_key": "F1D3E6F49CCF006FC01C5F6CEF084DC294C40292BCF8505A37C0858D941F8285"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A07E",
- "expanded_salt": "8ED257F411EA0905E466E6DBD0CEB08F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "84E57AC53FF314D6C947D3AA55EF3493",
- "legacy_metadata_key": "E2437592DD0A4FACEB45D1AFF7D0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "20A81FF9FA1B84CA58DAAFEB1DE4C13B",
- "derived_salt_first_section_no_de": "A818BBECB0F5CC6323FCA1AEF6DA7F2E",
- "derived_salt_first_section_third_de": "016BD4A04DC55F386CB3226EC5BAEFB5",
- "section_salt": "FADD3D3FB9E2972D3ADA31BD11921819"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "670C563BF753D189295D8F48",
- "extended_signed_metadata_key_hmac_key": "42CA8EA3541C3022F3B3054CA75D5E44F3D9574133E96F6D1F89B1CA14B73292",
- "extended_signed_section_aes_key": "0A7E07A33D527953609C6682F8DCC209",
- "extended_unsigned_metadata_key_hmac_key": "812C2AB3B24F68A677D98C727282777CA834BA644C459C4F436AAF3955B2EDA2",
- "extended_unsigned_section_aes_key": "00458F576F0EDEE98C636AD6A9E90E8D",
- "extended_unsigned_section_mic_hmac_key": "DE99A547E4BF6A465BD314284BE50F7F8D85F8E09B6F6E0A1054D8EA6204B0E9",
- "key_seed": "274C28428ABBB1AB505D58D781B99E74563499C84656BE972EDC616A7BBED271",
- "legacy_ldt_key": "47A8CC1EB0804C0D4EC029BD71C6D03C6F37A7E95D2DDD1542F3D5A602D77BD47DC4D83E2A84393342989661E8A583C2D20E6B313076E68E29CEB45AECA2FB85",
- "legacy_metadata_iv": "D1EB9558C1942AA383E864E7",
- "legacy_metadata_key_hmac_key": "1D6DA949BB818B9B067123D794E750CB6E16174E0AB3E365A08FF644818F454A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3E23",
- "expanded_salt": "E5B7E11D693D0E5F548376204224F40C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9CF8601570E103BBDD46B0CB4177EAD5",
- "legacy_metadata_key": "E085C9148D7EACFCF0B79ECF6C1A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "64381601DBADE1F144920081F18834F0",
- "derived_salt_first_section_no_de": "AF398CDA15A4A3C347C44DA84C45E2D8",
- "derived_salt_first_section_third_de": "37757992796F1544AA91955EFA5DF1A8",
- "section_salt": "CD89F8D413CA578D18D35DB96FEEE13C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DED9C385234F17A7FE1DB625",
- "extended_signed_metadata_key_hmac_key": "BE983B11E92E51859E12DA2AAC69C4A08605B02BEDDF2BEDE58455524772480A",
- "extended_signed_section_aes_key": "5A07A9A2D6325DE985ABCB84B4BF2018",
- "extended_unsigned_metadata_key_hmac_key": "6BDEEC89709A53D33704C74DB2F72950E8D0DEEB2A7C02374B327B41D766A69A",
- "extended_unsigned_section_aes_key": "24A23D63B6495D00E8F9F6E9424AD035",
- "extended_unsigned_section_mic_hmac_key": "99C11BC85D67DB35131649D0971AAB8ED202BDC4DFF9AE89824CEE603FA79DED",
- "key_seed": "DB8E4A84D723DF60C03BDF678A323B777520165B33E7894DC0DEF3255418FFBC",
- "legacy_ldt_key": "A52BE2BCFCC0221E565634269C244A833A6FBE75544D4411C58D490DF810CBBA8F42D5A876985C06FBD305E1721E00DB57A64803B9E0F92CC1AAD891DC082D4D",
- "legacy_metadata_iv": "F1598340A026C30F7F8345B0",
- "legacy_metadata_key_hmac_key": "956A81D18BDA481E1E16DCE33236BE02DF65904D80A99B801AAAD34FBFE2ADF2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7C1C",
- "expanded_salt": "28C52A72730EF46A6F8FA32EC925BF5D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AD416FE74E64B5A78A9187A7A46C2279",
- "legacy_metadata_key": "3DD7668A4B00AA9A91AD59EC35BB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BB6A59F0D5787F4A8985BBFDB9A7BE98",
- "derived_salt_first_section_no_de": "176961814704C1E9F2275C0ED91B5EB2",
- "derived_salt_first_section_third_de": "DE5F01B99C6F43E221562ADE9DA2D49E",
- "section_salt": "2F62C135B1003C3C96C4C07C81099EE6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "63FBA9553E6C59D2AA98D79D",
- "extended_signed_metadata_key_hmac_key": "F9005133F0FB7BB11ADED53D7A05AE9C138B76FBA6900ED55D184197420C61B0",
- "extended_signed_section_aes_key": "875653A33348FF2139CBAC1EE02E29C2",
- "extended_unsigned_metadata_key_hmac_key": "B419F53E5695276505CAC0BD5B62525290C2BBF1C1D2AEF04E18E39B27E710AF",
- "extended_unsigned_section_aes_key": "FB0EA4FFEB21070E4A1B7B12ECB01BEB",
- "extended_unsigned_section_mic_hmac_key": "5ACB434B40EE7BB3CD9C50ECA9079125C54378E0F3F6D44878A673938D46C40D",
- "key_seed": "1B7A4F7361F70DA4F584ED86D697F1A9CC8A8993F69F58A3D8F13E7ED99DEFE4",
- "legacy_ldt_key": "5793C52081BCD6B4C5F1048D076C96262C594638A1256E9EE5FE0F854450755D4559D1335B1259A98449675A8FD58C52E2548FEC254FD48E54A6048806643F6C",
- "legacy_metadata_iv": "1CFF52DA548808EC30B5A10C",
- "legacy_metadata_key_hmac_key": "E55F17795D5F046BCF4C32B2B26FF230AB3DEB77DC64A6C3B193C470982337B6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "25B2",
- "expanded_salt": "817A316A985FC54A28F074C7507F9F63"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "806A9244F3ED503C471059A2CA4ABC48",
- "legacy_metadata_key": "8354C290D8E88C885655ADF49C73"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3D1D9E911AC85AC20055DB9F966020CE",
- "derived_salt_first_section_no_de": "BBAECD068F8A116678831DD9D92AE1AF",
- "derived_salt_first_section_third_de": "7F516CDC422CD592067E3EC39616F651",
- "section_salt": "3793A596FCF3FBB11B1DA71B5B6FF526"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "083FE90AC1A67B18011B0AB5",
- "extended_signed_metadata_key_hmac_key": "DD4F07E4CAD65DC34F919961BD8FCD575B8EEE470A68CED3AFCE876EF008262D",
- "extended_signed_section_aes_key": "37C76AB6B66D41FC89D5991E3AC9DC70",
- "extended_unsigned_metadata_key_hmac_key": "28538A6A8AE5181B90D8380FCBF5DAA539EF09C89BE7F441592AE0CB5087A103",
- "extended_unsigned_section_aes_key": "C7ED82C4977405A712BDBA3830E9A426",
- "extended_unsigned_section_mic_hmac_key": "C17292D10906255B97CA96510F606A24DF9EB8694EF41C6CE1D84A6422282833",
- "key_seed": "0E239080D2C59C206E9FF5B08A2ADCD3E09C36FEE23AAF7D5C8838DB571335B4",
- "legacy_ldt_key": "3FCE05607A8AC3FAA5BA215A81EC9941E26A54755D4498C55AE4C33E22A10DEF23E3055161BF599BF8FF1B84F68C76D85841E17E25E76A0418C356DBF5F8338B",
- "legacy_metadata_iv": "7FA96E3D0FFF5FD9237BE11A",
- "legacy_metadata_key_hmac_key": "392A07A3369521341DD89FAB96FD1532782DA0350B419AB1336F0B5C9B473000"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A03A",
- "expanded_salt": "66D94676909F3A0D7FA2B0F76E182EF9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9BE9A625608AD054AAAC8543F872196C",
- "legacy_metadata_key": "FDE0B59E9B81FAA6B9C04BA5C0EA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3D7A74A7AB5CAF964B4F04D6D4514D35",
- "derived_salt_first_section_no_de": "E70B77D9CFCC26E8A85CD2A6D0EC2F2D",
- "derived_salt_first_section_third_de": "99EFC521BD4297705739325F525FE69C",
- "section_salt": "F5EEAF3AE7E976F11EFC868615F796DE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8CEAF6A5BFD200DC361D6240",
- "extended_signed_metadata_key_hmac_key": "F5FA59AEC7B1F31E2F9FC1046C78629E309DD50E1A81CAECB20760B2402C0A13",
- "extended_signed_section_aes_key": "6F934E187FE732F1EF5E07A81AB3825A",
- "extended_unsigned_metadata_key_hmac_key": "E1D722509485016189ED2A7295A35C3FF9CD596390D8E6331106419103003C39",
- "extended_unsigned_section_aes_key": "38492101E85C077C8713839B7C8B9B1D",
- "extended_unsigned_section_mic_hmac_key": "BDA6058D67481D977CE6D8882454C7F5997BB2B8A0707813661FF5192C51EE57",
- "key_seed": "A34605CAB46B2BCBE6F7A96943E3A2495AB5627D22B5BCD2B84439F8A935C88D",
- "legacy_ldt_key": "BC09B872F8BE6D084DB3B4ABC904DB092D7BF8466DBBFBD6D6FDFA21F75DE95CE0FA77A7184EDF0EDF815866BE1F681A3DF0D70D3F3B979FE30FF208FC8D1672",
- "legacy_metadata_iv": "959CAE1677EBBCD012398964",
- "legacy_metadata_key_hmac_key": "4CA3942A77EBFF7FDB1BAD0549F47ABCC7D3C019994001A2CD8462197204327A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BFE1",
- "expanded_salt": "13DF943D256AC43930345295BE1F8E4D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "55475090B893C300C6704DC832A7BA5D",
- "legacy_metadata_key": "D3B1148A96122CA40BD2AAE9F504"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A31F486E8E4895A2CDDC61E99BB46FF1",
- "derived_salt_first_section_no_de": "28FA9DE5DD61764FFBDFDC5D8E7E289C",
- "derived_salt_first_section_third_de": "94956D2AAA934B4A123D3BC6EAB692A1",
- "section_salt": "18CC5CE57AD00294DCC0AEE712A2537C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F524A5B7CA13D1CD07D0C82F",
- "extended_signed_metadata_key_hmac_key": "DBF5E7AE77FEBDAE9861AE4676E0B1981A6247B634C83FA03B9CEBB5E7CAE0ED",
- "extended_signed_section_aes_key": "4EE0CAFBE21C6371595A5A59B81E25CC",
- "extended_unsigned_metadata_key_hmac_key": "A1220278B2C62DDF1506F682405F3706FBEED10FF4F646D7C8014F287CDFDEC6",
- "extended_unsigned_section_aes_key": "E90139D2E2728CEA70000F9C945C7563",
- "extended_unsigned_section_mic_hmac_key": "A70E9731348E554E777470DCE2C45C07BE7FA071EBA26BD1535D78D03F78DBD6",
- "key_seed": "C35587EF4D78895F6B5B3950D9CD21EDBF8D9D2704B59D75E9782243D74E5D6F",
- "legacy_ldt_key": "84091EACCF203674FE248BBD36A1883B0D3E555497908E4F8F4D8F4A4E2B508F31693D98B3C3393C8F84C0C8760822EB1EE198CADC683E32FEEB83893E09C7FA",
- "legacy_metadata_iv": "B73994FED9FD84435CCC1A90",
- "legacy_metadata_key_hmac_key": "BE0F934AC94D8771AFF57E3C02696B054D0809C3224C7054A84033C30F7996CB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AF97",
- "expanded_salt": "B1A14B451CE3E79F598B2F1941579B57"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3BAE29F48ADBCB7DA257D8E5EEE7D303",
- "legacy_metadata_key": "9BA5EA076519E89120F05BBDBD4A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "29256B8DAAB8CAA3118D1DA9DDEFE948",
- "derived_salt_first_section_no_de": "0EACEB628F3293CCE3D68A3ED040536F",
- "derived_salt_first_section_third_de": "37DE26FA90C2C650FDD12350C8408121",
- "section_salt": "6E74D1772C64427FF783B9F2830CBA8A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "21B077B2400C25CAD7E96A2D",
- "extended_signed_metadata_key_hmac_key": "991847FB9A04E46426A0AD6487DFF73D8876F15C563660DB847237786B4B3247",
- "extended_signed_section_aes_key": "EA2EF02DCCC21833B0D3078A7F12F5F6",
- "extended_unsigned_metadata_key_hmac_key": "0F81C189B255A6A7EF2368956F87713EDFB579BE9F13C473C47BCEEECDC217D4",
- "extended_unsigned_section_aes_key": "2E62F2C3BDC5A52BA1A55EACF1F76B4B",
- "extended_unsigned_section_mic_hmac_key": "2752782BE3F177E213E22CA8AD892524921716F3BC1B48B9EB11229468EFC266",
- "key_seed": "F8095078D7AEEC4D00F68872A855CAD1A322EFB77EA25B4DF82102B05E06753A",
- "legacy_ldt_key": "42378E6D7D832E9C4401B6AB5BDD00B27DE42928F35CD9D3FDA9D0DA40EEFE8D6CE2D5A1872E346BD2864062C8B5A6DD7CAC4D39C4231B8EAB52E51D0C8645F7",
- "legacy_metadata_iv": "0F57382B151D0DC58CBC8E95",
- "legacy_metadata_key_hmac_key": "A4CA3BBBA355C63D419BC90ECC8CC720EE24F82DEFB869B31A485A2C41333D89"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "30A5",
- "expanded_salt": "E2438FBD1F6E0A3B366FE29D38C4777E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "80E4FE9746D0251E10F41B8CE736109C",
- "legacy_metadata_key": "6A26EBBA353B96A6357F33209D3A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DB7A451D777307D8BA97E5BCE37C047A",
- "derived_salt_first_section_no_de": "D05F1C1723AE5F1C8D27113F65F7ADDA",
- "derived_salt_first_section_third_de": "272197262D33ACD1793283D7ABED37AF",
- "section_salt": "64B08C017808E5A9701A0F90C0177D77"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "76E17DF0F7FDF9B0C15358D2",
- "extended_signed_metadata_key_hmac_key": "DF538C4EDCFEC040BDAC25919C27FF04F81F83D2153163317A7F417324D0BA90",
- "extended_signed_section_aes_key": "42B8C719309FB90079A9EEA87C6F0AEF",
- "extended_unsigned_metadata_key_hmac_key": "E46DE9C454C192EF947F85E8F29FEE606777BCADED2A4009C05243A554DAE7A4",
- "extended_unsigned_section_aes_key": "1F535B80C2455B3257133BF8EBB04596",
- "extended_unsigned_section_mic_hmac_key": "21D4B3C15D918DD65650254ADA3EA81B2DD9F10DAB9A35977CED20016325E726",
- "key_seed": "EA167585EA2341E1FC72074867A3F67ECBFDE189B08C9E8F2814929896EAE302",
- "legacy_ldt_key": "8AE01BEE990BA8809029B32C8F9C130C1E728DEFA8B9B739A16AA6FE308964AAA9E7E1AFC2191DFA2E14CF43A25E9E128A2FE2BE4E3169193502CEF774E21991",
- "legacy_metadata_iv": "9CE121CAB65532B2F7E57211",
- "legacy_metadata_key_hmac_key": "AF059A4D1C79159BCDF9A5E9FB39F117D2E02E9E3C3C2A7A4BE3544310AF0119"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DDE3",
- "expanded_salt": "B0F853D240DDA7C6EF8377A360F2DB86"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E0C8F420135EFBA90C57360C8495E966",
- "legacy_metadata_key": "EEA2925BAEF7A89FF3887B5813C8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BA0BC2DEE5277A24E33ADA8BBCA03F31",
- "derived_salt_first_section_no_de": "64AEEEF504177D31D8502E6CF5CD4360",
- "derived_salt_first_section_third_de": "D374736E95583A1D68B7E6E92C13DFF1",
- "section_salt": "C6E39FEE7E09E86044AFAC81EF339037"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "50D5AC319BB54645C8B7A2EC",
- "extended_signed_metadata_key_hmac_key": "BCDD8F5C9EB2B148B1E3AF788460F1464CA15DA5B2E689A56A388160B38ACDF3",
- "extended_signed_section_aes_key": "16C39331FCE4CFD481034FA2456BBE24",
- "extended_unsigned_metadata_key_hmac_key": "742B22DD61D20C77F51C1D504E5B5B24FC9F6781BD002691F57696C089BEBE21",
- "extended_unsigned_section_aes_key": "77338B19DD85D416904152D255E4323F",
- "extended_unsigned_section_mic_hmac_key": "4FFDFBCCDA24D12C1F723784E9F6FE717E4F5140151500C63A424BC102BC7C23",
- "key_seed": "C5E9CE90213BC80170B51462B551F769F2273C630C64A4C25F35B1B92D5C8CA9",
- "legacy_ldt_key": "69EC070AF40D90C3995A9FEF23978C97504D7ACDC2657789039A053FC0C9D6A7D00849BDE11807660E50C605475DFD03AA70CF7AA1C69DCC792FEC35B3AF03BE",
- "legacy_metadata_iv": "172E3000B66699249A9829E5",
- "legacy_metadata_key_hmac_key": "0F1275FABD8AA7FB5238C283DAFE174E433DA6DF8AC6D0DE3D2ACF438EDFCD9F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "551F",
- "expanded_salt": "7B4271A072EC2128F8F636C8478B39E4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "673F5DB004228863CF089C3219C9A1CF",
- "legacy_metadata_key": "87ACE4CC73D6BD8D769ADA26A647"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2B8BF9971D7C0697D2D427CC43FC5395",
- "derived_salt_first_section_no_de": "EFC7565D46D21F04DDA3A2C51EF21820",
- "derived_salt_first_section_third_de": "E757A0CE3940290859A45B4C6E5F30A3",
- "section_salt": "BE88732A1DB32B4D6F2292A526791D9F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EDE7DA46CC39945C00F9BAEF",
- "extended_signed_metadata_key_hmac_key": "8D74A36599506D9AF3BFBB7F60A3D67E91F5D88A39D7F04FB5CD34E3AD722310",
- "extended_signed_section_aes_key": "F2697B7574D089907573390FF16487AD",
- "extended_unsigned_metadata_key_hmac_key": "7E2884E9981BC02BA0380ACEFA4181025B0AB37E2804B7DEE6EBBEC3EEB19C60",
- "extended_unsigned_section_aes_key": "F3AEC7D29B3505F8CC7B3BE8E29C6964",
- "extended_unsigned_section_mic_hmac_key": "BA6CCAFF66F96C185F9A7C58B6CCA3A9D89879D368DA322354654FCD9274BA90",
- "key_seed": "7DD23FB5F4D82E66EC3DB42C09868CA91C023B43633ACBB17FE4BC82D38C2658",
- "legacy_ldt_key": "844C186CBB85CADA50AB6DAA2427A1DFD58076897B83BDB20B8FEF2048E9CF2CA25C7B836252160EF993591D46B19DFCE129857B9CEA32F389F18D4CECBBE2BC",
- "legacy_metadata_iv": "33F744D85CAAFCF74FB8F3E6",
- "legacy_metadata_key_hmac_key": "1E93AD976E15E2AE3C407FCB231CCB22A90B490F5E985D36A52A89E8E25E4539"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E42D",
- "expanded_salt": "A4BF8E8CB739352E0ED74F787C36C8DC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "250C39620AB74D73835355D52D108F4B",
- "legacy_metadata_key": "42C805A62F77F677E6192049B27E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "18BFAC15237B7BBE43A4F7F809EF3858",
- "derived_salt_first_section_no_de": "CA1CA274FEE8C3A9C3D47B42894011D9",
- "derived_salt_first_section_third_de": "9CBA3027B68DE4BEF96768E502B91BA4",
- "section_salt": "0A2822DA69C611D7B4A53033CF05604E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "90AE16C1F11554F5594138A7",
- "extended_signed_metadata_key_hmac_key": "B9268ADA68F20BB9E8CE37FCEC99C2A86B9594B9E14B800C258118EFA0CE5189",
- "extended_signed_section_aes_key": "548E3F0CE292050E8242985D88BEFE74",
- "extended_unsigned_metadata_key_hmac_key": "3BBE23E964C9A6874D390C6F502464633A043EE53A4B260250D2F70940EB375A",
- "extended_unsigned_section_aes_key": "A8FEE8B7E29B67A40960D70C93644A05",
- "extended_unsigned_section_mic_hmac_key": "3B45E9635386FCA53AA67BBF1A4E05786D7B8717E40B1141573C73E68F0D64CC",
- "key_seed": "B178061425E272C3D649682BD36F871AD37507EC2B759C65164BB6A6530681B0",
- "legacy_ldt_key": "93181E862CEBB2A252385A2FB7B0B577374E2EC6EF9AC7A2242E5EBA39AFA2897A0DA551D959098C3912284857C2F2F2395D1906215D4C40ED7A346C00D67A55",
- "legacy_metadata_iv": "A4E6EA10E8AE9B36533DCE2E",
- "legacy_metadata_key_hmac_key": "5370E039361FF68C72975D4F5F31AFA7FB81059BE0244E813F8326CD232D42EA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "56C4",
- "expanded_salt": "A18F0D7A9A803FF7125B07D159402510"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "497B3946E8F459B4B6509D7A645E3541",
- "legacy_metadata_key": "772BFB8AE4FC75F1CC660141C983"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E8D1758074F04F962F0B8413367098F0",
- "derived_salt_first_section_no_de": "649F741FDA427A802A2F8B7860C4F76A",
- "derived_salt_first_section_third_de": "D278D134261C9C65B9A74F3529E43626",
- "section_salt": "F89D17A98F3FAFBFE2E1DE6863DABA35"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C0E97E0BDA75CE5A062279A8",
- "extended_signed_metadata_key_hmac_key": "ADD1ABD334AD6E8FDA4E9405D2DEA2D922D34D318EF2CCCA2F67583516F17393",
- "extended_signed_section_aes_key": "9822C6E2DF14BAADE9364ACAF4A9B806",
- "extended_unsigned_metadata_key_hmac_key": "BF16677C74BA020AAD37DA9971BA2223CCEF32CEF72397F5DD058985B7E0D212",
- "extended_unsigned_section_aes_key": "9DC524253BDB4A2DB264F1948E5D18FD",
- "extended_unsigned_section_mic_hmac_key": "7E5FB9E840FA6B87845367E76D7B41D54A18B02CD924E866384888E0C00A93E3",
- "key_seed": "72ABE9193AC743B2B111CAFFFFB358F7E40128A85D5BF033FF8EEFCBDC7C7C39",
- "legacy_ldt_key": "A76F22B82A9CD02DBCD60121A8C3FD4E8E0F88A97273799AF98FF28F9599D42B8AF9E2CD186D7CA6F30FF119E59024EF601B985170BDBA9ECB6A4C04DAA6ABE0",
- "legacy_metadata_iv": "0052DAE63C9034904AA39ABC",
- "legacy_metadata_key_hmac_key": "EF48828813A8333D0AD778398D9185BE83CBC981F05238EA6D13FD6813B69AA8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6DCB",
- "expanded_salt": "DBE13A05FD2524EF5C479DC792134882"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AEF259E70D48EB4D7C8937AB98BFCC1F",
- "legacy_metadata_key": "9CEC4BDFDE46DD0F0928F6C596C7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5510C171F26EACA23540034A3092B56D",
- "derived_salt_first_section_no_de": "EEF7B73941CFE892940A3A4B4D1B5756",
- "derived_salt_first_section_third_de": "01CC010FD9726B30EBF84405F32666CA",
- "section_salt": "F91C093176ABAD0F2B511A286BD09F9E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "27F9CE6A7E7927E81CD10AB8",
- "extended_signed_metadata_key_hmac_key": "A7549B8E2E67EF437364FE3ECDF7D55A1B2D0A7A3F3B5FFA13F5E126E0242758",
- "extended_signed_section_aes_key": "30D4994852966048E4A3AE0480A25251",
- "extended_unsigned_metadata_key_hmac_key": "F124176E133BB995871421272B33CE4B0FA9168C1984817E4D95CAF5BB2DB0B5",
- "extended_unsigned_section_aes_key": "6F73127D198121A5622342B0B01A2259",
- "extended_unsigned_section_mic_hmac_key": "28272688B418DA6A37B6C384E598AD6959D180FC07195CA61D1092D20AC81FB9",
- "key_seed": "713EE2189D3D4CDBA2AAD55F246E749E9DD8E0D9C2F6D07DCFDFAC9B9B9F7F7C",
- "legacy_ldt_key": "314B2B2F663F40A4BD740541E4EE5C52FCDF7B6A3901970B6B662704E037D6DFE6EDD23736A03D5E8BF77536574C2052147A315F06F468917267DBADE65C6C09",
- "legacy_metadata_iv": "91F9AD3C812251EF7AFAFA9D",
- "legacy_metadata_key_hmac_key": "5CFE41FCC67EF4FAD48AAAF16C9B4048AAEBF74DB50C12BAC97D8FAD47C685FF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8A9C",
- "expanded_salt": "6F151AB29D6D59C6073F016E1D33F539"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6CA67707F6EE67BE260E103DAF00EC96",
- "legacy_metadata_key": "ACA079F16F92BB05F97C0892C72B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4C8A37DA75DE0E3A4B9E244BD06B0607",
- "derived_salt_first_section_no_de": "8C8AF4D32B043443BB0CD63D469F4175",
- "derived_salt_first_section_third_de": "9171F02744BFB054A300BD808D1188F2",
- "section_salt": "84CD0EFC929DBC80F4AFFFE2D9219CD9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5F892FA86618BD74FB3C0618",
- "extended_signed_metadata_key_hmac_key": "5560D4E263E87BC7370D09BFA03D019D930411542FCE29A8022E03FE9BCFD5A5",
- "extended_signed_section_aes_key": "AC2967B22FA772ED8479AD227C2795EB",
- "extended_unsigned_metadata_key_hmac_key": "9AD7D50423E791B44A8F51C94778D564A98AD8588EAB7F36B1AF7595146F0D6E",
- "extended_unsigned_section_aes_key": "7CF76027647494EA85ADC0E93B4E5CDC",
- "extended_unsigned_section_mic_hmac_key": "9FE0DBF149123227277D38E084CC465E8819222023614ECEBAD000F654FA4C42",
- "key_seed": "A30D7A240738BA4DAB1014A4399264BD4EA63320B25E7EAF139712B876E46901",
- "legacy_ldt_key": "5ED5E2725AFCF2B2B10B774AC62307CAECD1778C132063678E555A18022199A5B352A18CF2C4A3C931847157461C8A63D740EE886F91A1507B2358B8DC78D8A2",
- "legacy_metadata_iv": "F9051E224DC1BAFCA0B0FD1A",
- "legacy_metadata_key_hmac_key": "B33EC96D8542BB091926124545799D633A591992C2892CB1A497DAA89019322C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "26A4",
- "expanded_salt": "7C492327B5D8C1792E389D98BB93C6C5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "175BFB13462CCE8CB5C116664B7DEF9C",
- "legacy_metadata_key": "2BFED7650DD9D4DAAB9B1464DD7C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6129ADC8734592E7D981AF66E2754F18",
- "derived_salt_first_section_no_de": "F2880DAB1E42CDA8E84BE023BE366D88",
- "derived_salt_first_section_third_de": "287DE41459AA3EF71DEC56689B701FD2",
- "section_salt": "0B7E7DC53562613525B4334BD0769425"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4E82E90D276F38E270ADC784",
- "extended_signed_metadata_key_hmac_key": "0AC2EA14F4678AAE1E4C74025A8E8A4892C49738DDD7044EBE0BE91B999EF503",
- "extended_signed_section_aes_key": "A15A0EDC78FB9E349353E69F2879B5AE",
- "extended_unsigned_metadata_key_hmac_key": "DE82AF170E9728BF36469BFAE992167245832087215552CB5D6239539ACA16DE",
- "extended_unsigned_section_aes_key": "2F3EBFF728C6D813FB7847EF1490E8DD",
- "extended_unsigned_section_mic_hmac_key": "93B5463BD75830E6FEB315D63135CDCDFBB39C4BEFC2BD36172F7C3D2A2BDF41",
- "key_seed": "3B55D649DA64E836CE2C92A4726924160151356F97D4D8D2E925472BF63CEB8F",
- "legacy_ldt_key": "9D91D59A119C1F9CA8F911D3013C84BE135C4CD1806792531CC0E4496817BE7475EE42BECA3951DA4CFC33A199F4DA11B16067F4D6D11D2A2AF066E082757A50",
- "legacy_metadata_iv": "5084A5BC6EB59134D86F6D62",
- "legacy_metadata_key_hmac_key": "3E6936DD6BEEBE55215AC885B04D1056E4E78B8E65ACEEA9E551624A5541E03C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "86EE",
- "expanded_salt": "3970E0321DD07D41A8DDCE87743413C2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9B7FBDC251851F55AE4125A2D16A13CE",
- "legacy_metadata_key": "E1CDF2593C795C2861DE8FDEF0D3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FFFD2D72DDAD3060655152A8103EC6B9",
- "derived_salt_first_section_no_de": "117C20C8FFEF64F7A17E2E4C1BA481BD",
- "derived_salt_first_section_third_de": "72FBA6EBE51669079C284E24D8CF46A4",
- "section_salt": "3C5B4A6A6ADA2904CEBA40A77093BB72"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9081DA86A7DF14FB095A61EC",
- "extended_signed_metadata_key_hmac_key": "48639117C1E09F1139AB97ABA5BC62CE76CDBF2B3C64A6586B5C0106FAE49B91",
- "extended_signed_section_aes_key": "C7671A01CB427F2746A006AA32BBF973",
- "extended_unsigned_metadata_key_hmac_key": "F30064E71639564257455B275C55757116ECC8B585823750F887CA76743CB7A0",
- "extended_unsigned_section_aes_key": "D2828537FDB63CA2457FA1E965BC11A9",
- "extended_unsigned_section_mic_hmac_key": "3F4AFF53CF52AA9F080CB6CE0180DE3A72CD9EBD602884F2EFE715D99AC89701",
- "key_seed": "ACE294DAF71A2A19E5F3AF1E6A91F03CF04A97F72996604EBFC4E2F323FA9536",
- "legacy_ldt_key": "2708D4273B62CE1AA8D4CD93E0B0C263A1DA3A2CC2761D9EF275F10005E4B3C44A8F946AC3514B2CE4047EFA928D44EF472DEF6FD2F5DF38A3DA77A97FA69523",
- "legacy_metadata_iv": "74D87206E8B1FC396B2C57E5",
- "legacy_metadata_key_hmac_key": "BCB9D3E4172B15D42AC01F7EA6692A07A66305F84C8BB6ED2790DBD1F71A9525"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8494",
- "expanded_salt": "5D0EE66E8A0A6A7B017383BB13A58222"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3C35FA572E4B5DC9F0B1114D6F4CC88E",
- "legacy_metadata_key": "91F3B87C19F3411008871EDA91BD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "31CAC47F1B39C87613C5DAF866FA4C5E",
- "derived_salt_first_section_no_de": "637B14B2A6EFFE6F34C6D9DAF78F7BE5",
- "derived_salt_first_section_third_de": "31BE606AF5C9E2D0724B9A360D7472CD",
- "section_salt": "2B05639671A1B08BE4E3586C86C43448"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "83A1FE2E393CC50710574893",
- "extended_signed_metadata_key_hmac_key": "242D3E3FBC04FB913668614E9B4741062C39B2B63339AE838FA85A9ACFC5E40B",
- "extended_signed_section_aes_key": "824B3AA74C33136D76CB89C2B8028951",
- "extended_unsigned_metadata_key_hmac_key": "C90B9AEAEBC7F5FD2C5C08D628C23BC29AF78688B92907F4450704AC629F53E5",
- "extended_unsigned_section_aes_key": "766DCF3896348A3ED236A0FD204FBC9A",
- "extended_unsigned_section_mic_hmac_key": "48910EADE5222AC7AF35DC99FC6665C5E880C2F68D19070B3688120CCF53A36E",
- "key_seed": "AA14110F082FFF51C35875E30D04339BD14EB8AF3E626E105E4598BCE9D2A37D",
- "legacy_ldt_key": "1F9D9A3ADA2D11CAB658731A258384677B56289066AF24D0874EF699C2C567046F07534E9F3BB563F6ED57CC877AD87E754C2F861876AD1574C80E375AC19057",
- "legacy_metadata_iv": "FF3681072C009BCC39E2BE6D",
- "legacy_metadata_key_hmac_key": "3D25F9CDC5EBB6C2A2397719464FD78F95AAA8106DE6F88681BA51CBD172A00B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4358",
- "expanded_salt": "F74C0BB8E5DE70F78E2F3B51D366CE32"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0BEE051D578E6DF93DA2041FCEDC060F",
- "legacy_metadata_key": "2F511649387178C306024222428C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "15DF3500ADF2C403140A6C8326C8D3F7",
- "derived_salt_first_section_no_de": "460932BCBDB294DB702CA201F1048924",
- "derived_salt_first_section_third_de": "63E2C266FFE154FB18960D8006575ADF",
- "section_salt": "BA874B85819755D7537B418F034F439D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7FB3395CF94963E43E9F28E5",
- "extended_signed_metadata_key_hmac_key": "B988E65597222805C456574B1141FC26BD684BF4C3D8D0CDB5CDEFC864446A9C",
- "extended_signed_section_aes_key": "763B071190CAA2F3B6C807B5DC02F80C",
- "extended_unsigned_metadata_key_hmac_key": "D44D311BCF6BD00682C3A4D1611586AF0A056BA4A16020D4438C31EFAA8DD0C9",
- "extended_unsigned_section_aes_key": "EBFA2C645BFF080BED12399B4C82E31E",
- "extended_unsigned_section_mic_hmac_key": "62A3F7542BDB2353589EF6F1D4E8C0AE32867D249E85E86D41E79D43DD69AE99",
- "key_seed": "A7108FCF14082A36DCEE0FE631800B765D0EAD6E8F87A676D817D58FAA8BF0EA",
- "legacy_ldt_key": "A9049C4D6E968735F74CA2458359F7368609AE436F055D4D450D71C7EDE7B859E998AF85D83E006E188730C029CCCBA93D0A13F5A5B26CBFEF6333BC981281C0",
- "legacy_metadata_iv": "F12AE8EC32E7AAE79BC628F8",
- "legacy_metadata_key_hmac_key": "2BD8168A10A7F49E67A4E13C331D4BF1B27B39D93788BFABB9D23294950E5BCA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F905",
- "expanded_salt": "63507663CBFD8061DDDC01F257BC66F1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "426D1BCD42F07BC4317EF536B4433607",
- "legacy_metadata_key": "43AA788F358ADC61D393CD5884A0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2EA4ECA980EFF2A900EC1406BF2A7654",
- "derived_salt_first_section_no_de": "3D68EB13753A62DB2CFC70893A950F57",
- "derived_salt_first_section_third_de": "80B456AE756BC5FF5D081577C8812158",
- "section_salt": "1F9F140F169175B7C5987585EBCC4622"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AF18D1A26BF3B9F83F85FC3A",
- "extended_signed_metadata_key_hmac_key": "56198EAC21F515D824FCB6DB630D76DAACF6A15E9E0ED15C241475EAF0790B80",
- "extended_signed_section_aes_key": "96E4E1FD56AE1BC8F57AC5B1C7534838",
- "extended_unsigned_metadata_key_hmac_key": "8EA76E3151F8A3BDE42591627A3CEF4E1CE241F9FFE9F4FFEE7C3E31848CFA4D",
- "extended_unsigned_section_aes_key": "666C14460861D1DC1740D7F6C594FFE2",
- "extended_unsigned_section_mic_hmac_key": "B303959CDC2E2104D53991A821A8AC96FEF1C95B2970647C14518680A4B8C2D4",
- "key_seed": "0424597009577E1F3554250395769371ED25B5F7814DD6348D178A7C168E7766",
- "legacy_ldt_key": "AFBB58860120A77DA45F15C0B953DA00A72D45EE69A6B02ED26505F542007805B118B973D9B295D40F597AA81A7747CD1460742A0CDFB08908DAF2B3020A3827",
- "legacy_metadata_iv": "B2344C34A6D3D57CBF5E0007",
- "legacy_metadata_key_hmac_key": "B94AEB0973C370BF54C6A8F6BDCF9E88FD0EF64D52B9BA21C282FAE143F19F5F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "519C",
- "expanded_salt": "10BEA9AF62935BF75E546D3812F48C52"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "94EBD44573D9AE453C1142EF2343D7B2",
- "legacy_metadata_key": "33AE696750EEAB9FF13F9B9FF909"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "151B8F0F42F481762562477FF302ECE6",
- "derived_salt_first_section_no_de": "62783850F1021539EFF1F85F05ECDC87",
- "derived_salt_first_section_third_de": "3582BE58547BF6FE8DAA1CD83C88E87B",
- "section_salt": "11B8833E8203CC6AA4C2FDF6EF04F2F1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D1AF6FC8ADBF0D73B718416D",
- "extended_signed_metadata_key_hmac_key": "5DEF00F035FC1FA6F260D0BCF631922C32D3188A2B08F034EBEE8C5F934E52D1",
- "extended_signed_section_aes_key": "4F50B7B515F2971E437EE21705891AF1",
- "extended_unsigned_metadata_key_hmac_key": "53B79ED6BA2F49D3E320064B759BF47832468D26804E59B07FDA6F4EF0A088F2",
- "extended_unsigned_section_aes_key": "99EC7F8F280D9942AF9A8BCA94FDD6E0",
- "extended_unsigned_section_mic_hmac_key": "1603970A60A1FE774E0BF791F6B6564E94FCD687852D39C00709CC3400BE9D99",
- "key_seed": "FBCB4D2A8E1F7C772D85798EAE30670358ECF27E2A33F33BF908A2FAEA21FAA6",
- "legacy_ldt_key": "91E2F3527C813BB961A0C879763F2ECA0345B264A416197DCE0640F7BD3F30EAF32F5F28C32A8640700631C99D025DFC23F370514500952747091775BCBC8697",
- "legacy_metadata_iv": "6E0A4975E96BCAD0A0EEECE9",
- "legacy_metadata_key_hmac_key": "695BEAE9CECCBF7E6813CB68E4CF402521C0FEA7ACD3803E1E8B8697C01CAD3E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0229",
- "expanded_salt": "0B19A48F71F5915259BB9B4101DD7418"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "62C161195525EDFE27DBAA8F3E13E4B7",
- "legacy_metadata_key": "094B20ABD0DC8A1309BEDDEC85F1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FBB452E8E3EDD1FB056A260E6079C3BC",
- "derived_salt_first_section_no_de": "6351760357983AC271B728AEC8C402BC",
- "derived_salt_first_section_third_de": "437712088D59F3C447E68FFDB52EC2E8",
- "section_salt": "8172DF5E537A8FEA3D8EF8623BA72308"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "65DC85F6D5A794F22D678F32",
- "extended_signed_metadata_key_hmac_key": "D70E282BB0E7F295C1343DFDA90D134799B3B0C1DD29AC79A11B4DC3940A06F4",
- "extended_signed_section_aes_key": "291B133C944BBE991E2DC275D5CDD33B",
- "extended_unsigned_metadata_key_hmac_key": "085C6C4AA0A9331187EB5327B4B005D8EC1B33EEC1452FF435B090F2992B2F99",
- "extended_unsigned_section_aes_key": "F02BD3CF4DC6B8A248CAAB8897F81C69",
- "extended_unsigned_section_mic_hmac_key": "6421A5E47AFF1D55C85588F6BF8A6252BB491197EF43914594B2DD5DD913E211",
- "key_seed": "4A42CC2F29D666313CCCEB7F615D8CE8334DA7D8A9501493C8C5AEA3984643CD",
- "legacy_ldt_key": "88173B4E8E21FD8490CC0E2E3C8C9455BD72384B39D3A490CFD9BE97D24CF06EC43C2E0D007B3A7900B04F07112BBE06D13F7A5E5D1C2A5C7E554742FFCF53EA",
- "legacy_metadata_iv": "002C75BC8A67074BF44FB92E",
- "legacy_metadata_key_hmac_key": "E8FBC19EA106D5348C744F4E6F62D3A73C889B9FAF2309BC8112155C2C063BFE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3B93",
- "expanded_salt": "EA69FB153EDC7E19E8E4E2E8BFBFF271"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "14BF9B1A52E63AE4D2D1913C98D2AF21",
- "legacy_metadata_key": "53E20DF5B7156876F28F7B6D12D0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "507CF1F838BBB2BA9E5DC79DCE92B8C0",
- "derived_salt_first_section_no_de": "D240AE3B808F1022A4A2AD19A12FCBA4",
- "derived_salt_first_section_third_de": "93E13946662D4E3197B32A7DB0DF8ABD",
- "section_salt": "D814C722B015B36A3489EB5E5F23D91C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2795A0D0324F480BB8DFB6A6",
- "extended_signed_metadata_key_hmac_key": "7E6D28CE44770235208A4329A60EA7D549A808E7C337615A978C1EA7690877DF",
- "extended_signed_section_aes_key": "8E224B406E64CAE213697C079C8DF175",
- "extended_unsigned_metadata_key_hmac_key": "DB6E019E66EDD5E9EF6B9C381B5285AACD9079CB6F493CBE6AAC8FB650118B03",
- "extended_unsigned_section_aes_key": "A6146EFC2AB565CBD5B7FBE00D60F598",
- "extended_unsigned_section_mic_hmac_key": "86614B3CBCFD02B2B72C3FEAC0F5B85AB077DB8841BB486EB65AB8FA25CFD28E",
- "key_seed": "9A585D88ED07DC664B26151BE3C47DB75E9AD705BD919595E3EF7C51BA460B74",
- "legacy_ldt_key": "ADF275A4109D6239C3BC95D4FCAB9F06D588CE37D5C259F5409575B4B6952CF8DCD3F7C523F7633661B8374213AB6E363C4A2FCA0071937A8D16FD7EC97DEB35",
- "legacy_metadata_iv": "EA0FE38503FFF184A962FBF9",
- "legacy_metadata_key_hmac_key": "AE2ACF718CB49C897A5889092B73F0D847C3E70B714E728FF710B6A172CB167F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "56CD",
- "expanded_salt": "32CDC5D1C144B1A1B2EC8EC411CCB589"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "970A2AEC3BA14068F1E9FD0BDE25AD33",
- "legacy_metadata_key": "776AAB58C10561108B62F23A2170"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9EC37A35E68488D0871DD3DE09542F23",
- "derived_salt_first_section_no_de": "D84B6C5C754A4AA83971D482234C2E36",
- "derived_salt_first_section_third_de": "BDDEF64914BC84EEB1E6615C22ADBBBE",
- "section_salt": "4C297971E1F4C7DBF539F2618454B519"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1B2DCB6E5E1EA1FD30D61BB9",
- "extended_signed_metadata_key_hmac_key": "9773412E28381931883DC724C4A349E47F7B192B809167945E3A827A9D6DE4A3",
- "extended_signed_section_aes_key": "A41F1BA2EF486C030ECC0B614F639377",
- "extended_unsigned_metadata_key_hmac_key": "EC678C856B7D90652DA43660CE1B35FC5F5F97E32C6B4AE0032FCE4AB7EF077F",
- "extended_unsigned_section_aes_key": "A7AD0677ABEA6B61EE0E5C37463B070B",
- "extended_unsigned_section_mic_hmac_key": "2AD791AF3367E37B16CBD7DA4B4F5C5F401B39AB80B973CA007971B0179D848E",
- "key_seed": "F8DBD5F34B643CB3242EB579203DDDBD2C6B37E6B2B69A5A1C8A848A92468E70",
- "legacy_ldt_key": "150D57234B654B0C54B82C7034DA6207AE4557CC0DD0DAA60E8C9E3FFBF46CB4210DEBD78AD29537FAAB4080505E098C500FE8E27AA9A25E1CFBB7A773953863",
- "legacy_metadata_iv": "2BC9DC136A39C86D4BA511A2",
- "legacy_metadata_key_hmac_key": "E969C028BF2FFF313D9FBDBFCCF6F8BC2B8CD6DB1A8DD53C7643016F9016C751"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B4F7",
- "expanded_salt": "D4F36C9FEB92E28AEB8C135AFF37135F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E89169A0D4A2BFF44645ECFED21C571D",
- "legacy_metadata_key": "14A5A9E7F73E9575E6947E804B53"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C4C12B15464E1FA5D630983DD87E633B",
- "derived_salt_first_section_no_de": "03B54556BC78B8F3C0271161C9E9339F",
- "derived_salt_first_section_third_de": "7B835B002B90F8D33CA2F75E394D3E3D",
- "section_salt": "AFB178B3B0F660560999BC0772EA0A96"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3C250185024AFCA15F167410",
- "extended_signed_metadata_key_hmac_key": "13F3EE71D139CFB8FF7FE1C8873161AC360CAAD2D858EE18649249214A5305A4",
- "extended_signed_section_aes_key": "9DA82D351C9FBCB0166F629AD0F07D4B",
- "extended_unsigned_metadata_key_hmac_key": "BBE7C0EEB5324AD2EA473834A809C272428B169F781500DF4B573D8C0B4A1248",
- "extended_unsigned_section_aes_key": "3736F54BFAF36C7EE8541CF3A4FBC569",
- "extended_unsigned_section_mic_hmac_key": "5D7396757294CBBDEA8D142C1FA070F35EA1C4FF675D9CD05DA789E1567CCF06",
- "key_seed": "55A286B0D54453E10F13140D9E42ADEDB2A66852DA5E71F9587C2CA48F453E8F",
- "legacy_ldt_key": "5DECC86BF34225058F2FE570490039EC7693E4E8C050A024D2D4C3608AF29C809B17FC53CBE7FF61E6676B45A9B0496F690FFEB56DE176DFA448A7D86A0F8514",
- "legacy_metadata_iv": "32F855A76A00C1A839CB13A4",
- "legacy_metadata_key_hmac_key": "131D9CB50CA52E03C82D89D3007581C0EEF2D3713771369A2075CE8E466C0F40"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BAF4",
- "expanded_salt": "82D266732B882A183E25ADCC89BB864D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F3773A5CF1496A0EB36B874CF9DE3BE0",
- "legacy_metadata_key": "F0712358172DCAE9F0CFB21D7C30"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D92B704B929792B44C7BBF9F9E93B757",
- "derived_salt_first_section_no_de": "A9F2E526D36010774042C74ED85FBE37",
- "derived_salt_first_section_third_de": "55824DE1FF732C4AA49194DE6011EB3C",
- "section_salt": "7B595670659C5E3162CD1E56CB4CC405"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A775444AA5336BF655EC9106",
- "extended_signed_metadata_key_hmac_key": "E2B18309CE1D4F21417E85B6C170316102C49B052F13143E33D1213429A37B0D",
- "extended_signed_section_aes_key": "FD191754A32959611279A02CC1B5002D",
- "extended_unsigned_metadata_key_hmac_key": "96ACE49E83AAEC1FAA49A7E585C370B6D77448A8BA0D2E111E9D71D6EB5443FB",
- "extended_unsigned_section_aes_key": "64C5B29A7A67C2662C678EC2BBC4F704",
- "extended_unsigned_section_mic_hmac_key": "F2B17690AFC0B6AD5C5C46F88C39D1E493DC180A44B5D078E90BF3D6B37E1100",
- "key_seed": "F16D7F8A686D42ABE159CFA2BE1190FD2643A97EEE5ABAED8FB1FBBAAE749EB5",
- "legacy_ldt_key": "689CF407B515066555A52C8E9E562249563D69E8C557BC063F58F08BE8CBCA78F5211348E117ABAA6BDE166806ACC6D9F75EFA838688D6B5BE32BA31C7193C40",
- "legacy_metadata_iv": "D61EDD84F24A58699A0F2AAF",
- "legacy_metadata_key_hmac_key": "20755EED3917C8B7190DE71206E1D27BEF4C0D00F19B8946A194ACE4A18B075F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "694A",
- "expanded_salt": "6F8909FE586813DDB058F6A17B85F454"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A34FECE03C24A9AC9B79F3AFDBD9B40A",
- "legacy_metadata_key": "06C8068A4F22C551AF2998D936A0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "223D21E99567325E43A6A76915C5BFB6",
- "derived_salt_first_section_no_de": "9716A6BFDFCB2D91DDD5F504DB76D2F8",
- "derived_salt_first_section_third_de": "98EE3580AB9C8993D2BDA4ACBB7D18CA",
- "section_salt": "A3A2109DA07BA075EF57D139DC85C53B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6DD63AB8FE83411E96FAB143",
- "extended_signed_metadata_key_hmac_key": "6055072302B57E4A3EC4E488E92CD6E71D0FB6CA321EA933BACDD31127A800B3",
- "extended_signed_section_aes_key": "91E85568215FEA000D9E2B9C6FF475D1",
- "extended_unsigned_metadata_key_hmac_key": "5A32BA1895BCAA7D925CF9BC3747A7C2215482566B9DAA8621064654BB0F8F2C",
- "extended_unsigned_section_aes_key": "EF4E042C58E3F919307833F906DEFB7C",
- "extended_unsigned_section_mic_hmac_key": "FD6C13310AAA647563B14F2AAF0179331862764668514C86E38E7DF09DAA19E1",
- "key_seed": "4720109EF1F22A9BD5E3D88054BE24729B9CD5E94C80952046633F65E11DD188",
- "legacy_ldt_key": "3C7BCDF190E340CBB6153E7BEB1A45E177C18D8FCE9A48D0140E4A38FDB57F3F82E06960B6870DB792BE178129E283E17756114F560280A45B6DF4C70EE73DBE",
- "legacy_metadata_iv": "0D6E523583BF7E7CCDE49C34",
- "legacy_metadata_key_hmac_key": "4F96D75D0A76AD3C302271FE640845CB509B0AE2FD4CA01984B54E6DDD78F7AD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FC2D",
- "expanded_salt": "7DA67B6F9A983DF1C8981E513AF1A896"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "596D4F4D5E17864162648E6B05FE738C",
- "legacy_metadata_key": "DC61861FE86C8FBA0B1B8D72BDBC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A905B8C634D96F5D461AA7E6468D3EDB",
- "derived_salt_first_section_no_de": "78A345311F301640524A8F1E6FBF816D",
- "derived_salt_first_section_third_de": "D6B1AE5731DA8BE938C993B728AAA93F",
- "section_salt": "DDC0F27A5F282DB1427D7E8D060074A9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "49AB83BE4584B4EF148AF3BD",
- "extended_signed_metadata_key_hmac_key": "1874D61ABA9CBDA0F0EEC4130A38FDACBBEB93DC1A4F5F0B71C2B0FCA7E35051",
- "extended_signed_section_aes_key": "DCB8F0CD8C498642E774689B2928B994",
- "extended_unsigned_metadata_key_hmac_key": "F605A4130593AB28C127974A79C56B436B1FB4854865842764E91ECD3FFFE272",
- "extended_unsigned_section_aes_key": "016ADC7A4F9164631B97ADA72B9283A0",
- "extended_unsigned_section_mic_hmac_key": "05FB9B8B390BA0F5EF5190E04769E4EAA000BBFB6528CA1B429E88E3AEB4287B",
- "key_seed": "B2887607DF615921950FC853144FA354FD2D6250BC42F2894B2628D5A5D5D2A6",
- "legacy_ldt_key": "8F743EBD0469298AE582AB3815ACCD6689E6CF4BB3948321789344BE84B5447DDBE062123C83952FF5719E781311A0187C636EDBF2DB551695320588896220DE",
- "legacy_metadata_iv": "AC92C24055510C42B9007E04",
- "legacy_metadata_key_hmac_key": "DCE71A6E7D9CB24D6B961A804E59BC96A58368FE23A497405706D2B51618ACEA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6000",
- "expanded_salt": "F23D7770F92ED7206D5D75BC2B1387CA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A5EEC2BDE2CFD092246D7FC0020017BE",
- "legacy_metadata_key": "E076FEE90C9F2EF4C3F52D7D7440"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2570F3F123D8BFD2AFE7E3971670E1E2",
- "derived_salt_first_section_no_de": "67F75E502B73675CB5B85D7922DD016D",
- "derived_salt_first_section_third_de": "021E30F8ADEBFD2E3E89E1F16047FED4",
- "section_salt": "76839F16FD67AA191A53BFBEF715C815"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "350D3B6A952C7EFD8E70DBE2",
- "extended_signed_metadata_key_hmac_key": "80C5611AA3B70EDE4E6E73B37D22664BD36EBE861224A2BDBBE50F767B6A3DDB",
- "extended_signed_section_aes_key": "7C3986780491447AC68C0237041D13D6",
- "extended_unsigned_metadata_key_hmac_key": "0C6FA11B8C02839B8EEC76C29CA5C9CB2529A3BAB23801D34CD8768F4FC588F3",
- "extended_unsigned_section_aes_key": "A75BEB8FED3227B8121BC0063F1FCF46",
- "extended_unsigned_section_mic_hmac_key": "F110BD01213B2788AFA57A7D301FD9937806225A58ABE3E20F530574B702D4BD",
- "key_seed": "C114989B0029EA08CB6B50E4E43203BD3BE4F5775F7092354D6031C42F04D051",
- "legacy_ldt_key": "D349A02CB56584CBC84994211D4B8D9BE6B0117EF0737DE21401CB94A517B71932B95FEE511888C6EA14D7BE899641E50DA47164A88035EEB1AA15700F3A02E2",
- "legacy_metadata_iv": "78C0F7E794A2033135C59F95",
- "legacy_metadata_key_hmac_key": "D1B1B19BE0996EEB783650B975A18A6AF3EE9212A16E021A675104D2585CA269"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2BCD",
- "expanded_salt": "7ADB55CF17FB7C17D726F29E46A64296"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0648FF54CCECAD37C32A8D2B4713F1AA",
- "legacy_metadata_key": "162FABE74D6B92C24687C3753DD2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E8C0EDD9A70233A64F8BBBFBEF50F9B7",
- "derived_salt_first_section_no_de": "1B81E55F6E43E9CF6B1A0A9A703A5768",
- "derived_salt_first_section_third_de": "915A3EEB63D17A00A2D21126E14D550B",
- "section_salt": "A79720E04D2917C4EE18F69B11450D71"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "54F47F7418DEF3A75A6C6A04",
- "extended_signed_metadata_key_hmac_key": "5E08BC9D6EFAA2DD87D1ABDDCDCD76DFE1B86F2C653148D8DC2451C21CECEBC9",
- "extended_signed_section_aes_key": "8FB0CF3B3A010DBC25F98FE50004ED00",
- "extended_unsigned_metadata_key_hmac_key": "25A911EC96ABD64529097A0F875419D487A223AED48DF0C81CDC7132ECEB72FA",
- "extended_unsigned_section_aes_key": "CC4FC3CB9461B02B6C0E679B004904C2",
- "extended_unsigned_section_mic_hmac_key": "039658164F7FEF32A939A274633C27BB112810E9C7A04C2CDF01D40472327262",
- "key_seed": "415AB0AB12A3E41853EEED229E8419B343CA3D5183DF1FA73EF572D5AC9EB986",
- "legacy_ldt_key": "EA4B6AD0B372C349263361D7E872900B63E2137C48C0D40CE64C605CBC1DF1E1E925874FE9DF4593D15575B9FF8F6CAF8C3528DA9EBA0F6775AEB69BDA159524",
- "legacy_metadata_iv": "5AC521726CD7977411CC1EAD",
- "legacy_metadata_key_hmac_key": "40A4A903E4A30ABAE444C5F433771541552AE158B39B2E68A4A4D10C064D3152"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0A5A",
- "expanded_salt": "FC9D251FB70EF819BC78235EEEC4BEE3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "61B38001EF30B89238A9DA5DE7F18649",
- "legacy_metadata_key": "6E15825D1A6FCD5307F3098583C6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FC18D82A2D3A50BE2180DE0B3890F430",
- "derived_salt_first_section_no_de": "DF3A247C41BFD15E7FA644267D0A2EC6",
- "derived_salt_first_section_third_de": "4C69EB370541F250B24DCCB906C4AC8D",
- "section_salt": "12E72B0FD3A9D857629777ED1E842611"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C2B44F400B035B2C35E1F942",
- "extended_signed_metadata_key_hmac_key": "3BB5B12566928C187DE6C61C24F27D811562D0610334AA991DBE672D34D8B399",
- "extended_signed_section_aes_key": "486E5A64A258795F07651F6AAC729242",
- "extended_unsigned_metadata_key_hmac_key": "C7208A1CEE3B4F058B4DE7D1D8F864544799E7D7725FF30E2177F2A37EB8A40D",
- "extended_unsigned_section_aes_key": "B7CF47A17B025D8FBEE976C91655BCC1",
- "extended_unsigned_section_mic_hmac_key": "0CD787E3F219EA8AA91FACB62528618C67130CC65FD9F25FB5E6783D70F9314D",
- "key_seed": "B8886796E93B955CBF5FB2DE4838EDA861FA4479F2F58849C416521461D07ECF",
- "legacy_ldt_key": "1257AFBB7C8AB57C0DB494DDA49FC5008A16C498856635236C339701E42C0DFC21FCF0734B45AFFAA61FB6E2AC51346693A587454A7084F26AC55BA489D6FF5D",
- "legacy_metadata_iv": "FDB4E0BF13F565B10255FF52",
- "legacy_metadata_key_hmac_key": "AA626EBF09C14126C5A1E6DC1A7421942813ACF74E1DCC85875AA0B4C91A86A6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "52C0",
- "expanded_salt": "821522C907594B1600FEEF5A40F95DBC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B49C9B26902B6FD6CD162CB7C2AF4DB6",
- "legacy_metadata_key": "2054EE366FEEFE8A487CE6F7C143"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5FA6C0C9D3D32A67B45A4C06DFD397CA",
- "derived_salt_first_section_no_de": "8FA21BCBA9DB3A9B67E1A7357D5180EA",
- "derived_salt_first_section_third_de": "F384249D228A1E5A7C4F2765B993B566",
- "section_salt": "C8AD53FCC7CD547ED5126546490E79B9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "42112FC5E154BF78050ED542",
- "extended_signed_metadata_key_hmac_key": "F2EED60867CCC22515A455C99B4CD279310AFA9433842901064A96AAE66DC1AA",
- "extended_signed_section_aes_key": "CB340D2AE087AEE98638116A4EEB3F04",
- "extended_unsigned_metadata_key_hmac_key": "5F6A4657A2024DEA7E5C6195FD04B14F47FB38D0B44BBC437F86D018CEB964D9",
- "extended_unsigned_section_aes_key": "567E3505F89AB3A90326FD6BC66216B0",
- "extended_unsigned_section_mic_hmac_key": "347E4FCF88D6D94DF49C3F32CA889FFE09249C8827C79B6D11B76C8B50EC9A1B",
- "key_seed": "C71A75552670938D182C1A784CD0C2CF204C883DB64B0EDF9F1AE87B82E5BB5A",
- "legacy_ldt_key": "40D28D49EA74857FB9B2BD6811BDF5BEE79B3B525E3BD1E8CAEE09EF1318254E15704D5AF65A72C9B2F08A87ABFE6C4DFA66CD0DBEFF4F61F8242CAFB5FED246",
- "legacy_metadata_iv": "067FE30170AE379BD1907D28",
- "legacy_metadata_key_hmac_key": "7D01287A684545E351D6B67277C398A79971683D79765E10FD2A80C3A0EC1968"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D3CA",
- "expanded_salt": "357992677113B3CF46F8A6E1DA9A9B2A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CCB4A40D0CDB3BC98D2BED0531BDE0FE",
- "legacy_metadata_key": "E64EDA3C20D236A208EC8F68C38E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "EDDF6C7760B7222E92FC8B547AB86521",
- "derived_salt_first_section_no_de": "ED0BC8DF705894D47F3231AB8A8BDA19",
- "derived_salt_first_section_third_de": "01AB0FEB998A8E73D1CAFA2E80ADD51F",
- "section_salt": "073D94870C350EDCCC3BC3F9EF94B628"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A08F097F8267AA2399B7333F",
- "extended_signed_metadata_key_hmac_key": "DC2ED8D3DC105430154A22C45E10A77E39AC3D6214F2FCBE92426E1E0D2ED50B",
- "extended_signed_section_aes_key": "5A30F6F19FC5860E3E26FFBCA9DDB36A",
- "extended_unsigned_metadata_key_hmac_key": "3726571DE178C585FAD3E574461F4CCC3487D7F052DFE9698FA5ABC6A81D3551",
- "extended_unsigned_section_aes_key": "431977DC4FB746252D479B5680E25FAE",
- "extended_unsigned_section_mic_hmac_key": "50D696CBE744F013BAC8FCA9CBC488CE68B24D980023756491427866FFAA752C",
- "key_seed": "2E7FC0CB26F51E30F7B2D2C14B7AA59758CCF3009071AC7D10AE78E1270AC2B6",
- "legacy_ldt_key": "CC924B56FB4D07EE4D2C1A1BCFB8C850E375D10C1394DBAB82EE3A1DE4C9B1432096EC92E025BA3F62515058A62095A851FD6A5719B140DBD0AFBAF9AEB2DD1B",
- "legacy_metadata_iv": "904388317ABD1A23484BF3B4",
- "legacy_metadata_key_hmac_key": "BCAA799522D09F373AC99717B24AB0707F84389AC90D21DD785CDF11813981EA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EAE4",
- "expanded_salt": "E6CF93DE67738F714EEB4AEF2E73D117"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0C4B51091D187E329285C09676EE1359",
- "legacy_metadata_key": "8A7B3AE8E96FA76244D5CC637877"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CC8B3F1E24D8AD41E2914AAE7ED649CE",
- "derived_salt_first_section_no_de": "9EA50BD53E7B57073C877A4D878C3A07",
- "derived_salt_first_section_third_de": "BC32055FF94A3C48C12C00DA1476E9CF",
- "section_salt": "D8A3637AB63339612CA041994C1DBA46"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "276FA16FD8F9624E17ABDA9E",
- "extended_signed_metadata_key_hmac_key": "EADA776EA19EEC05E48D15D6AD4140D58E62D93A2325DC00895F666ADABAA782",
- "extended_signed_section_aes_key": "559A30932BB1E5DCA8254AAEB8D23545",
- "extended_unsigned_metadata_key_hmac_key": "173EFEBC06B3586F6B6F8C368201EF258FA4E5648A4D0A0A6D9C1CBBC29671C6",
- "extended_unsigned_section_aes_key": "9362E62E6A9FB9E9AF7BFA62873E3D57",
- "extended_unsigned_section_mic_hmac_key": "9C14DCEDCA8E61EFBF775B8799D66CBDE853CB2CE4C3C10B1183224E0BDA83B9",
- "key_seed": "9EE1C405BAFCBA6946D6A165B0ADD77462BE1F2338F02DD418ABB71B09916627",
- "legacy_ldt_key": "AC7C4985EA533A73992136AFA67CE3E3DF4894B00515C858D803D6DA7C5E0955C139F0E3CA48700F8A3D72C6A6768DF5EE0982ECD0F291175093D017E3F1F41F",
- "legacy_metadata_iv": "705C597BF2D9790D1C2E5196",
- "legacy_metadata_key_hmac_key": "AFC1C540D969C17ACCBDE23BB7358DEF82730BF70022CD3533AA0A0502569D5F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "490C",
- "expanded_salt": "864516FA375E3BE16358B18441184A85"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "98FC5E6DAC24000FA90D0941172365D2",
- "legacy_metadata_key": "D4F4D3DBB567167129E174738798"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "24AE487632BD0FA3AB5CB1ABFC09FCDC",
- "derived_salt_first_section_no_de": "DB29977C3EDC749ECD5B40C8618B75BD",
- "derived_salt_first_section_third_de": "E794B56011EE217C8424C204027BD1C3",
- "section_salt": "1D5730DDFC8FBD0F823BCABF28E35074"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D3FC42D7438F7537898D2155",
- "extended_signed_metadata_key_hmac_key": "F079292620ABE0F8E16BAE27067BC4F2373131370F3C6FBC0FEDA4931DD7BF64",
- "extended_signed_section_aes_key": "4BD92ED216B9BD50483CCB8D8340365F",
- "extended_unsigned_metadata_key_hmac_key": "35DBE27E323237AFA90706EE26F77E1440EFBF610337D34E22168C9BDF1AAE4D",
- "extended_unsigned_section_aes_key": "F38EE66D8FC892A1F973181FB359AD67",
- "extended_unsigned_section_mic_hmac_key": "F4CEEEB085B541CB9245730A32888E4634EB401DF27E0FEA4D8F22CFF03ED711",
- "key_seed": "1C40E3FC89BFFF5108793EDDFCCBC75FAEFFCC44153C8F7907A6E7B77AC05514",
- "legacy_ldt_key": "214AAD1B700025DF492E9746E789C9506E25F39A77B73CDBCAC202CD0DE01D92772296CD02FE8916FAF819FD7D417CFE1F59958FDB32ABAC7BF76E68C156B02B",
- "legacy_metadata_iv": "CF2E38CF28B7D43338682FE9",
- "legacy_metadata_key_hmac_key": "9B8B8ADD512FA6D9789183D98AAAE0090C6E95DB041D6F54071DA0BD0B9784D5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4460",
- "expanded_salt": "38EDB50A04AE897903D3D3803BE4A2F0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E0574A6F912CB4C3516F7D30DFFD43FA",
- "legacy_metadata_key": "52C22B5B1A87887583F90E980F81"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A0D35293FE867B3855C52AD24FE6BDDE",
- "derived_salt_first_section_no_de": "77F3D919704008E8A7D69A44B868DE26",
- "derived_salt_first_section_third_de": "93D350E19E252CB4C3BBA4806E1B4B79",
- "section_salt": "B00442997497F3D8920943A86FAAE41B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7B1F9D3BA55579AFB4931FF1",
- "extended_signed_metadata_key_hmac_key": "25EA468891F3F3D07BFA5DEAB2C0B60E6AB5C33063FA39A7040173C42A507985",
- "extended_signed_section_aes_key": "45C18E398C2ECE48D9875B36F0A6F598",
- "extended_unsigned_metadata_key_hmac_key": "6049FAD4149FA62957D9F8A149D4D6822CA366F8D7FED4015DFEE1034B7B223F",
- "extended_unsigned_section_aes_key": "FA784B4B78E32D02C239FC918CEC2972",
- "extended_unsigned_section_mic_hmac_key": "0FB7610702A08E3160B2B3CB07B2B2E1168CC9416F8683438E16EE857D4EF0E1",
- "key_seed": "27132A5108CEF57D1FC1D0643CCABC516A22EEFDFBD9053026D1570AD29D142E",
- "legacy_ldt_key": "7819927C428CAB599CEAEFDF42DF92868FEA51DBFE72080825FE5B919013711E4283168B592AEA1905CE2F52C783482967EE9F87AF8D2F25B79A8EE3934FE8AE",
- "legacy_metadata_iv": "8C98AB754DB8BF5BE1AACE50",
- "legacy_metadata_key_hmac_key": "B63F90A405E33F61B8BA2C0BE95E6BED1BBA352E14A62D81722C624B1CBD06DE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B610",
- "expanded_salt": "72C6BF203EB196ABE9E1A94870B392B6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8E91B8A6B1C36E0C765AD78688F9B6D7",
- "legacy_metadata_key": "91B4330910EEBFB176F7FBD6B146"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "95DD3026670DA961E4B0231104F52B2F",
- "derived_salt_first_section_no_de": "1DC95D6C7F451B785ADD152B965929C8",
- "derived_salt_first_section_third_de": "D91FC9B727EECBE48F7CB3F4A163266D",
- "section_salt": "0EA245BC3F5D52968425883648AE0CA6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "54B4D3FEF9075641D2A0631D",
- "extended_signed_metadata_key_hmac_key": "03CC6E54D1998F8352DB7673782515883A73049FF7B30F090C88526DEDB34191",
- "extended_signed_section_aes_key": "12FB909745C63B3B3B741188765379A8",
- "extended_unsigned_metadata_key_hmac_key": "09D0F7108BCF4A2C09CF6BE05D602214893630750F890C10C18F757488B0CC5A",
- "extended_unsigned_section_aes_key": "687635C0E577E0B50BC35185107CBC5E",
- "extended_unsigned_section_mic_hmac_key": "8E0AF3C1AAFA640E415C7AA76C8CF74DBDE188EF6E78CA8DE69758FFE9A461AD",
- "key_seed": "3AF52B0D6B088589606E8B566ECB75796DE060FE5C2CFE6C1F407F82D95C6B03",
- "legacy_ldt_key": "59410A10BC02B62B620DBB59336B4FF4A26FA310D3EEF6980B962F6C08CBD5FE8858C1371AEF775ADCCD329C64E62C3F12505B5C6C90E724A69517AE3A2FA628",
- "legacy_metadata_iv": "B8528709DD4509412FAA82B0",
- "legacy_metadata_key_hmac_key": "A187B92CB0F62F7F9EDE7FC3C464C0C75E14892F02DFD7022F90A8E3F79596B0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3C24",
- "expanded_salt": "095C40CF42BBC4AC941A614880E4ADC1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "47BA847E89B33E1DF01FBA35EDC1FC21",
- "legacy_metadata_key": "1814B47FFBB055F52AA75CCE70D1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3B883E6D31EDAD1ECB0D9E022135A930",
- "derived_salt_first_section_no_de": "A2E15105C73D453C6097D72BA6061EBA",
- "derived_salt_first_section_third_de": "E2BEF49300FB3DC8B3C10B411B1CF2E8",
- "section_salt": "FD80E851B6F978ED00A81733947EE919"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A58BDA7E348CACF8FF3017BB",
- "extended_signed_metadata_key_hmac_key": "2EF6F0065EE99FBE81FD64F8E0FA242FCCAABF2B64F6EB0D811784DA688567D8",
- "extended_signed_section_aes_key": "98AC9560253D8735AB7EA9FB6ADC7D3F",
- "extended_unsigned_metadata_key_hmac_key": "62ABE89B16186FAB21BAD391B58F465D73E1B5EF6B7830A69479CBAC6F879898",
- "extended_unsigned_section_aes_key": "707DAA10CB568CA6A91193E50E03E17B",
- "extended_unsigned_section_mic_hmac_key": "7607A40E44EA7C62C13F8B40D56A60056BAED1C66A87C9D51B573CA648033532",
- "key_seed": "ADCED2CF95B9AF369F8BCD5E5C13043AFC97ACA6FB240519AD1A2B96F05E8A7F",
- "legacy_ldt_key": "1320DC80EDC81DAF15DCD97C3E059FE4BDD5E2F4239DE6E59A6F7FC641A15F5EE02FD5B6D216619E3A7D1443E3EA141AFA8D61F16B038AE5080089CF9DAD7294",
- "legacy_metadata_iv": "AFEC7DE00969DEEC3E9F80AC",
- "legacy_metadata_key_hmac_key": "0687ED92AA395C5DF262D530F2FDE685C4595E5250E9823110CE75983D109772"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7A0D",
- "expanded_salt": "4C04BC714DD4C4229BE6453D36F2F12F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7500CA08936F29881FE7E07E71E48D97",
- "legacy_metadata_key": "C981CD3D7AD2DDBE05BEA8198BBA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FBDF661010D223EC698A506265A1A598",
- "derived_salt_first_section_no_de": "BC069699037EFD7785D8BC43D15CACD6",
- "derived_salt_first_section_third_de": "5605A2C9D440CEBFBCDCE59313D60A75",
- "section_salt": "B0083CE7CBDD6661920A8A131412BE92"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0CF57C692FF3DE4956D6B789",
- "extended_signed_metadata_key_hmac_key": "B936F60864FF7A440B57BB3716EB0CB074CC725FE5CFB63708B0B77B53F108F6",
- "extended_signed_section_aes_key": "D821BE118E921DCFF5C2EAFF46C059CA",
- "extended_unsigned_metadata_key_hmac_key": "E81951ECCF5AE3ECD8FDE2CC0B0170E2598E0552552A8F2863976FCF2128CB01",
- "extended_unsigned_section_aes_key": "55314F70EDC917B29296081C073B89C6",
- "extended_unsigned_section_mic_hmac_key": "9424BF7D868D140EA0D8E836D934E59B129E2170EB39F957FF415C66D5FCB54C",
- "key_seed": "E02C486D4B05047B34053AA5E249DAF4DF09EB7E25C17AC2117A561F2A19887C",
- "legacy_ldt_key": "9F7F99B24D5F2AD65E789FDAD7CD0212DCE17FDC2323F8D481B7AB2A8C1B7E49132311F1E065C581B98C4A341FD5438AA828E8B4B95118B3B7DD025CC7DFE4ED",
- "legacy_metadata_iv": "0EDF31AB8727EE7BBBC5D4AD",
- "legacy_metadata_key_hmac_key": "924504E02298BC40141CF9FE56E9D53C411AAACE1D0F3814BB564DD3FB103E86"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6C21",
- "expanded_salt": "D402A97A6288D913AC63FB948177464B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BCF8AED41084DAFC71DA9BBE74A05B4B",
- "legacy_metadata_key": "A8368DC8481B91D1ABD51C77B189"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "59CA3D9530223D66CE3BA6D3F64E4B18",
- "derived_salt_first_section_no_de": "B8A27AA8DA1E9B53B9DF4E191D0234EE",
- "derived_salt_first_section_third_de": "B8419FD795CDE108F807818059387F72",
- "section_salt": "0159C5E78990603FCE0ABE6842123919"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "EDC1F3534B78B4BFDD4DCB0E",
- "extended_signed_metadata_key_hmac_key": "9E82C3C52BCD20536C4497BFF0F65066ACF28E6D6043A6A1D39029EAE9705DBA",
- "extended_signed_section_aes_key": "11B52A59AF9F18E413EF67A3FE739766",
- "extended_unsigned_metadata_key_hmac_key": "76368CC20604634272EEEBA4E00ED555E9B5A707253C1263FCD81044B7F29990",
- "extended_unsigned_section_aes_key": "842797B97A592D78D49B9609531D6B9E",
- "extended_unsigned_section_mic_hmac_key": "9CEF4512ED01516026776574AFB7B731714A85D5B3F64F41386473C9C9764972",
- "key_seed": "8BBF4EC54262E2E5F4109696282CDF272BF0784E42CC37B56C97417BFF6FAB36",
- "legacy_ldt_key": "7C1F780826E55848262DBA74A890B936EB087F603043C8AB6790141FC9FA94014FEB97506E4285ED4E9D0986BA0696B5D700B5DF7FF0C34170DAD6609F32DF3E",
- "legacy_metadata_iv": "AAF7F8C9BC7A5924B33BDB5B",
- "legacy_metadata_key_hmac_key": "E5F297916EBEC4E76B17A26C1AE2313F4E56E9FC501C27EBFBEE58048CE0C2F7"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CD46",
- "expanded_salt": "342CFB921DEBC75E9EE6211835813186"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7403F4D049A2223C6E51B410DBB2BB61",
- "legacy_metadata_key": "7264C652AB0948D2B5D651D9C71D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D199EA13EA00DC53AF98B1AFA250A422",
- "derived_salt_first_section_no_de": "1AC3E36CFE47562B0DF917BF82F8C22F",
- "derived_salt_first_section_third_de": "E7BE333FE3E15D8F74E74B3201A6EA0C",
- "section_salt": "57A62620EF9A0881F519A86399D750D7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DAE16D825D447828F5652540",
- "extended_signed_metadata_key_hmac_key": "7F2A5E599057EFA6F0E50465199A40C5E831005CC7A7D7B34624AAC3E5523DCD",
- "extended_signed_section_aes_key": "B2724109C1C0A487C484339A15F7BC63",
- "extended_unsigned_metadata_key_hmac_key": "70EFF0B0DE536BEE14A4088792107067237FC2CF2CEEB081D18E09CCC5C8D0CD",
- "extended_unsigned_section_aes_key": "D5A49B2F5F32853B446644CE8844DC60",
- "extended_unsigned_section_mic_hmac_key": "A9622F49D9FDDAF09E88ACB1959608EAEBA962A8DEBC9E21B49906088BCB1764",
- "key_seed": "8E2288BF2FA9535D415FA532E2B039746DF435320DAC1C466319D85498D39FC3",
- "legacy_ldt_key": "327A4333AF21E6FCB127C66A4409D08A25D03A668DE8D20F474B4E5F6A9A5F0039D0C04FB005B00E71B3DD9799701F248EBD2C1903D9C00A374DC31721C1665E",
- "legacy_metadata_iv": "613DC290A1AA322BEF4AED6E",
- "legacy_metadata_key_hmac_key": "D7B0EE852F19E6199CD0AD176795B3BC49D1A24673612624281406DF7326777D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3240",
- "expanded_salt": "C4DB78718E44A4CF5FA506DF934D76AE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1A494995EEA758C954C67F959D7199BC",
- "legacy_metadata_key": "A93EAD4E094A8EBEF68F2F39FEAA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "552018EABD4689E4516E9F723E3AFDBA",
- "derived_salt_first_section_no_de": "C0FDAF3CAB973325249D9251D5F23D66",
- "derived_salt_first_section_third_de": "E05E286758A8854011E8A994E454DAA6",
- "section_salt": "12F433D537CC92AFAC6FB2433B2A5295"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4CB84ABBCC969E43962BEE9D",
- "extended_signed_metadata_key_hmac_key": "830DC22C3AC31F34C96A6FB8BD7AA29A4DDA1F6E69AE4E9AFCB87A5D947A9CF5",
- "extended_signed_section_aes_key": "50BD5A18895EFAA5449F9332EEE8BBAC",
- "extended_unsigned_metadata_key_hmac_key": "69E82F89AB4E21DA356148A220AAAE5AADAA7A7CE0AB652BEB8BB30AA9CED9D1",
- "extended_unsigned_section_aes_key": "EBEF48A44F535469E3757DC3F0BC4259",
- "extended_unsigned_section_mic_hmac_key": "CD9CADEA760DC58D5802A4734D2BF4D262FE88769B925AC3A5C8B38FF937FF07",
- "key_seed": "4AAA7167A67638F2D2279F4A3212F26C54BFCDED5110393F8F5EAC5C03CD49DC",
- "legacy_ldt_key": "DCC953C2AA8AAC51CD690EAAC0940865B1244DBE431F8DC0CD9673F19AD931506678F80F6A35D90090F9BA3AD2384399076E1F33DE4DA1FF351518162577A53D",
- "legacy_metadata_iv": "1846C00204904C1A6C7748D5",
- "legacy_metadata_key_hmac_key": "23BFAC968461DB23D2830C4F8DB37D944EDEB8B6CFD510B1CA088ACDAFD0BF8A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0850",
- "expanded_salt": "90DB9C9BB5D8B71A2F5F5460F9917C93"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FDDD4C8B11B2A913D43F384003C0C71B",
- "legacy_metadata_key": "D03ADB8984A324E4A3BC1E19A8CD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DE45882A6D2AF8EB7CDD85A78F94734F",
- "derived_salt_first_section_no_de": "CB745C654744E3CA5BCDAADFC5B34383",
- "derived_salt_first_section_third_de": "76A083C5156085638C7BE8AD51342BBF",
- "section_salt": "1818D5E1FECAF23106EE2F9D67A54A1B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B0F9DD30FCE0E7F4146032DF",
- "extended_signed_metadata_key_hmac_key": "0FBC78A9710A2E4E37ECDFB766BA29DA42A7ECEC640608583988920873B83E04",
- "extended_signed_section_aes_key": "EF49A104FEFF7ED46E89C700F5D36A86",
- "extended_unsigned_metadata_key_hmac_key": "8F42DCFFF9CC5938BA40CB372D5E4F20FDE23BCC23E7DD4821E999CD8E8BFFDE",
- "extended_unsigned_section_aes_key": "91E486653230BA06CB6D8CF09E2EAD9E",
- "extended_unsigned_section_mic_hmac_key": "BD99C881CF68BDEB4C6B0D86A0115EE3EAED9522ED87BEF219F3F3EE4633011C",
- "key_seed": "50C38681A5427FD0A3BD3FFDE2DCD522DE66DDECBF9D9066F1880366A8D02CFA",
- "legacy_ldt_key": "8BB268F6217BE38181C626D624410C6B2831D611B7EA98E0435AFBCA7055D40DC2B085AC48C214F5F9123D5FBE9A8E04E6FC86F382BC3A80F3236056EDAAE39F",
- "legacy_metadata_iv": "0925C3D401628AFE630139D2",
- "legacy_metadata_key_hmac_key": "85CC1FC9AD3AB6B4B16E9CC1A42399F7FCA37BF93BC4E2998F885E85A4FFBFFA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A9C0",
- "expanded_salt": "FA5220FCA0A75BBD5C8044968E049488"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D588D73F896CC49375CD0B239DA29C70",
- "legacy_metadata_key": "831C84E4FF35DEE0511B0F793F09"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "350361F63099B9CA29B4E2E05E180C5C",
- "derived_salt_first_section_no_de": "6AF8CCA68B9275C89895F0D55DD87F0A",
- "derived_salt_first_section_third_de": "6C6825BBC2F09540D6432929197BD0D4",
- "section_salt": "62F456BE4D75DFBF5BAC77A1C7664F9A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B6E51A579DAA13003B8E4AD6",
- "extended_signed_metadata_key_hmac_key": "39DF3AB01B328F4483FA9E006BB79E22BFD68F12E0AB8AB465747111E14C8AD9",
- "extended_signed_section_aes_key": "B78222F070CBCBD502BB248E974602F7",
- "extended_unsigned_metadata_key_hmac_key": "89A80B4DDE8BD8AA7062994B551D8EE11A00A616321223FC2B6A275159B70632",
- "extended_unsigned_section_aes_key": "DDC5AD8CDB7507C2162EB4FA10E19FC5",
- "extended_unsigned_section_mic_hmac_key": "FC1B1BAD8DC451AF6853E20F36E49036C6CE22C28BB5F8034D5DC260064C8DB8",
- "key_seed": "344DE5D33F4234D5105DE74FE3B0203BD846A14ECECAE784D41CB9CFF0160721",
- "legacy_ldt_key": "60BB5B6D30696942832B9C9D35961D38BED55D4B5F32882D0862A4FAAF2D4EAD7D585DEBA53C88A8C37353E9F67DD7A0A5D76F2C4ED2B1AFBE5D2D08319EBD7D",
- "legacy_metadata_iv": "A81840A3D73B9E741D06DACA",
- "legacy_metadata_key_hmac_key": "88E217484532CB2EBD328A58A54C7BCD438647D39C419BF0D4E50C5AF0F1E750"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D0DA",
- "expanded_salt": "F15F5EA9046B8A00258C6CFCEA4682E5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C9CD46BE673D850EB4FC20BDCB4F74D6",
- "legacy_metadata_key": "C987061EBF2CED165A97545BF865"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D3F4B4A910DA0E4E75AC9E25893F38EC",
- "derived_salt_first_section_no_de": "7288E8CC23AAB78FF01B12FAB3EA631A",
- "derived_salt_first_section_third_de": "BF9956B43CA8958F40A4DB2640227202",
- "section_salt": "F424B9A4B50737091F0B04BAA846E600"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "28CDCF1D7B9B4EF8D55C5F2C",
- "extended_signed_metadata_key_hmac_key": "1243B779E233144B0C9FB2428705CE3744B08CF91533D6C7483506B8289C5063",
- "extended_signed_section_aes_key": "FD6BC9AB77EDC73998E0E8511C3021E1",
- "extended_unsigned_metadata_key_hmac_key": "F6E5BF95CB437D76B74356C0CF1A67348C35A125B56CBE040CA82950F236BB51",
- "extended_unsigned_section_aes_key": "2522E1C95EE3E2EE8C347DBEE83DC5FE",
- "extended_unsigned_section_mic_hmac_key": "20A048F49FCE012AAF21EF3260C0DD5F820C887C5BE503DF3ED999F749C04197",
- "key_seed": "BDBF1C13BB588936C53A413EFA85A15FCE531D42F140D8823A3E2F61DE6A7E5D",
- "legacy_ldt_key": "F0EA48ADF28901ECAC9333B400FB5C589494783A14954E9211350D8C09B45D5C27D665062649AFFBCC2DFF4E67C4911558933CEF7F1E7131BBB333D48AF5E6CA",
- "legacy_metadata_iv": "41A1BA54CBAA6F3D81CB563E",
- "legacy_metadata_key_hmac_key": "211FE3E14EF9679096E1E5B5FD2E6CEE6F66BD528A2A724E7C5209DBF9D43763"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C8F8",
- "expanded_salt": "1B6CD5C8CB686BF5C3F82EB9BA906321"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CF10277F2111739121846EEF2007310F",
- "legacy_metadata_key": "A45AC30B31D2A940A4ED6D354066"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A3031E038C62FEB49C40E9F08CB16FA7",
- "derived_salt_first_section_no_de": "58D7746F88AE01E7DAD52EFD48390099",
- "derived_salt_first_section_third_de": "ED5912C0613EA566921446F6DC669E2A",
- "section_salt": "A5F2991DE180BB08377BD47F14500A26"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7D63DDDFB97F061059110812",
- "extended_signed_metadata_key_hmac_key": "E60AAAF8E621B767474BDC94E685E66B290AB7D8A6EB59FE9D4D9F054C4921AC",
- "extended_signed_section_aes_key": "EB0F441A7532471A81573932AC072BF1",
- "extended_unsigned_metadata_key_hmac_key": "48A4E5AE552643DBA447D43956E35482D6FB8D9A85CFF58C181D6FBAC1CD9027",
- "extended_unsigned_section_aes_key": "562918503F5DEA5919C96027E26CE506",
- "extended_unsigned_section_mic_hmac_key": "C53B355889E9791DE4F29A658647A04B5D00A9E4C2B31FB91625224F7B0E718A",
- "key_seed": "9055852556BD789630D94379DE19A904D805952F6BD392F60A451AA5BF86F4F9",
- "legacy_ldt_key": "3B552253AE3A62237D3AF2140C907F5E8CE723393B703FB733E6134BF514512809597B836AB2E5CFBD219B72EBAA5C0658187AED01D97160C5519AF287EE4B59",
- "legacy_metadata_iv": "7086C6B1F4946BF3C2B53528",
- "legacy_metadata_key_hmac_key": "3803F26B5EB759984877C94EFFC7C8E074EC8CAE065D0234E1480378B04EA1A1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5EBC",
- "expanded_salt": "A2AEC3093D4CCE2AB0C0D9AC5651AC38"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AB90B941FDF90C0D8E467F1210C4D44D",
- "legacy_metadata_key": "01D27D74D405B6BBDAD3BDA5AC5B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D00A1EC84467CC12FA340272D04B3F79",
- "derived_salt_first_section_no_de": "ECE15261558E2446EB6790AD6828995B",
- "derived_salt_first_section_third_de": "8C49D41BD7B874D61B32E0D1ED5E8116",
- "section_salt": "E0DAB11EBC8CA5C63F91D8C49354CC25"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2ABE8791459A6C1B17CE932E",
- "extended_signed_metadata_key_hmac_key": "0F3C7DCCD0A462FB5F242FC4D58FADDD2EA5548AC2499C266013489958CC2B63",
- "extended_signed_section_aes_key": "09ECBFBB3A0CD2C5AD361601F5C7797B",
- "extended_unsigned_metadata_key_hmac_key": "021F8211A4A916D9107AD722CFF8857AA2FDE55353C864F5B69EFE3B46924780",
- "extended_unsigned_section_aes_key": "DB04DBF74B92F242B97F83867B5CF043",
- "extended_unsigned_section_mic_hmac_key": "C15FBE555DDC48977C963D57A8DB3EB5F65F6BB7D33B215BF46770F1C67EB140",
- "key_seed": "916F49641D0FA49A732B0CEF59E39BF4C52738609A08B42298C9F7EB2A1B55EE",
- "legacy_ldt_key": "8B34C0F9C07B8B932B3B7669E252FAAC5C5EE6FE9FAAF9BE926BB6281610C4C975BDDB7374013154FFDDA0849AA8B679DA13886A72BD686C8082768EF9656848",
- "legacy_metadata_iv": "7E73C7D31380B75ABC094DF2",
- "legacy_metadata_key_hmac_key": "37112382CE1C8472623CD64E207D8A6C12C8C1E197C9CAFB494CDB41F8B23CA5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5721",
- "expanded_salt": "A1F156916E5428C18311FFCD3B666A23"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5808B27F353A48E15B1B2EE22AE3A9DE",
- "legacy_metadata_key": "C1AA4EBE1985BAC14C79BAC25BB0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "66EA75E550C8EF6B72E02D81310071AF",
- "derived_salt_first_section_no_de": "50B44AA1456016BD13A851DDBA9B3678",
- "derived_salt_first_section_third_de": "07533A417721F6A5AC528A36EA5FDC82",
- "section_salt": "F361E383D7704DE5408B4AEF910DD126"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E8E535E993CC7B8159CCF5DD",
- "extended_signed_metadata_key_hmac_key": "6C6DAA31A42581BFD8B557994375DD281A9589561131BA2EA8E7CD9FB7E8742F",
- "extended_signed_section_aes_key": "88E156D0A82832D8F0A5B0559B858013",
- "extended_unsigned_metadata_key_hmac_key": "2F7AB39BDF2061A9BD28BF94740B3D3A2A46628B84A7FAB28297B8E10F675D1A",
- "extended_unsigned_section_aes_key": "780170A01973B5C7B26733F31686264F",
- "extended_unsigned_section_mic_hmac_key": "589FBE2B6530C9F094A6AECBFAF4541838225E7DF5E8D0E496C2F0D7A8279F02",
- "key_seed": "2C66F0A850DF3C31CC903D350B53242E92C9DB3980C71202C1C546F735B65D29",
- "legacy_ldt_key": "8AB788AC107832BA3A7FAA410762B09BBF46CA9DCB48FD6549FB569EA3954CD2CE4D01DAC80C6A6ACC0A86876F6EA31F4622327EBD3E10350C27CFD2065C605E",
- "legacy_metadata_iv": "2DB323CCDB8ECC41F0A9425C",
- "legacy_metadata_key_hmac_key": "A1BB59A6C2835CB1884C1D0D024163F59DEA5A2E2FC5FFB6A2FB4D1F039578B1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E769",
- "expanded_salt": "B195A44342196979296F87EDB8CE0BD9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "244705B8850ACA40F74687B24C545809",
- "legacy_metadata_key": "12421F06BC99DC779AB96092042D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E4140CE3FACFE79631C4681D94D07D64",
- "derived_salt_first_section_no_de": "CE4DB9805CF6A8D4E8DC1D05FC01E683",
- "derived_salt_first_section_third_de": "4A11A59458B00085AF581D4D960D9611",
- "section_salt": "AA0CF66ECEB0742AF3DA315E7995CB1F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "245034DF30420B38A05E8B31",
- "extended_signed_metadata_key_hmac_key": "3B2F2644B95DD12C8E8D8499550AC71D3AAEE0531973453269C78438DBBE9FAA",
- "extended_signed_section_aes_key": "43146005DF1F7621F68888097C590DC1",
- "extended_unsigned_metadata_key_hmac_key": "98DE31832ACB1BAF09E58EB6E98AE3399914C33CB91ABEA43C4C5F2E5F9349F4",
- "extended_unsigned_section_aes_key": "57FA4A14052D210E948D73CEC489CF54",
- "extended_unsigned_section_mic_hmac_key": "52DC1C791E410FFA2AB75DEAC7A0DCE2B4F28A510E81594DB9D9819309868BB0",
- "key_seed": "553505C47BFEA9E71DD198DD21C7A851BDB1526E3BC2BDF76949158FFA00C28B",
- "legacy_ldt_key": "A072F824D6F2982A4F5BC9FD8BD4A08A892309617281F3F8D4227091CF0AE8D9501D9D8FEA64D8550FB31DB004E8D58AABB8C1D48F22E922D9F57F9368C10B2D",
- "legacy_metadata_iv": "FE57D7AA8350B720F4D4C068",
- "legacy_metadata_key_hmac_key": "584FF67E2B1CE152398637B4698BE6F8B050769899A2DE4DB39D766021332B1A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BC27",
- "expanded_salt": "BB14CB7C81C5841D777F04E86111188D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FE2032D63D4311120E23B33C55AEF953",
- "legacy_metadata_key": "9E11EC1AB45D6023C6A2C7459506"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5E97836143883DD6DD7D42CA5772C3EB",
- "derived_salt_first_section_no_de": "3F0825C290AE975D712D024ED24C187F",
- "derived_salt_first_section_third_de": "4880C622C6F9761D30023F202EDE9DB3",
- "section_salt": "10BFE1BE0A7A7995586AB63EABA610AD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7A881338194D987FADEC9694",
- "extended_signed_metadata_key_hmac_key": "A4727F7C529DE2EDFEEE4E15E6ADF335353E7EB3ABCC13A2522DC3A9687B65D7",
- "extended_signed_section_aes_key": "D1959569E39CFC9B5EF51FDFDE0BF57C",
- "extended_unsigned_metadata_key_hmac_key": "3BC862374A3B3C98E80779D205F297B23C93BD2377499595C2C382F29D3EA9D7",
- "extended_unsigned_section_aes_key": "621DE5DE25EDC40AD8670F5962D87262",
- "extended_unsigned_section_mic_hmac_key": "043A7EFC6E2570F64DEE016949899145DEDCED3F1E21DF0B4767F0EE31B93158",
- "key_seed": "9E8856C8897737F2EF4E1E1CDB085C526C5ACEF08518A3FA9187BAFE15B6359C",
- "legacy_ldt_key": "B79A3615C4C9FDA8BD50F4B47C68AE8A7C53455C86D4301E90036EC1D95956FF3B078595C4BA1C12DF4CC744EF5B78D00A0747896D98DCC646DD973B1D920160",
- "legacy_metadata_iv": "2FA62DEF66EC69BD4B0D6B71",
- "legacy_metadata_key_hmac_key": "F1B1D524AE9901198E4DA5D5574790E0A312DBCF85307755A9EEC692EA39DE1A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DDE5",
- "expanded_salt": "D34C25F8A060911243DD142D93744715"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DB86B6355651E9A09FC4F18677EBD0A8",
- "legacy_metadata_key": "BB411241CC18394C66BC74983D80"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A245E7FD5D71C7C8209A0C3BEBCDA5D2",
- "derived_salt_first_section_no_de": "D11145529764621E1BD67030F303E698",
- "derived_salt_first_section_third_de": "5B3CCF87EC68BE6E4328C15D0AE71CF0",
- "section_salt": "FCED3480BAC2558E870CBB768D3F6576"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7AC3AED937050AA77BFD219F",
- "extended_signed_metadata_key_hmac_key": "E91A1FABC60DE0411DBFB46F6404359DCE482EF6CB5EE84565C53910D89D508B",
- "extended_signed_section_aes_key": "5513556266ECA54BDA23722497BB676B",
- "extended_unsigned_metadata_key_hmac_key": "63039699124E450F42872B6BE4F111C606679BBEBA16EF3B2332817E5838CF57",
- "extended_unsigned_section_aes_key": "7E3F9797E4CFE925E6E68E5D4BB0CAE2",
- "extended_unsigned_section_mic_hmac_key": "25F9B1A2DEC440EE45656380194ED7D28AC931F044D418FF7E392E8AAF64312C",
- "key_seed": "7A842EE01C8F58C76B24379402CBA7377485C938780B0E2B9DB210D0BE7E075E",
- "legacy_ldt_key": "3160815F6EB02A6E538A8B398374FDD8BE9852166C84F13DF9B379026B2028C8DADDEC5AA6D847B6E6672FB6A94241F5A943559835D6C84E4B714DE18ED43500",
- "legacy_metadata_iv": "FAA11582B96ECE5F5D442719",
- "legacy_metadata_key_hmac_key": "FC017E9B4323CFDF17C4C09D0FEDC1AF7CCF4443392605F67BB3343DD23F112A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4C78",
- "expanded_salt": "A662D73428E40528EB0AFBEC2DB3F8DF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0F2CB782A5076C7E8942EF248304B149",
- "legacy_metadata_key": "A49C9DD2AA91BC6BAA6058B441F2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9E855F380E01A8908DB0767C18F36094",
- "derived_salt_first_section_no_de": "8575586C6C6E4916D9027581EA0BB430",
- "derived_salt_first_section_third_de": "7AB992EC6CDD3F65452A3901C59D96C4",
- "section_salt": "37C5F96A5F5923541B83458D4CC4FD76"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BB7E0E61874F1D35A855FE7E",
- "extended_signed_metadata_key_hmac_key": "04569AC950BE5CC37F75B990F36981F9009E91BCB3FFD34D77FED36C3818371A",
- "extended_signed_section_aes_key": "8A252D4B2437645D24C791709D59D7A6",
- "extended_unsigned_metadata_key_hmac_key": "DF2F16281BC430CB7A366D31AAED28DA54CC9EDBAA7528A65E07DA95625A092E",
- "extended_unsigned_section_aes_key": "A0609EA0886D89C47C66460CB8CD47A1",
- "extended_unsigned_section_mic_hmac_key": "C5C6B76EED542E94014BBA13E1E9149E87FA18B322C1126DAF93EDEAB1172C7F",
- "key_seed": "C86A26634042F691B40772152FC27158A12E8AAABC87CDA1C5D9250A8A7F9CD5",
- "legacy_ldt_key": "B933616C59BFA3B4A81FE3B425960C71A64B765BEF650F8790EC5A2548DE08EC761788E47D2E45CEB05F4AA1B8ABE1A5785FF9EC981B0047D95A6C0E25611DE6",
- "legacy_metadata_iv": "46D5709FF56571631DB081BE",
- "legacy_metadata_key_hmac_key": "4B1A528EA88F1ECACB3B2E676727E7844A5A25D571F3FCC863ACDEB429587A0C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2B41",
- "expanded_salt": "E62D30850F07AC1B56988D54A16738C7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0BC3E3869A35F3E0FEF460A82C6E668A",
- "legacy_metadata_key": "8381C886E2AECF438E515FA3C709"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BEF118BE5064FF7C271D02E45648172B",
- "derived_salt_first_section_no_de": "7EF0AC89233D14D01F766271562F10AE",
- "derived_salt_first_section_third_de": "501A97BF8060CB6999B69C7741A33641",
- "section_salt": "3C84C5B58EEC2FCA657BB32210115B6F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "63F295CC359F9BDE0C8A9BFB",
- "extended_signed_metadata_key_hmac_key": "C81832FD3EFE26126715C1B262FBB8A2179124B885FC71352AE9B1EDD0394082",
- "extended_signed_section_aes_key": "8F5C76EED4254FB6131A5F6BAF492C16",
- "extended_unsigned_metadata_key_hmac_key": "451EB0AAFE93E272DB7CADA50E3B43ADF60E7643A45AD88E26E9B3EF84CACD72",
- "extended_unsigned_section_aes_key": "5CFC7D50ABF2A272176A2909A5756B52",
- "extended_unsigned_section_mic_hmac_key": "CB531B988FA0C555AA7D5C5D35E2323F9EA33CBC64AD1ED0046BB58C59DFDE10",
- "key_seed": "B9E55C98527160D674EBDCAE53475551038419839BA4E28C282FE031BAFB2E9F",
- "legacy_ldt_key": "390021A877D25D5E3CA98054084FD46FF552F4CE5E41C65196FB151AEFC82049FBDDC8D5F2B5A177837F0170414FE39EEC0BB5811AAD98D391B3ACFBCC01C105",
- "legacy_metadata_iv": "BED2A8A6A41BDD43A4151440",
- "legacy_metadata_key_hmac_key": "8BE7BF8E98F3CB195B6C7AD88C5131F6FDE958D61958D39DA05DD4D05BAB4C45"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AC75",
- "expanded_salt": "C808156B441A2A3AD39D6FE9A9661174"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EAD5B5F64BE2D308EA5BDE8B4940B023",
- "legacy_metadata_key": "8FDC8B4621A3EAEEBAD1B9742B7B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "37A1DAFF18881DA10318D463DA10258A",
- "derived_salt_first_section_no_de": "B1E4CE3007E9642A3DAC9857E45DD771",
- "derived_salt_first_section_third_de": "271FD0BC41CC5BF4221F987B65099234",
- "section_salt": "8CB2C5BFB7B2C276A69C44CD2C0E9A19"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DBFBC9C22DB26C355014A85F",
- "extended_signed_metadata_key_hmac_key": "6F585D413A563EE819A3447839D1F76331D1DBC7E8348B648AA88C3CF124720C",
- "extended_signed_section_aes_key": "872F4B77E721692335AE7E622425A7F3",
- "extended_unsigned_metadata_key_hmac_key": "2E545E380D22D859DA50CAC330821E4A12C87035582AA58C63F58340357A6AFD",
- "extended_unsigned_section_aes_key": "2696738BA523B9E7AEACB06E2C384979",
- "extended_unsigned_section_mic_hmac_key": "3932F6A7A2717142BE97139334917F07120CA2665808B66BFF95E7C7499C2455",
- "key_seed": "2B88AED68F7944AE4B772A39707C64856F43FAFE75735B996A7F21A61F5D982E",
- "legacy_ldt_key": "1F9A05551A2A3CB62A8AC27A1077FCB5D44575601141B801D4CAAAC9BD3690AA8E0DCBF502FFE1BD72398FA604241032E45703D1723E449B5407D9939257B109",
- "legacy_metadata_iv": "EE6EB8B19EB30422FC9891CD",
- "legacy_metadata_key_hmac_key": "DAECF695135F0D03CF6A38A04B417390D79D29CFD46EB4E4628DA93546D63674"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "358A",
- "expanded_salt": "73BC3A44A736D5BD753372BB9104D722"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "774AF7FE3BBBE8300434F1963196ABFC",
- "legacy_metadata_key": "085E998BA46D08A2AFC5D41F957A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3E548A6631E626A99E8BEB76341C988A",
- "derived_salt_first_section_no_de": "3FCA05860C5F0342B3C1B173FF68DF81",
- "derived_salt_first_section_third_de": "71491A3C6FC95F754CDF9CB91278D65A",
- "section_salt": "B3C11DE0CEDE10C9F86999378131C032"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "59AFC0F9902FFF206F2A274C",
- "extended_signed_metadata_key_hmac_key": "0A6F1983D033B67C101685FCC228C26BCA4A00134893FF8B61E70FB9F2196A68",
- "extended_signed_section_aes_key": "18D216C184B3BD51708A8907B1F397D2",
- "extended_unsigned_metadata_key_hmac_key": "461A9CD4931BCCCFDC732B96FA11C03B4E183A819902080DD7B7393FF05907C1",
- "extended_unsigned_section_aes_key": "3828CF8B810C30FCC4B5CCA3C1CBF58E",
- "extended_unsigned_section_mic_hmac_key": "3F84097F674CC9CF86B373F103BD14C05911650D0262ACD420A6E5B65C46D608",
- "key_seed": "55015128C6EE115F8AF57434701443AF62139836A95AC8A9CAE79D4E56BBC494",
- "legacy_ldt_key": "BE0DDE6E5BB38B91FE76230F607A23E29F5878B64F92357FE682FF58A634ECE1105AAE128FEF7F8E5FF99DCF104C6D048AD80808A49F7F90955AEDCCE5368395",
- "legacy_metadata_iv": "BD0E5265AF2F1706A6BF347C",
- "legacy_metadata_key_hmac_key": "8CC554AE8D6FCAECBC95C972A17C5289D0ABE3CEFF1CFCED26EEF1D017328E94"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7C4F",
- "expanded_salt": "E07DDC76A58A99903C589DB4F6D2569B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A0396CD235816ABB549212B43CB0CBA5",
- "legacy_metadata_key": "78ADCAD4DE1B5AEF6D3B77EC276A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FE193F1E881A4290A6277A7AB33A311B",
- "derived_salt_first_section_no_de": "9E4BB42FCB6B5C8FBE3B9AC56BA9859C",
- "derived_salt_first_section_third_de": "3990C1860E324692980A8AC49597A0C2",
- "section_salt": "CBA80420B3F19E4139D6C90D73342E87"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F0421C65E40297E7B8C7761D",
- "extended_signed_metadata_key_hmac_key": "BC47FA1FD3EBE986CB8AF53DA9F1CB2821B31A287F5901450247B1B222D1B446",
- "extended_signed_section_aes_key": "5975CC1FBA4BB9DB5F84DD3F4914D951",
- "extended_unsigned_metadata_key_hmac_key": "422703D7CE5327998069F77320CF059D4FD0063929AA9B01BF0393AE3ED6E985",
- "extended_unsigned_section_aes_key": "B965927477CD3053B82834F9B764FF65",
- "extended_unsigned_section_mic_hmac_key": "9FE388F8E9B1B097C1E836B7454EB211248DC759102250079F2960C49104A686",
- "key_seed": "DA6314F4F00D9AE66AAE75A05A84F3A7D0B5033C105BD1D2A2D1667B27CF01A8",
- "legacy_ldt_key": "E4E697383B01FC5314848E3A503242006D4313EE523752600AF2EBC5CABDA95EE1ED35D8D2E4BDA4DE01A1521B60B88AB59E00223F04CBCEF2D3EC35532702AC",
- "legacy_metadata_iv": "73A5BB3FC01EEF6EE247E790",
- "legacy_metadata_key_hmac_key": "C4383FAB6C1C04CD43ADD31534DE61EE51075CE9F4A8F492EE1D30140B10AAFC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "798D",
- "expanded_salt": "266328A568BFA790B1274450FD8DBE39"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DF853AC50E3EA14FC9DBA836F721C2BF",
- "legacy_metadata_key": "21D819629C8539214CCC8E64C572"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2AB5EC64E43DAADFDBE70BA9543C8299",
- "derived_salt_first_section_no_de": "F273EA8372D08A05FA51F3A342841F47",
- "derived_salt_first_section_third_de": "A88F3CA53E43000D5F06F67CBFDAF55E",
- "section_salt": "398C1234A95F537775048E912D0B7EC4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "41E4C6738938933C226CDC75",
- "extended_signed_metadata_key_hmac_key": "9E1149B997054855C72AE3401A851E8A7B21185B2CADA04FDDA0E437A83A4A61",
- "extended_signed_section_aes_key": "83B672D8976E92FEE8811D60409904BE",
- "extended_unsigned_metadata_key_hmac_key": "5178635C51FF3F1E8B13C1E5F8E9B120C672A643090B0CDDB5935BB3E4DBDAB5",
- "extended_unsigned_section_aes_key": "4BD5D232F946EC4021D60816F40903CF",
- "extended_unsigned_section_mic_hmac_key": "D326B0A8F72756FE0CE09038BC1E52692003E985662211D0C8AE70C9540946E9",
- "key_seed": "8F6DBF17E4BD7FAF1C4A68CC2D7069D612A3FFA4B89EEB6DE2FD69BCD66702A1",
- "legacy_ldt_key": "F083234DC42072A6EE6AFAB71208B59830DF6737782EE787779C8C90FF5FD62113472CBF3700341BFC5F441267786079AEC1AB200C0FD81CBDC464B24BF34B11",
- "legacy_metadata_iv": "766179D8B697DD260DDE142A",
- "legacy_metadata_key_hmac_key": "F36FE90159C5928E532BD0B456C023BD02571EFF4DFC17FC222C9452C975EA68"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6026",
- "expanded_salt": "CCB2E2CC058FAF0DD9F0B00D4B3BF847"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C704148ECFF3FE356922418A0E2142F5",
- "legacy_metadata_key": "69BCAD7B1518CD33083C70B500F7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0D8E18A56B76B410AC6A05F950D25304",
- "derived_salt_first_section_no_de": "06FD57C19A234F4EA11149FAFA3186CD",
- "derived_salt_first_section_third_de": "DEB39EBADBB4B9E0087ACB2A921F13E6",
- "section_salt": "FCFC9D6154917BE392E1349D39A034CB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DCAF4EE02030391ED3CD7F95",
- "extended_signed_metadata_key_hmac_key": "3005D2AC8751BB063FA60C92BF0FB746AD0FB8B19774E615417BA9FA35328774",
- "extended_signed_section_aes_key": "94E0827FA59F6B186FDF170F36F963AC",
- "extended_unsigned_metadata_key_hmac_key": "F4CD9A9ED2441CD5BFD3BCEDFBFA642863B1E53C996038127BA1D445E1E617F2",
- "extended_unsigned_section_aes_key": "F4ADE7CDD000DC96CBBADA9A56D256B4",
- "extended_unsigned_section_mic_hmac_key": "4423288BAD2B71BD7724B9611AD4E4471E092CDCC1A88D8B7DDEE5F3E50E2F8E",
- "key_seed": "5969CC5291A017C0D7E5E707622D1B98E819C1DB434CB3FD8459FF1E29895926",
- "legacy_ldt_key": "BF37338E48245B368190E127AD606058538E37C5F92967E39D479A1284336454A962FA527B19479651312E1E7B23EFF67A7489630CFC643B1A72B794EE9FB9DF",
- "legacy_metadata_iv": "B5D4033ED0158114F1F208EB",
- "legacy_metadata_key_hmac_key": "74023CD383FEB749C832E9F72BECE54BC18D329B469560ECC1851679EC774BAD"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7FE5",
- "expanded_salt": "775704D42753C4DF47623A4D919543A4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F5F19BCB1C7BF3C0E8E05503FE83FAD9",
- "legacy_metadata_key": "FDE54E763157F69FD9D4F5945343"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BC6CA533D27143B32FEFA285638EA333",
- "derived_salt_first_section_no_de": "0BEE431CA78408AA242C32DF1E25D999",
- "derived_salt_first_section_third_de": "A344605B9831C14A7654B644BD683569",
- "section_salt": "CA3B29994B545048EE6A7EA9C560DD49"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "68FFDADE3202DE1DA56CD368",
- "extended_signed_metadata_key_hmac_key": "E96C610B8077786D79D22B58FDADD525E9FA6D9013400B3832A6E981659D9CDD",
- "extended_signed_section_aes_key": "F74BDB8AE40557AA90A020B85E044E79",
- "extended_unsigned_metadata_key_hmac_key": "E0D7DF3FA674E5914986010F9B9B58D891BCB138CEF41E6D5B9F60CB2B06CC0A",
- "extended_unsigned_section_aes_key": "1F4CA68D3DEACEC678948B30757D949E",
- "extended_unsigned_section_mic_hmac_key": "1D75CBFC21849EA098EE3780995CA6118BCE53355F39084B790B20A5B8344469",
- "key_seed": "3DB8FD3042C5C5E804A6302BF92F7C3B617A2EBADE55F9501FD552D8DF3F5993",
- "legacy_ldt_key": "E54B557FD2682442872CDD9DC2CBD65479D59EBC97C7DD4C2C7BD89F1AABDDABA5CAEB1D86528F27EAE021B1007203DA402A2468B5A9E9BD9BE1E324C9DF3F91",
- "legacy_metadata_iv": "A439B9DB27DA4B0DA27EE410",
- "legacy_metadata_key_hmac_key": "C86CC43173495EF81ADD4EFD3D35A7814172483D85E493EFA05F41BA4CEBEA1B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C0A5",
- "expanded_salt": "244CD27D415002056D9D62383D809E62"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3AA9099B250EE13C31BC0F8E84D76D38",
- "legacy_metadata_key": "0F819C2EE934589BA652E7C9127B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ACF5CBC1A3EF7FBFC6590A02AD2E2C6A",
- "derived_salt_first_section_no_de": "34231A56443CE8549AD07331E4E3797F",
- "derived_salt_first_section_third_de": "FD47481E49B5B0622B358646C185A1D1",
- "section_salt": "22E31B15A3F86075E8C02C8306969C5A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "08A14DA68B58503005D03B83",
- "extended_signed_metadata_key_hmac_key": "3B5231AB5BA0BE6913A020C0F8B5DB669842555865385E21D3850C6FB66AAF03",
- "extended_signed_section_aes_key": "9BFCF51FB1860538DB3F590F1D18B4FE",
- "extended_unsigned_metadata_key_hmac_key": "6BC779EF293D84ECF63FA20AC5C29D8CB0A87F0A16AD3B03B1AC9FCB2C48FAB4",
- "extended_unsigned_section_aes_key": "0DA2306C1EEE8209AD01297F9197FD48",
- "extended_unsigned_section_mic_hmac_key": "36EB99CC32D1B0719475957C7EEB914BEF09A50073ED2564B68D5C46C1F6C58B",
- "key_seed": "D80E8B37F9129780B376B056FD18BBD100DF041FC889A30FF2FD680EEC7A532F",
- "legacy_ldt_key": "B3DF1924FAD2816C6164CE14166DB6613FF31DF2EE1DAE0EAA84D6F55A950CC350B7BC1C1788FD9DA19C7E124615158584084D6BA8E21B7B14123E32F02088E4",
- "legacy_metadata_iv": "57E0456536D471CF7EAC9950",
- "legacy_metadata_key_hmac_key": "15266D033FC9D1CDAFD7303BEAED5A87B4032FDE75552EF5657F4CD7F09EFFF5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "30BE",
- "expanded_salt": "A3DD6BF61D2789A4F35600831AFD0DBD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0FAEFE4102BAF03F96E7EE72FA75BFB9",
- "legacy_metadata_key": "FBB1C15E6B56721F80C1EC96D8D9"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "34EE79A64E967715B4617353816D54EA",
- "derived_salt_first_section_no_de": "BF9E05F939CE6F2737D8346126596F89",
- "derived_salt_first_section_third_de": "4BC2A3DC94D6205DFF86BB1CA789EAD3",
- "section_salt": "7AC426DEA6A797198A5A5A16C2B7CAF6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BE5155C9F4D915FBA2E05FDC",
- "extended_signed_metadata_key_hmac_key": "6E262236D452D5A43B56C903EE34E87CFEFF447D3C5C8FC817E2682E9C3910B5",
- "extended_signed_section_aes_key": "E94F202F8D70B5D7615078D6A71C0743",
- "extended_unsigned_metadata_key_hmac_key": "2E083996CAA47EA029E39C3C5F54D630C0FDA75E6F62717DCE408FB8900E6160",
- "extended_unsigned_section_aes_key": "EB2234F53128FC56F115B51B20135A01",
- "extended_unsigned_section_mic_hmac_key": "C974F2D0F03A864717A4FC52CB686C67B1DC05DE8DC709157304404DF8FDAB20",
- "key_seed": "5464334BBCAA8374B45619452E8809B3ECC52AC8B04331821F07FFF2B0335D55",
- "legacy_ldt_key": "D12995B90514E0820617A9C62BBE72D6B6AE1E0FB7C66EBCDACC62C3B3F5B701065999F891338DB9DB2BF9960F11347BD963D58954D7FFE8B0BA998DEDE2463E",
- "legacy_metadata_iv": "7BF09E6C104FB790B109B683",
- "legacy_metadata_key_hmac_key": "09A1AF17FAB2444A0C197408EDC0F0C445F7238912FE8EDD9FBD732D3374C497"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C873",
- "expanded_salt": "C36197E47BED96817214FE53F7B8BF60"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1652DF9533EFE0B4676B4F7D9F3DA69B",
- "legacy_metadata_key": "12408732B6899E97126446D02A1C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3A821153B15C623D3ACFAD4A6ECAEB2A",
- "derived_salt_first_section_no_de": "63D457D96872D8D9809A142BBBA42D97",
- "derived_salt_first_section_third_de": "C1F31C5BE5623F998B7A9CECABE4B04C",
- "section_salt": "5B1CD8294C9C9EB903D2E0A5985C59DE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "11D9F0848DFF8D20BE214A2D",
- "extended_signed_metadata_key_hmac_key": "BF2665713BA1BA3CAD55CDB200B4F46C7C2F591A75AA3322B13FEC7E59154BD7",
- "extended_signed_section_aes_key": "FD57A36F93C4EC37467DD085BAF83D9C",
- "extended_unsigned_metadata_key_hmac_key": "15B66BE195E2FF4841DA040F727B6C03F6F5420E660C47DE184D063850F89848",
- "extended_unsigned_section_aes_key": "9DC87771027EA5094766B6295BC81D24",
- "extended_unsigned_section_mic_hmac_key": "DEF747139EF64B87AED05646B9AA77033A2CC77ECC6AA2EB3F5C39978B4CCD80",
- "key_seed": "4B63DBEF072EFCEFA9FA09A69A42CE9F7C0E4968B54836C6BB86B1F2B8B564DA",
- "legacy_ldt_key": "39FCC7A13B8FC57FDC86223C26E3133A62A1E500CAA87FD64732AE7F9DAAC1FC432971B0A013ABF8A53E5C2F36349CB74A8EC786685AE3703A53CF96CFF2142A",
- "legacy_metadata_iv": "04C374F9BD0DFD2FE3368C1D",
- "legacy_metadata_key_hmac_key": "044F2A3ECEEB8E8C533C5FB73E5CD0F4F8CA4623092517BA012B2A32702A75CC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DCF6",
- "expanded_salt": "0F2CB9D1B089C2E846C4185D3E23E534"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FFE88E73D4D9BB85D86D0B2E0C43CFD0",
- "legacy_metadata_key": "E42BB50F7ACFA0B30C8A1E38DEE3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BE267517AE6E5515B9463B823C15CCF0",
- "derived_salt_first_section_no_de": "EA48B7ECCEF2BC7152CA9105DA20EB63",
- "derived_salt_first_section_third_de": "66AEF53611FAAD2824D9AC449BC52298",
- "section_salt": "459ADB3F5D059A2AA370CC1AD7AEA832"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "69D70395E754D88779135139",
- "extended_signed_metadata_key_hmac_key": "8CCD34D8ABC10EBF32CAF29A5F9E9008D3E7E2700D06386CC6DC6126F1357A67",
- "extended_signed_section_aes_key": "EBA56A1A87BACFD1FC0B94D86645D08B",
- "extended_unsigned_metadata_key_hmac_key": "523CA9CDCD6E9EB707AF499F5DA0EA2A721C60F5749320291494826147C37587",
- "extended_unsigned_section_aes_key": "EB2CFBF5FDBE077CF7000C9787C8BD08",
- "extended_unsigned_section_mic_hmac_key": "111231E0C9B8681F1F4675D08A5DE7399200A051F360CA5AFBB6C801B4879047",
- "key_seed": "4E687C6A287AEEB730DFD941D1947C317648E35C5F5F7E68F754D787AC0A89EE",
- "legacy_ldt_key": "E47A38895E58D6FAE787AF0E62B093445FD2E02F0246FAF3A6B2133282FCB02834449C50C78CF7ED2EEB7325C40EBCF8EE93DCBDA1ED334A43A0D084D3923448",
- "legacy_metadata_iv": "EA829DBC73FF24F7DD05C3A1",
- "legacy_metadata_key_hmac_key": "4624A04B05F01F7C9551A44626AAFC1FFC4A4AA86BC6B909DB4446E8FAFE763B"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7D09",
- "expanded_salt": "3CD4A08B4ACE8260698C21C9F84891F1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A6D12D0FCE43905A199FB6C6E4DD153C",
- "legacy_metadata_key": "0573589ADB7E25A058023CF1E3B5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E9832C44E6BD8D3DFD0570B85C50208C",
- "derived_salt_first_section_no_de": "156C369271423186C6CAA678994D97EF",
- "derived_salt_first_section_third_de": "803FE10E1BC6CCECF5C976D78E2ACFFD",
- "section_salt": "6D1377F75695D5A2122945B5F53BDBF0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "139807AD554E09C23B7C465B",
- "extended_signed_metadata_key_hmac_key": "B8CE59A4B78E0EF021F70F06CACEBF47C624FE9197746B23E97F329827C62504",
- "extended_signed_section_aes_key": "60F4C72562C45500010FBE3877F3C78A",
- "extended_unsigned_metadata_key_hmac_key": "F57BF0CD1594658C20EDF6435BAE014BE3F3D0F5699F47B70C4E43AE9388ED00",
- "extended_unsigned_section_aes_key": "BC82D3775AA6FEC0190FAFC877D72936",
- "extended_unsigned_section_mic_hmac_key": "AA7F5C1FBD82AB5ABF84B73ACF946755E79F5945EC38CC28C564D22C69C535BB",
- "key_seed": "7EED2055C4E94CD5993E0AC5A102B277087D7EFD1953E2F0F1E1C0963C88F603",
- "legacy_ldt_key": "47015162317CFA940ACB763FC0CBE0EBDDDBC97A75C32B1B583642B7BFEE4519F59287C4EEC2BA4176D3CF0B94167E4469C606A74A7A87E759FD12823139E800",
- "legacy_metadata_iv": "2DA50366C403EC24CA0FAD64",
- "legacy_metadata_key_hmac_key": "539ED07C8D35E2BDEFAEDC0E485AF41A539457FC9DE08AD8E5C54FAAF85FCC9C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AB1F",
- "expanded_salt": "DE9A3356CAEA40B0B9294EC3D66E7D87"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "08E60E0CF554F2A2BDEBA6CE0090481C",
- "legacy_metadata_key": "B0D50D1CC107D91A76E1686B5C0C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CB4958F728D2ACDF5CBD75CFB78D9B1D",
- "derived_salt_first_section_no_de": "0AD85F4E420AE498BFEA44A017984AAC",
- "derived_salt_first_section_third_de": "B796721752775B2A78AAB5A8936D1DF0",
- "section_salt": "DA5E0E7BB6E287A888A7B98FF5EF8685"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C44CEF50B1E1A6FD7CC63348",
- "extended_signed_metadata_key_hmac_key": "4C086EA1771D839DE6562C0939B0A5A862D8B361EF347EF70BED98CCDDAAAD82",
- "extended_signed_section_aes_key": "663274E2E2498DD16E4F5042153CAF02",
- "extended_unsigned_metadata_key_hmac_key": "BCCD5C86EED23FE777A6490A3757F5BCB376527A669F3C87788353C430F84E39",
- "extended_unsigned_section_aes_key": "D03B3F905BF6A5DB2EFD924C99C2B9B3",
- "extended_unsigned_section_mic_hmac_key": "AFDA6BF135E7CDE6B796E5679E8700B16C71547371A55E5796481BF249953325",
- "key_seed": "B7BE2E92835D62F9ACB33C69D90E4E1519A166896C7387C7CF65F76303F24AF7",
- "legacy_ldt_key": "F6219AD7387594ECC38F49F3E666FB5E300BBA425F09CCB96D8CEABD9C55AA0F3356219CCD2E109F68FFEA0B829551ADF3DE76BF1E762BD579FCC7B4CFEF73C4",
- "legacy_metadata_iv": "51EF77D8AC015384EEBA752D",
- "legacy_metadata_key_hmac_key": "7464EFBCF8717B6EF551571866230854E95830CFF187084BF4ECF418DAF44ED2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "58E0",
- "expanded_salt": "3ABEFB7F027CC95B81A54073BC6A7AFD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "ACEDAD02D3C7599B9ADCA8AF51EE40BF",
- "legacy_metadata_key": "CDF107977C4E755BED6E13AAFBA8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C02D512290575DA37C1E86892ABCA484",
- "derived_salt_first_section_no_de": "9C12A5B52514578F1835B1C424220D7A",
- "derived_salt_first_section_third_de": "B19F1E4FA24463D3BB8684413CE7105A",
- "section_salt": "B22096DD07590B9E76D505A7D3C45F37"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7A4900E8A6A34FF05CD38324",
- "extended_signed_metadata_key_hmac_key": "C71FABF91F4E7D95E6C594D339D442EF7FBA5BAD6602CBF6E52ED39E8E7B1B51",
- "extended_signed_section_aes_key": "782012F8B7EF7A09450AD99B6584C213",
- "extended_unsigned_metadata_key_hmac_key": "E67BB2F94FA87EFFFB6F5B572D26CD616AB304FFA2A12C64C6FE813AAF842C59",
- "extended_unsigned_section_aes_key": "5C3064864274945AC02F8C0BB9C50741",
- "extended_unsigned_section_mic_hmac_key": "4BB3C5EF3C36DA5FDF349CF25B2C919F9451B2A6DC6C4FFECC19409B0CDF851A",
- "key_seed": "1FBF02CE8A22828AA19782E6E9BE0870ED99E5AE0D219019B09CE4E3F2CE997F",
- "legacy_ldt_key": "7C6305CD99195392AFA7A8045F0E43EA9DB3F7D37A8845F4F15658E64A4A2EB5EFE6FDC2E81F4A8B2302EE8FA0FF8D3AFCF7C7DC3FEEE5951FE532BBC65B15A4",
- "legacy_metadata_iv": "73137DE5BEF76717FFE08763",
- "legacy_metadata_key_hmac_key": "3DCA6CE53372C4AE2A572354F0236A1CED6E68025FA5D94C7D301648DF8392B4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C822",
- "expanded_salt": "144F673ACA3C4911A0E47EAF781ED896"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2290EE0B0854B61567D54C88E64DD2C5",
- "legacy_metadata_key": "9367D7A8AC2B4CC7B2739564850B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8840D9A027750401C1FB501D971CAE58",
- "derived_salt_first_section_no_de": "807555EA86579FAA70611BF72063ED5A",
- "derived_salt_first_section_third_de": "507EE08D54A1911A82200A9A683FAA38",
- "section_salt": "F57A2351F709EA147066AE5B1BAD4B99"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "78D9D2D3EE82D6318FED5F58",
- "extended_signed_metadata_key_hmac_key": "78A7B437A40B0F0DB74A65FA909D9B3C0D33692BB1DACD17B157A0D83F2615FD",
- "extended_signed_section_aes_key": "5515A6336CEC29DBE1D376F86DA40403",
- "extended_unsigned_metadata_key_hmac_key": "BB8D091EAB82DB3B266F3A9CECEABA3EC86206EB1FEFFDD4983902E1B8FD32BA",
- "extended_unsigned_section_aes_key": "92227DB0E98DFE6CDC51194DC7932158",
- "extended_unsigned_section_mic_hmac_key": "1ED3088A4EAFB08C95F419C9C39BE4440E4CFF8930A6444AF239D97212F1FC19",
- "key_seed": "30DA652207EB24611D1CA9BE1B05D58FE7450471919580D3964A48D60E520DD0",
- "legacy_ldt_key": "E4A8C8FD765B8BEC093E9D10FD598FACC1A60E9768E29A11B1517D30ADD74F102DC1C986C56E35C3109EAC72EA3D19CADB50136BF5B89C04C363731975C1582A",
- "legacy_metadata_iv": "ADB9E5A00A46100D324C7249",
- "legacy_metadata_key_hmac_key": "51F993721D9515EFDA309B3FFCE8CCA441A4BDB14349B86B7877D52916CA2827"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "748F",
- "expanded_salt": "FE47FDE2B1759139CD089B3E65FF9BBC"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4660BC73F2E3178FF53C7D64F4122FB8",
- "legacy_metadata_key": "AA8D0B92F98BFC8DCE8304505F73"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7F2A5FC8F174073AC88EC3CAC768E60A",
- "derived_salt_first_section_no_de": "0494069714659903FB26B2F630028D58",
- "derived_salt_first_section_third_de": "F4E3E8E0D66C06B5129AE5C6F47C9268",
- "section_salt": "F610ED2E348A4AE5470C2BE92D8169F2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BC56FE96F524FB920EC80A49",
- "extended_signed_metadata_key_hmac_key": "4C378A14DE9A11E5571E1C58F6360E7464C416203AAFF3DCA5720A6E2B82D291",
- "extended_signed_section_aes_key": "BE45444770EAD5FE3A9126FFA4D6EB66",
- "extended_unsigned_metadata_key_hmac_key": "F19A8C81A5609154AB79A8E2D1D09AE36E7ACDA82A5E53C5EA218C200A7F391A",
- "extended_unsigned_section_aes_key": "DBCA432B961B73BF4A25995F500CE0A0",
- "extended_unsigned_section_mic_hmac_key": "2B58027466394F49C01ECD0A352E004C920B4A8F4AAD75C52B722F572BA7CCC1",
- "key_seed": "49E538822F3447E2A1165697C4EA31330922E33C76978C3BC506D1F68315DE79",
- "legacy_ldt_key": "F1379B3ED3AF090DAD80838F803CE4B9882A2D69D8200A4ACA7009E606BCD5EFBBFE8294943C96FB31CC97EE17273C55FF6614DD0284F4EA22A5F78E9DFF5331",
- "legacy_metadata_iv": "41D093ABFC1B55E2395CFE4C",
- "legacy_metadata_key_hmac_key": "9976A6635BB30E99F3A7D312256C610024AD01D051478CC9B62F7D94C2533890"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0117",
- "expanded_salt": "8EF5B98F70068DE5F16BE7FC4FF6F7E1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "67004412409367E14D07FFAECF148E8E",
- "legacy_metadata_key": "582C6757F63658F595029E278D0D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D2DD6659A8D2ADA6CF2163E2B649D607",
- "derived_salt_first_section_no_de": "9123B3E6F60676C9EADD95B65BF6EF8D",
- "derived_salt_first_section_third_de": "1EE8955604666346BD8E7E6E77CAE187",
- "section_salt": "E494E894A51A584C98A9F139086F6C5B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1DCE28140B10F7BA53EBB90A",
- "extended_signed_metadata_key_hmac_key": "1DE23C257905F7C900FA954475D9FC6E7CC5AE10A9EF597B9E35F1C9E8890A97",
- "extended_signed_section_aes_key": "5AC5366F8B09F2456BAA959934433E71",
- "extended_unsigned_metadata_key_hmac_key": "B857510407636F0F6E39339DF113804FF5BBE84FCB05A5E3A97DA738B8CE0C8F",
- "extended_unsigned_section_aes_key": "A4ADD35970B3CB04000D5CD44B8E2FE8",
- "extended_unsigned_section_mic_hmac_key": "1A2A9D4F43B832DD8B8965F8FFBFDB0086B4643C6C2FAD35C13B56E2C3448254",
- "key_seed": "DB1A8BB8E99FD0F725CF2F4876CB41AA6316D9DC9EB5822B027D7F5AF2A87E80",
- "legacy_ldt_key": "C626CEED6DAD2C4C97311F5A3DB5331876D673762A23BB2E8EACA103C8C3CF9D2CAFE8F00088326F6D20A400B94D2D9CC91072B96C8E1FAB9B2B841BD0C19406",
- "legacy_metadata_iv": "B6321320EFE11243B40164E6",
- "legacy_metadata_key_hmac_key": "8ECE070A25F9EDB12371736630ECD793AE5C1BA0817AD72251F0664D84566631"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5495",
- "expanded_salt": "C25527A50FC2DCEA00A768B7218E51BD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "11CA909FCE4A5046597FD5146532E185",
- "legacy_metadata_key": "E5E172FAE87FB565EAE537491622"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "683161CA23B244B909E3ABE2A323C6BA",
- "derived_salt_first_section_no_de": "1428B7C0868AECCC1138814D0ECEDEA4",
- "derived_salt_first_section_third_de": "E5FE68BB1EF2A35399A5E09C5596C670",
- "section_salt": "322E558693049CE01A460E9D7FBF6A6D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AB0913F9C0DEA114AB7C5CB4",
- "extended_signed_metadata_key_hmac_key": "3D9134CE4D99B9447908CE47FB9FA7428BEB231CE013390FE702D21C291157BE",
- "extended_signed_section_aes_key": "CC77D94BF76AF9C4ED71FDEBE9F2BF6B",
- "extended_unsigned_metadata_key_hmac_key": "9C337BE7A8DEBF7987CC143B98772ED739C8571DF047F75E5FC939DAAC6D5EBB",
- "extended_unsigned_section_aes_key": "FBCA597E973173F47912C4AD563A8C5B",
- "extended_unsigned_section_mic_hmac_key": "AB218B3042D9DDF81C439A9EBCDE6BED97E4D87F92E40549AC8D3A3F5922283C",
- "key_seed": "4DC0FF10ABCD53445DA2001CD0859D2B4B7E240ADB838033BF16829A12B53C3D",
- "legacy_ldt_key": "538D6AD30BC447FC8BAF0D8F631563E74C4ADB1F56AE7C46AFD242D76F922E14D89FABCD31A2FAD631CB7D08CC990D3F1BAC5884DE582F413E3BE7D646BAE50A",
- "legacy_metadata_iv": "59BEB00694D59EE2858B908C",
- "legacy_metadata_key_hmac_key": "1869447859E0086217F1927697BCE59D24879DB12A7BE9F8E9BC86BF8AFE1CED"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "78C6",
- "expanded_salt": "E68F4B74ABA24450A44741F2E1C32807"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F99B756D5C615CD0C58A776F06CA2F98",
- "legacy_metadata_key": "E9C11D6C4431A4B7D3A9787E9DFB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "69D2ADFAF4F7A0A23E0F55EA25691255",
- "derived_salt_first_section_no_de": "2A25E7C5F8708E26C0655E04EE5B5969",
- "derived_salt_first_section_third_de": "9E37567F2F2A2EB38B74CE8BBBDD9461",
- "section_salt": "9934945659C70CDF0406C46F337D9220"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "32687B9B91E38E004A5A4039",
- "extended_signed_metadata_key_hmac_key": "F9DF9515CF385D01A9EC20994101310F34A67D550364697639397CCA36E7FF8D",
- "extended_signed_section_aes_key": "2BE450CC80AAE81FC1889E561D8D7438",
- "extended_unsigned_metadata_key_hmac_key": "C34A1D4BFECF5FF2A0C9F7AE01055BC4539A54627A036FF1EC106F51EFAD253E",
- "extended_unsigned_section_aes_key": "91A5C657896E50F3AF3E26E0032B2069",
- "extended_unsigned_section_mic_hmac_key": "889171537C14221E3FEFFB5605AEC1CD8F8831E5D66C7803CB3A9B91A94D7C0A",
- "key_seed": "CC0CE506AA8EAE35491F3856C8B769421C9979ACE1EFF49806C53DF59BB0D9CC",
- "legacy_ldt_key": "A385A41134B415FA969EB3E144E16D14FD689A0564C3CD63A0CDC8B067A845D4797D9376CF2A517EE535A6F28BB7772A1358665A4C8C876D225BF2ABD2CA19A3",
- "legacy_metadata_iv": "0A0DE2AED9265D55B0B6564F",
- "legacy_metadata_key_hmac_key": "7070181FA44AB16F92BE35D31F1B1F04A231520766A5A2B89D52385E7CEF5574"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3BF0",
- "expanded_salt": "9FCA6294AB22942F58C1A8F8DC415546"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "141A15BEA9F2044BACA224E8ACE04447",
- "legacy_metadata_key": "A8AE8FB49EE658BD826FACD17EA7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2D8BB16B5F71B2DB7F9F263132ED62F3",
- "derived_salt_first_section_no_de": "ABDCC10CA9F66948F1F3B62ABA34F637",
- "derived_salt_first_section_third_de": "32A72BE8C7501A192CE89F0B4613F68B",
- "section_salt": "7306EBABE8C55A5963E0E52818284579"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2DD6F71CF5F2CD5FA7CBD955",
- "extended_signed_metadata_key_hmac_key": "0C3838671EC867117F5068DDBBA7E88B54BE28E91B79D28C0B8887E0FFC04AD7",
- "extended_signed_section_aes_key": "EEAFFECA2C61C10F5CFB75BA291ECF8A",
- "extended_unsigned_metadata_key_hmac_key": "97794DAA4736B98B50ADD3B7C9E6AB8420CA48EF5929F5F5902321CEA01F43EB",
- "extended_unsigned_section_aes_key": "19522C84F961BAEF73DECCFEF222A8E1",
- "extended_unsigned_section_mic_hmac_key": "C21A5EFE78871BA65A291022381D1658CE3F9EA8E97BD8DF82F2686DF5D56157",
- "key_seed": "C03E73CB5209A2068275A50265299E6475DE5011DF061E61AC8F38603980CB87",
- "legacy_ldt_key": "C0571417B4DB7E7BF50D993BF040C3A771A120257502317E5485D18BA5E0A2D0CFD72DF68FB3C6F4AC44591E96DD61A7AA9A0D1EC4CD2EF80A0A85A4E146B2DB",
- "legacy_metadata_iv": "0EA17FE0BE0698B1954B4B98",
- "legacy_metadata_key_hmac_key": "BCAC5AEF8ED22B9D5D2923CBD6259E84B22E0998CDAAAB369F51F3B095BDB68E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9BDA",
- "expanded_salt": "BA706B0FF17E5A4F84557BB842263944"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "652B654BFB5B048F18205F0517DB5E56",
- "legacy_metadata_key": "79BC41EB680B3C50D9AAAFBE5639"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BE3B9D10F9FE6385FF2980AAC11AB7DA",
- "derived_salt_first_section_no_de": "54F85AEC829D0D3083CBABD38F76AB0E",
- "derived_salt_first_section_third_de": "63AB4F57C8A8174355921AC332E99763",
- "section_salt": "B52506CA49E586A8AEBB0F15621EC89F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "857DC0AB28B845CED7DE9101",
- "extended_signed_metadata_key_hmac_key": "792A788BE9DDDD212C89C372FABC4DC53A54105FFE2F5C68B3598CA7FED5A88C",
- "extended_signed_section_aes_key": "A7F424BAC8BDE3C805D400BE8172F216",
- "extended_unsigned_metadata_key_hmac_key": "B8D7AA7F1E3E8D41DBD5981F05754EDA578B82D80F3C8362B4860E5089702CA2",
- "extended_unsigned_section_aes_key": "A2C5A503809C6C62D7289214CB33DB77",
- "extended_unsigned_section_mic_hmac_key": "46710DE04F6688DD94CFDEC571BFF4E8D132E8787A25502F64E84AF355511202",
- "key_seed": "2FB35E673AD91F32DD70B3C3200ECAE8D4D8E19C7A4C3B8858DB5CEE69FE990E",
- "legacy_ldt_key": "7FED4C00534E48333812571CE7D7316ED20BD8236C9915D137D3E2DAFCF329E4937C16D7C23516FDD153964AB58F03083BC6E3457A56FAB304EDC3E141072A19",
- "legacy_metadata_iv": "0B46F0E3406439253BA47955",
- "legacy_metadata_key_hmac_key": "0D17F7C7066132CA136C340A7F4B503FD754D215B43A7D569B2872A74831C672"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F77B",
- "expanded_salt": "95C2E4067863D4B395158FDC0BB58E46"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "539E2C76312512FDF5776EEB81A9E0D9",
- "legacy_metadata_key": "10157DA954B4566B0475FC5916CD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FAED8A30F6C45C3F568B13C357BC7C2F",
- "derived_salt_first_section_no_de": "D3032F2936F05401826B02DA9A45234D",
- "derived_salt_first_section_third_de": "507447D87963B0E15D5DA906DF0522A9",
- "section_salt": "8790D9980276EB86D99568802A9073C8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "435F30F130B47EEBDD0CE77F",
- "extended_signed_metadata_key_hmac_key": "FBF8E9DEB81F6B368960CF6287F1DDDA0CD840DC2A262758569E86E5C86942FF",
- "extended_signed_section_aes_key": "601AA5A3CF018E26582CAF226BAB7E2E",
- "extended_unsigned_metadata_key_hmac_key": "57479629108E71515DEA7D0F9646CE5155FC6BB5336815F85C27AF279819AEBE",
- "extended_unsigned_section_aes_key": "D40D9D21D7EF9734D858F3DFCE1A2DDE",
- "extended_unsigned_section_mic_hmac_key": "D67AB0F5E7F61CB8DF4624F45210D8403FF727DE783707C14BA5156EFA5FE400",
- "key_seed": "BB97FB00721D8F218AE3867397395827F84D240AC582F8EEAC26AA5FAE2C45C2",
- "legacy_ldt_key": "A53826A0ABA4121ED4F208EE525ACF09A869A7B6B40E1E82FB92A76C18480BC065FB9C38A08217A38F935F33AC0A71F3515FDAA9C640E333360C7BF5DED7EEC9",
- "legacy_metadata_iv": "A32FBFD70377E0FEAC1398C8",
- "legacy_metadata_key_hmac_key": "6E2DFC74A5B1212F847B093F848241EE34B650EFF6B175308EA4F71557712D24"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E42C",
- "expanded_salt": "B9B9BD7D599EB32397847F21A0CB8BB6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C2AE38188DDBAE7F6BB7FB0115B36C45",
- "legacy_metadata_key": "F37388E0DE962D0C8D168ACC21DB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6B25A986CB51ECF450C0493FBE03DB7E",
- "derived_salt_first_section_no_de": "BD2CC2C24E7442EF5B386D680E572AC2",
- "derived_salt_first_section_third_de": "7CF4FC9905C1B60F7135AEFEB3311903",
- "section_salt": "875AC8ABD89C119C5D301EF84EB3900F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C63E89EC712824B75B3D2082",
- "extended_signed_metadata_key_hmac_key": "7561DE7902FBB871CB3F889292CD76A3ED043ED5C3EABF75567296B9C27EE585",
- "extended_signed_section_aes_key": "EB5B7B1AC6B3BD008F3DF570C96A8811",
- "extended_unsigned_metadata_key_hmac_key": "EF64BAD8588415502E1EB4017D7D23C00BC17646ABAE08EC59367CA011C553DD",
- "extended_unsigned_section_aes_key": "09EE206DA70979B1F8FA520AAD07DC89",
- "extended_unsigned_section_mic_hmac_key": "F0BC3AED15F3B4818D2F68A3EDBFA4C28F12247EF3D09172A7255D845A766E64",
- "key_seed": "2E46198E0DE888B3631F1537898D45CF845E2C9F4A7E2BD092C89F57B09A8B06",
- "legacy_ldt_key": "1C8E44F5B63090EFF4258B1AE513565D9CB55830AC99E4FCE9943790E029805B1F7779BC82E0EF7A4D4FECE50BD9146EA7D45F905314667A004F224FD36F3512",
- "legacy_metadata_iv": "E83719C6FE2EBA6F21193DBD",
- "legacy_metadata_key_hmac_key": "1A7C2B0A0600BE002CBD14A29B6397D90A40959DE28416705C3B8F1FF0713E75"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EAD7",
- "expanded_salt": "FB9FA13BAFBF567AF04677E5C3D1AFBB"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AAB130F20A266E226F8DB3B4878D1BD3",
- "legacy_metadata_key": "1531BB8800227C27D6F81C94C98F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BCA5F3588A3C1B4F4E2FC5E6B8BA87BE",
- "derived_salt_first_section_no_de": "6F4CE9D0FAEBC4D7102A76FAE3497F01",
- "derived_salt_first_section_third_de": "AA3EBD15D8A9FCCA161640ADACD7520F",
- "section_salt": "66187FC36CF7E5BE9A07DD102EE0E001"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CA266570F56F04279B78F307",
- "extended_signed_metadata_key_hmac_key": "3868BA24F205A5E29237E3927017233F81B1FBBFA6D7921417433A981EA21399",
- "extended_signed_section_aes_key": "3077CAA80D060C50D3A3EE4B8AFAE32B",
- "extended_unsigned_metadata_key_hmac_key": "EB11B5D77E12FD7E7E12D43DF456DAD1083AC421E7A3C3EF28B955CCEA143870",
- "extended_unsigned_section_aes_key": "06DAFAD32969A71AA66FEA199DC94A32",
- "extended_unsigned_section_mic_hmac_key": "CDD00087381A71728C99E962B30258D0E4E8D572FDCE11BF2E33BA332D3EFD41",
- "key_seed": "555E1183AE2020BAD23A021DD708E873BB678577047E471A581A7959B1A71BB5",
- "legacy_ldt_key": "37766D84441A51C413B82EFCD9AB6007DF93D094E2F438101D8F77B69A582AB5F2E0902C52996E8A8071F57995811360B77BB100999A6F820028AEA9E528FB07",
- "legacy_metadata_iv": "58C2727040B81F457AF73CBB",
- "legacy_metadata_key_hmac_key": "2F55912BAAAD593A62ADFA8062A77DBFBAA01F7AE34F3FB59A88A79294006E44"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FFB3",
- "expanded_salt": "D4E461B2045581EB499FF00F0BF06D9E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "D49293F928212EB4CD7BC93FB7F64607",
- "legacy_metadata_key": "7BF3B9C9FFC797C87F1D3217B267"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "5BD38FEDE26C0EBB798BFC6B321AA108",
- "derived_salt_first_section_no_de": "A6A7C7E8110BFB8FF5D90E24E6C95B8C",
- "derived_salt_first_section_third_de": "7EC295CC0326F5CA5734D53D5A545655",
- "section_salt": "8FC46B750B637A2843DE1A94A923941C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3E24F8BA08DAE3343BEEFD80",
- "extended_signed_metadata_key_hmac_key": "0E2EC924A2FEF1695A0FC92394B2D9EF95999550AF16648F8805C645375A6AF2",
- "extended_signed_section_aes_key": "1283D1781CE37CC88E01CD7EE13F7015",
- "extended_unsigned_metadata_key_hmac_key": "FDDAD68EC1AEC805ACB631647C20D6C7B16BB89F0AE9911E614956B1A9FC56B8",
- "extended_unsigned_section_aes_key": "C3AD3A3B177BC983DF6A584B2A714FDC",
- "extended_unsigned_section_mic_hmac_key": "F5B5BA4FB8E1D8E0E300F36C4BB0A082D205BFA27B60CFE55077B1CB07411206",
- "key_seed": "53AA7304FCEB50408BB97AB7EA8FBEF84F98DDA7DD224A497D688C49C43CCCF3",
- "legacy_ldt_key": "43C3092AEC2A5C13B5CCEF316BC7EB3F2D6CE021016B7054D6C323E994ED9111B08BDD24F7D946000AD2AB58010CE72B284BC8629FE5EE2ACDB24A0E46AD916A",
- "legacy_metadata_iv": "B0A2DD60C06EDD88D8950E41",
- "legacy_metadata_key_hmac_key": "93182515487298D12E6B75F1CB3E1B82D1286472DE634402A734177DA89451B8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3EB5",
- "expanded_salt": "2492275E390FDBE84250AEFB33356954"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "16D824B66436C272436342828370BAB7",
- "legacy_metadata_key": "9C56CD4DF7D76AFA71C23B6B981E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B2FB0ABDBFFFB4D5F08144C04EBB7F1A",
- "derived_salt_first_section_no_de": "798F26CF067FDF0273199221750881BD",
- "derived_salt_first_section_third_de": "640430A93C0786DC9F1F61FBE6F6C2E5",
- "section_salt": "263592B5351AD43E457890D46612BF08"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2BFDCA70634630E86FA1080E",
- "extended_signed_metadata_key_hmac_key": "492812162910C649FB9A3AD8310F921F1A3B023E020241F3C5A8074B21D9AB15",
- "extended_signed_section_aes_key": "C1D6880F913EF8A85F1158CBFABE6CCE",
- "extended_unsigned_metadata_key_hmac_key": "2817B4746F1FA7F79F4A01D0A8D3196CBF9CDEFBD1F18E67B5E96031E72373FF",
- "extended_unsigned_section_aes_key": "B4ED653FE1720C7B9F71EA1FBD67C443",
- "extended_unsigned_section_mic_hmac_key": "916E21429FEBC49C7E4DD646D0F1A16370736E8514AD5586F7EB8F2442B389ED",
- "key_seed": "F17F16F0F88C32657435C18608C4116AEFE925EF47BB6A32B6496D47E6B561D2",
- "legacy_ldt_key": "7C2877F0C024036A44518069BAA391AFDF5634B0A87AD3CAA1E671390DE25D5FE05D46A85110A1E15890138FC9673758C8E6C51FF2A4B08F23B456F7DCA6A12F",
- "legacy_metadata_iv": "FC8C394D9FD21807D94E03C1",
- "legacy_metadata_key_hmac_key": "0C2051721AC9BE3E4E309FDB061FC667D5B5B782A2D1E33B54A4B4D5F9E91E1C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6BD8",
- "expanded_salt": "66EC137C10150D05791BC02921F196AE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DFE9021FDB3E284005ACE744A922E9BF",
- "legacy_metadata_key": "02406DEBD7E22974EF80D202C8A5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4007EF50ED15EA4AB4FC5EA700BB7EFB",
- "derived_salt_first_section_no_de": "899AB74164E9F0C1E376345BC0E19A4C",
- "derived_salt_first_section_third_de": "8100EABEB1F57F99C81383551465C476",
- "section_salt": "DDE75DE3CF09A3F5052EAFFC5DA22423"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CBBAE36BB2EBCB1C41F7465D",
- "extended_signed_metadata_key_hmac_key": "1BDD17D55FC67FF56456173C3E25DAF517FD3FC5B46EB16601C280008E9D357D",
- "extended_signed_section_aes_key": "F16CD6E50955BC76FF1F276729E4B260",
- "extended_unsigned_metadata_key_hmac_key": "B6EED692F6D8A48409B41FA6A6F092BFF4900EAF5CDDC916730C8FDC77EA2D17",
- "extended_unsigned_section_aes_key": "970926CA64323B21DDAE99F197DDC3CB",
- "extended_unsigned_section_mic_hmac_key": "6B398E981801FBC5C279E447F3B2BE268903BCE65335E2F8B55BD33F41A144A5",
- "key_seed": "0508063B95D0FA1B27E9309CB5E59BBD1D9EC7CDCE23429B62DB9C63E993C72A",
- "legacy_ldt_key": "D4914D197A66DF392F8AFD5C1614272EA2DD26B0862AF9146C0B137ED76398F6A3D3A0CC26DCE94297CB85BD3135AD4346DCC62A769606A25B0CD4C24CC466E7",
- "legacy_metadata_iv": "94214FF90492FF43663F48AB",
- "legacy_metadata_key_hmac_key": "CA361785C3AEDE0F990B13F91C0978B571A06F4BA185E286238725713FD21629"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E8D8",
- "expanded_salt": "28043534DEE90333A4CFA0F9ED96CFF6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "57FD259CDD991EA3E7027A151BE3BDCD",
- "legacy_metadata_key": "34F3D7BD56E6D8E7101FADDEE6CA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "29B0DEC8CF40AA0ED8645C3992560F6D",
- "derived_salt_first_section_no_de": "53D0F38B9DADB5D933B7D597000F0DF1",
- "derived_salt_first_section_third_de": "477AAD6EDEAFFF8E5435345405526634",
- "section_salt": "1649ABF84B63B4D8A5D886EFDBFF7825"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B2563F8741603B8DEF4501EE",
- "extended_signed_metadata_key_hmac_key": "6BA437F99D56EB9415B573A461CCF04940ADC611026170151528C5540B0BD77E",
- "extended_signed_section_aes_key": "8E9580020DA3C3A9BD5D3D4341C9AD53",
- "extended_unsigned_metadata_key_hmac_key": "B7EEDDBB4CEDF9CF42F65E32AF0F111BE425EE64BCD1C2DD8901BFA0ABEA41ED",
- "extended_unsigned_section_aes_key": "9DD44EB82231D5308C70BF0517FE2E4F",
- "extended_unsigned_section_mic_hmac_key": "84054C64F22389F877960CECFC45B14948280C5CC8058331BB5F3765F9E227B1",
- "key_seed": "8F52D3512F626A67EC24F79365C124056D02D30B81EE31B90D15AB9719784772",
- "legacy_ldt_key": "BC77AE790B429945879B734BC12305C029AF8A94561DF8EDCF2C5BF69419A683DE84D3F09279F86E84BAD8BDBD26F4CA5ADD29205C55718B2F15FC336210BA89",
- "legacy_metadata_iv": "58766D8EB15A139831604315",
- "legacy_metadata_key_hmac_key": "E420E74DF2EF46F5B65DCD0B0CBD43FBF9F0B535AC7E7BC51064E6D79F891931"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4EB4",
- "expanded_salt": "3243E4B6D087850A5DF01AAF97FA30C9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "795169A261368C7F491D4E3D4FEA2814",
- "legacy_metadata_key": "3EBC4AFA6161AB1637CA8CE3D446"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "715670EB55196FCAD9822DE989C17B09",
- "derived_salt_first_section_no_de": "323BB13ED3C43B79A4EB2C2863F07BD0",
- "derived_salt_first_section_third_de": "E4C365B11925C27471D857070FAA9123",
- "section_salt": "952ECA8748DD0B6C7194CA5C5BCDD25D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "086EE2AB088B8360BDEFE6C3",
- "extended_signed_metadata_key_hmac_key": "369B0F41F5DE96A576F1585204B5BD2023FD10EEF2F20FF94E5EFFB23917C19F",
- "extended_signed_section_aes_key": "8D8592D5AC48E6BC18751FBFAC257A65",
- "extended_unsigned_metadata_key_hmac_key": "2D8C07544EBE5991A071EBCFE7083B3933E2CBF503A845ACB55DF264EA1F9709",
- "extended_unsigned_section_aes_key": "37D12FC2A60902EC297E6BD5F2F49AD0",
- "extended_unsigned_section_mic_hmac_key": "4E13EFA91AFCFFB56A0563CFE0AF410479C5E33C142EAC0976D99902B0A6F2DA",
- "key_seed": "DB3A297B0BDDBB9CC8B88747DDC0075B218E7875CC1BFF5DD4658BA60B224927",
- "legacy_ldt_key": "90A92E17AE9D9B6131CABEF440DD952AF45649253A0024988BC866F6B644960E7359D6236A38B67398E962B951D8217ADDEA92326A336EDC70F7806439569D99",
- "legacy_metadata_iv": "19C1EA9DCEE9C2F631BD037C",
- "legacy_metadata_key_hmac_key": "87EA8835B8A3B228306C2BBA2089F1F76B54C452268B34DFD0E1C03918ED05E5"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "C6B1",
- "expanded_salt": "9F9C3ABA4797D56CCC10BB275DFA6B85"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DAAF137BFEADD039573CCD869F8CC16F",
- "legacy_metadata_key": "F11483E53BB601CE7555C0C411BA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "486039395EBD4C19BF4BD62CB5DF1A40",
- "derived_salt_first_section_no_de": "55C815F087DE1659A13829C449B6F786",
- "derived_salt_first_section_third_de": "8D71B03DAB57ECC40DA38210D0C91393",
- "section_salt": "217CF7C205A9294DAC52769A0300A3E9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3DEB4F07421D3246971F717A",
- "extended_signed_metadata_key_hmac_key": "36702517F7CBC86ABDD9667371C72303720D78252FB23C80DF1B56860E8972BB",
- "extended_signed_section_aes_key": "E8BE340E85E956DE7F070CBC9D408670",
- "extended_unsigned_metadata_key_hmac_key": "AA86CE77D9C192A0A089BA1B70C885F74E5FB9F80C90ABF5251B730609B2F1A0",
- "extended_unsigned_section_aes_key": "C665504B75B1D054A574361B833EB034",
- "extended_unsigned_section_mic_hmac_key": "F5983A1B1DCB35D602B9DD5758D6907918B570F7562F855974AD9B580B8F1358",
- "key_seed": "50995D52A9D624C65572E1C3A2A9D4CAD282EA3AC22E2289CC1A40E169521FCD",
- "legacy_ldt_key": "736767675210FE3DDF2A1FF23281DEE72B65F6B4AB9AE527265B1CC7C554AF29B2CCE9CC765E909A74CCD533FF35C9D7E6CE41978D4CA7335393990530818E64",
- "legacy_metadata_iv": "FCA4A3F30D8FFCCBA653A7AF",
- "legacy_metadata_key_hmac_key": "854D2F885F2689E8BAB5F09E258D754DB3536C065DB38317E54401F6D5B60FC6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E1F3",
- "expanded_salt": "B552675E2A83211E7265D422E186C1F8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6C9A67953C8D100B66EF1A8FAF958210",
- "legacy_metadata_key": "FED166ABC4B252772A51492C3AA2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8C7EE9F7E51F4960DE52E57067880FC7",
- "derived_salt_first_section_no_de": "019CE4BD05E2DECB3308EBCA5BCF2EA7",
- "derived_salt_first_section_third_de": "78BFC2DC91599C89D2EC0D23789CF560",
- "section_salt": "BE6EB8A8F8B074676A06277CE35041B1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "54C843BC2FBC8C5D420F371C",
- "extended_signed_metadata_key_hmac_key": "1FFC1BC76AB5EBBBCB597440FDE520C48EDA228DA0F0B93FD1AC48648F0C0FD2",
- "extended_signed_section_aes_key": "6A0CDD397F1F1CD8CE177BB07802F71E",
- "extended_unsigned_metadata_key_hmac_key": "D9D8ABCB418F696D2CD1B055F4ECE6D9C07CD7379FA3F1D51037EF1A6B7D00DF",
- "extended_unsigned_section_aes_key": "1BD0D1B117E946F9997816759F51A817",
- "extended_unsigned_section_mic_hmac_key": "915236D9475C6875C3027F23D029F61D9E2FCD478856CDBF2BE8503C3B21094B",
- "key_seed": "8A320AE57625F6B81B72C561EA11EC6260335D2B5CB9BD41E7608F4F0931AD6E",
- "legacy_ldt_key": "4A4DF3FBA2DE0838D2229E628A9751A8BECFA8089FA6E5A72773890D9349382782D77BE6AD4B6C0B49DEBBD2CE351DDDCF14F82E5AFA64CD01ABA36F84B388B2",
- "legacy_metadata_iv": "DFC2F9DAFEEF8B26BD14E831",
- "legacy_metadata_key_hmac_key": "B3B48E9CC9B73532A277698ADF9E396D8E4579459F1CCF9E1257FD1B1C1185FA"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EFDA",
- "expanded_salt": "F49741FCF9C6A3E98C646A927D1F219F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C5503551141FA6014161DDB7F599AF87",
- "legacy_metadata_key": "6A03279D31DFD86745EF5AF695F6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "57B81DF1E1D0B19B9C1D91DDDCDC9C5B",
- "derived_salt_first_section_no_de": "8D3B8EC3D5CDF7A48092151C7C02A324",
- "derived_salt_first_section_third_de": "457F78D0DA782A8416E330E82687E3DC",
- "section_salt": "29A0EC43421EBD14C07B86C6414A7FE2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "89309C86A089D0DD10B7C885",
- "extended_signed_metadata_key_hmac_key": "C4F091EC99D1320BE264579B35CD302CF27C46C8B6F9C92E26F887D82856D582",
- "extended_signed_section_aes_key": "0932F0566A71A8600957604506414481",
- "extended_unsigned_metadata_key_hmac_key": "FC533430CE8DA14CF0D631BD76A66E417B9E8565304AA23867EDDCE3A725AF7C",
- "extended_unsigned_section_aes_key": "2C9508065C60A0C95A7C5213397F025E",
- "extended_unsigned_section_mic_hmac_key": "B570D0E4D6404CBE0E06192EF532270A573A630065882A7256309F3B71BC96F4",
- "key_seed": "CC2E0314C3034E12B03F75A6B4094032EE52AFC8F8D0CB7955332903101D6EED",
- "legacy_ldt_key": "F0E8B9ADC7ED7E0343B6E93EDB742F7C76622AD2F4FEBB9698E50138CFF22603FD6EA31E8F92B7B75F6F2DE42D98AF2754064D9CC01256CF15E71630F283A248",
- "legacy_metadata_iv": "9687232C19F77D5A278C7E04",
- "legacy_metadata_key_hmac_key": "AB6D91D6BA44428667177C80D551D01BA028818D2DA90C4ECE9F862619877064"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5851",
- "expanded_salt": "65EC0CF89D66E60E45B1B8B156A7D15A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AF10F04D1EC32C3B916D9E746ED799CB",
- "legacy_metadata_key": "78590B76939262A6BE85BB720AA1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "132A9D4907F764CBD00FB672750D56F9",
- "derived_salt_first_section_no_de": "6173F1AFF193A716760CEF64D00FD333",
- "derived_salt_first_section_third_de": "11487798B233B31A0F84FB853207828D",
- "section_salt": "7AF383C70DF0CEC17AF37C848C199C10"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DC9AD835018E14319C089E04",
- "extended_signed_metadata_key_hmac_key": "3FB3A47CEB8E56A0FAB6F44A3CD8D639FC34E6D3D6B23E84354D9642B6A7D60D",
- "extended_signed_section_aes_key": "0B947FC4E295D3694F71B99E129CE58A",
- "extended_unsigned_metadata_key_hmac_key": "5F0533A80A50DB841BF2A804629C52866EDAF2B9B5AC424D65DA74B9D29D79EC",
- "extended_unsigned_section_aes_key": "37FE8F0C75FA63A00D8D60CA99FC0880",
- "extended_unsigned_section_mic_hmac_key": "BD771FEA222B51515757840CE7B02AF20D7C12C88BC2A697A66E33A4EE4F54F9",
- "key_seed": "D95E697BA587296E8AA0B1C7DD76473B8A8387D4699A05428A9C6304E266BCF6",
- "legacy_ldt_key": "DD205E2E3A185D7C3515BC3C208885372673166014FE7BBE0344B2720EA87B44F66DA3CFC68CE9F05785637D6B8DD88FF61E59D4107ADD289DA883F1CD5DDC9D",
- "legacy_metadata_iv": "4ABB3F27322357F1F5DF702C",
- "legacy_metadata_key_hmac_key": "900F2CBF63C4AF498FDEDE64FCB11D7536E9CB2407BFB91B75B8D25F0B656F34"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DD99",
- "expanded_salt": "FE3A8F074E277B0355AE11370323CCCA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "1F01E37D763005CEF6E20A797947FB0F",
- "legacy_metadata_key": "27A6D06E6ADA6184D95D52B5F7DE"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "69BAA99A6CB16C49691EB7B5B646E2F4",
- "derived_salt_first_section_no_de": "8DB6445C9A40CFD2FF9A0702C84A58B3",
- "derived_salt_first_section_third_de": "4CE75284B119ABE422BFBC5375224704",
- "section_salt": "D1A4DA88D12B4F567A97F2AA8DA97368"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C35EFF507D750EDEFD10A0FD",
- "extended_signed_metadata_key_hmac_key": "68F77FCE27DEF6FEB43F97E03D2FE831F5E7B5DFB72FD05A9345ADC9B9B2BDAF",
- "extended_signed_section_aes_key": "BF5A2328CFBC5C447A443A44185D5498",
- "extended_unsigned_metadata_key_hmac_key": "4BB768A771CFC2BC822B2B687ED90A626B966660FB75EE0FC2EAFBD59A9D65A2",
- "extended_unsigned_section_aes_key": "18CC83326904275EC873DA8C3A5FA7D7",
- "extended_unsigned_section_mic_hmac_key": "A92AF65C707FE23361FE40A3FFF3492C610CE332F494B2D444B7EAF50C649E37",
- "key_seed": "A5F5F9E0E1706A30966B44199AFBBFA553567A80ED88F3B7E23A8AC07F35527B",
- "legacy_ldt_key": "B69A03C2B4E55CFF309DCCFAE0ADA3E090F2823AF3AD60E1755B42D234AFDB06B8D15AC8F893EAAA33BDBABD989CC182B1032EAFAD795306E68D218518205B68",
- "legacy_metadata_iv": "5FFCFBE3183461A369386CC8",
- "legacy_metadata_key_hmac_key": "CB708EE7EA4A062C01AD09A1520C8BA4ADEB7E620F3D76281F87EDB1E7F52A58"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8B1A",
- "expanded_salt": "11879D85C5CE864CC6C8C20F14B6E36D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "DCCBFD7D9A97BE22A4E1B080E5DC3036",
- "legacy_metadata_key": "3CE9088DA0888D88D707FCAE0A16"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "58D47CB093D91F35C0BEFC0BAAC04AB6",
- "derived_salt_first_section_no_de": "C5D12343FB491F3962478CB5E2D70489",
- "derived_salt_first_section_third_de": "9D3DB304778C9D62BB29A854FC9EB04E",
- "section_salt": "C700E4A2F9B4ACAF1318EC2A4935D01D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "459D32F4FB7EE17A6FA07910",
- "extended_signed_metadata_key_hmac_key": "BAFE54F1D8AC46383E5AAEF5011DD109FF2A992D2E964B3A6E7E1C353EE3B1DB",
- "extended_signed_section_aes_key": "1F8D27D5FB0E7DFABA3B41E267CA42FE",
- "extended_unsigned_metadata_key_hmac_key": "644919C63B910D4D915E80817E91755588C590B042EE1FD34B4B130FF3434C2E",
- "extended_unsigned_section_aes_key": "75A05337EBF49522D9C016FF2A2AD69A",
- "extended_unsigned_section_mic_hmac_key": "98A8B34E3CB4A38F2EBE102A9C8030BA9742078CA512FEC9CAF606F923837286",
- "key_seed": "280D056EAC97DEE925D67EDF993A49BA7C7FA5A61D19C191CC9A2E8F8F910B89",
- "legacy_ldt_key": "249D939CAD751213EBFDE66CFB2C84CCA4146018A063F9B22C958C9F327A4F65CE404F42E90956A02AE31F96897B59C27ADB1C4F6C107EA39E81C04F26609071",
- "legacy_metadata_iv": "9D9BE5C5F9D15562E4B8402E",
- "legacy_metadata_key_hmac_key": "FE935E19DFA454B8D444478B3C0CA60A5336AE16EE9EB453E56D78DB5F613892"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "148F",
- "expanded_salt": "0E7A0B9477B05591401FAD0CEB0A54B3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EF888E11CE4D6A9F9DE22FEB3CC9A700",
- "legacy_metadata_key": "1A6C6CAE9B1D37449ADED09CC8A4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B97A7A57B68CE1A39124A90D619A483C",
- "derived_salt_first_section_no_de": "8AA0CB7D338AA2DE98DA592FED9A3D38",
- "derived_salt_first_section_third_de": "EA9ADF86F2991617410EDA7633AFB3FC",
- "section_salt": "0CEA8B3DF6FC8AB38BBF691F48DD3C33"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E8C44B6130F57C46F0490FEB",
- "extended_signed_metadata_key_hmac_key": "ADC7744B2B3A28C60CBB46AAC7F113FA2349BBB5AACFCEF7D44D8B6824DC8998",
- "extended_signed_section_aes_key": "FFDF7EE6522639811CE5BD68FE9DFE3D",
- "extended_unsigned_metadata_key_hmac_key": "7A95B5B0AA13B34EB45FFF736DAD0A0C446B13C0A8CC654541B499758441AB09",
- "extended_unsigned_section_aes_key": "DA1B1958E6A9D3DE930D83BC729FF3F7",
- "extended_unsigned_section_mic_hmac_key": "1D3CAF24BE882C164FE81310884724CD49800B8DD384200BE25AE8E93FD381F8",
- "key_seed": "3393A7159F1B6CE244572F4EAD0DEE971C0176CC9B8E2913A75150EEA14F667D",
- "legacy_ldt_key": "801CA931EC294A7DA502188A43EB8A2A5814FDB0D1EEFC73917E517C6A1A75B176638AE59D3EFCFAB3B473FB66D9221D840B5CE0245A1703B0A3BA2582B6F4F5",
- "legacy_metadata_iv": "5F98615021A0CB735051F7DF",
- "legacy_metadata_key_hmac_key": "0C0A6CFC8EB93D6B3512AE619AAE99E0FC5A127079CEBD09D7BD3462C22EEB2E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2AC0",
- "expanded_salt": "9568D7BC4F83F6EF98A59CBCAE14A1A5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4B1568692B0B808BE59CA1D63F5C282D",
- "legacy_metadata_key": "7674B167E10EAD7FC2A7DD1A8291"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "192939AEF586AEC9349C2C2E90D8816B",
- "derived_salt_first_section_no_de": "DF80950D235B1DB9AA576E38AB80F857",
- "derived_salt_first_section_third_de": "AB9643741B44EE9901414AA2DB1EA019",
- "section_salt": "34375BEFC870C43984779A3944C702D2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "553E43EF36FF0D5076AF12FB",
- "extended_signed_metadata_key_hmac_key": "5E701B6CB7DC49210A143B8723B6F6C81896668BB062F2B5FCC0194124FF0853",
- "extended_signed_section_aes_key": "B950C6823C591BD176BAEC938551A050",
- "extended_unsigned_metadata_key_hmac_key": "B35CD9CCBE5D9D921B5701318BECCF15FF47C6670B6AAFDAD0D6E1DD946B965D",
- "extended_unsigned_section_aes_key": "ABC37D7E48E95AB1A411B2539DE6C215",
- "extended_unsigned_section_mic_hmac_key": "D4BAFAF990F40D11616690E2D3692CB35C9B6B6D513B3567A25213A1E2BE2274",
- "key_seed": "2451D2D0BD1D5378FBA94031E5FA9B900A31C928309459CAA7B29064AC472A10",
- "legacy_ldt_key": "1A964522F3336913379B1FB9B08CDEA325763DEF8B4609A9B3F6EDCAB07C5C7B34FBDD9C52F3A153D25E1C39E8AC8F58F64460C27D42B075B0963D1AC4810381",
- "legacy_metadata_iv": "25C7D74AE6BB212CDFB3DF00",
- "legacy_metadata_key_hmac_key": "4BF40FCDF052F37D2745A4A452DDE4D3E35581168286AC417E89320C26BC20D1"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FC93",
- "expanded_salt": "B09953F75C73E79F693D942F4E82882D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BAB13D94EC7013ED1B71DD2AF406FA60",
- "legacy_metadata_key": "51CC0BE55FBCC62797F4B9A2ADD7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "923C77770D7D1EA41B8D42E0BC239E06",
- "derived_salt_first_section_no_de": "53E7416747A45D24A639ACF07FEF8A13",
- "derived_salt_first_section_third_de": "52557AD5D07CAA526A10FA40697DF988",
- "section_salt": "0120DCCFF47A682573D615EE873341EB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "76CEA88EFB8FD5F18994C1FD",
- "extended_signed_metadata_key_hmac_key": "198C9646852BB6459EA33F177F7A469A07FCEF923A377D12DC64267F41874296",
- "extended_signed_section_aes_key": "8C27C6B8FE1D324BC6716F0047B780CF",
- "extended_unsigned_metadata_key_hmac_key": "AA0F56FE6B969CF35D1C57635498F8AA47284302060D758112CB3F5ED0BB9707",
- "extended_unsigned_section_aes_key": "EEEB3C1C7DD16E8E5A3680997975BD83",
- "extended_unsigned_section_mic_hmac_key": "2D4D30170BC2F827727E6241ED39B856BB0FDAE1448D02E325F799C70BA9D44B",
- "key_seed": "25011350393755A40AB2250366EBB6202FC695ED4DE0AA92B5D7C01CB8579221",
- "legacy_ldt_key": "05D7D7F6E75F6AD8BEABF642CA7D8A02F7710A5431D9AF4D49A6E0053844E7498A420523996A7A8DFDBA33C6CF9164094773568124AD9627C3C747869E7127AE",
- "legacy_metadata_iv": "EDF10A4BD0AE4DB7B9F283D5",
- "legacy_metadata_key_hmac_key": "BF1DC0CB7651DB5F39ABDBE48E9A55B5AE5AAC2832D08A83B6E00099C180F403"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DF39",
- "expanded_salt": "07238D9C77FBB8AD4AF274AC0A2FA358"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "66CD488952944D53F322128CA1127530",
- "legacy_metadata_key": "6AD3CB5EB0D9DF94849246876D01"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BB04C6B15CA4A69B5E67FB3BF52A5AF9",
- "derived_salt_first_section_no_de": "DD0BFE4D08CE1D904652CAC3C496020D",
- "derived_salt_first_section_third_de": "4A755A9A85762B34C8AF866F61A54750",
- "section_salt": "8DEB3EF67A89A0D1C6136A229C7FEF4F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5AC02B34F20102273C4E3376",
- "extended_signed_metadata_key_hmac_key": "8973E4760643DF6066C56B148E3EF43DB9202B6CE6E048D5F26F64A0AB853732",
- "extended_signed_section_aes_key": "6C0F81B7837062E2A841EFEC3B621EF4",
- "extended_unsigned_metadata_key_hmac_key": "6B9DF6705A1B5083EFC01B057712B6895416F5944F7E50D5164C2A107DC6B9C9",
- "extended_unsigned_section_aes_key": "81A8B8793628B92E9350866EBF144A8A",
- "extended_unsigned_section_mic_hmac_key": "5B706C15BECC02602622023D84F403D7BECBEF10F5DEACD2AD3D2FFB328F08ED",
- "key_seed": "D650FB442F1134292E7D0077C684A840930249F93C9B878C771CD5FD2DCA52B0",
- "legacy_ldt_key": "B1EB0F261DBCF8A823E22C1CE7DD3B2BA24044DB7A0596745AA4E3600A1BD604D8DF5E23AABB13025DB2570FC097731EA09B1E470C227E9E6FEFBECAAD43A18B",
- "legacy_metadata_iv": "A45B4C40160ACD9862C5BFF8",
- "legacy_metadata_key_hmac_key": "00D1B0917B195AEDE3F2D7B39DAE2F5D4751CEE718376E224967B65DC62CF635"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "054C",
- "expanded_salt": "17BC91B0BFA276E151E05886E781BDB6"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A0DF18339AF3DF15E02524B6CDB2B979",
- "legacy_metadata_key": "7C2A9A8779AB723860F7DFC2E799"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6327F09EA4011150DD257E480A3F49FB",
- "derived_salt_first_section_no_de": "F9E2BC7B2B5EB59BDCC0ADA300F711DF",
- "derived_salt_first_section_third_de": "1CD74472812835EDA294279BBB651038",
- "section_salt": "AEC905F4B4F8C02318F24E17C0F9FD49"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4CA433AF3EECE7E14E426E5D",
- "extended_signed_metadata_key_hmac_key": "9935A10388A48B2445AC1ACBE4A70640F412392C51D1B697BEDEACAB35A94C22",
- "extended_signed_section_aes_key": "3909DB8F91DA0F70216A7490ABA9FF88",
- "extended_unsigned_metadata_key_hmac_key": "EE02A0A5D9693060AC76B7358762A9947EB395CCF2432746CC6CD96F92AA3246",
- "extended_unsigned_section_aes_key": "C941F686B4B2FFA15656107BD9DF1709",
- "extended_unsigned_section_mic_hmac_key": "6B06058AEE61714872B6F8D699535638166E465CE0E32F4ED68F219B6E78F9B1",
- "key_seed": "618F2C0F5C440EE7D34B4756BCC6FC1C3BC9DF0DC99595E000FDAC54224832B5",
- "legacy_ldt_key": "190E0D41321CD2F4ABBD808D42CC92990B13EA924057D4B60E04FDE011E33D456295122CAACE56A4400387088AAB10F1A410FC57CAE3A004ACE8A0319DDC47AE",
- "legacy_metadata_iv": "81985A4F86F03B84C190A41F",
- "legacy_metadata_key_hmac_key": "0CB2C0CF96088224D98C359B32289BDD55DCB0CA22E541462008F9E8CC784C74"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "F10E",
- "expanded_salt": "6C66323ECBD69F8267EB7761FAFDE7DD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "56DADAD0AAEE1C8EFF3F61C1B3FCBA7A",
- "legacy_metadata_key": "B7488EB44E0FD3A280537F42DABA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A22E3B109673A421B21488F3EF864223",
- "derived_salt_first_section_no_de": "D9D30C170BEA556D4090352122D7161F",
- "derived_salt_first_section_third_de": "EECBB26E6E1E996F785478A68EA1A698",
- "section_salt": "B6452CEE0D28F3287D67E35F71FED5C3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ECFB701D1CB69B0DE0B08CBC",
- "extended_signed_metadata_key_hmac_key": "D85D04F068900FD5071995E5253ED2B7CC77DC24F916D38FA4A0A9010ECEAE20",
- "extended_signed_section_aes_key": "DEC0FEEBC379435F25F0379A4DDCBA7E",
- "extended_unsigned_metadata_key_hmac_key": "91208CFD8138552366D94401512C42AF8189FE6A970E9D3C2D3CB9A5CFD94551",
- "extended_unsigned_section_aes_key": "6318492C63CC205C2880DD2028FBD65E",
- "extended_unsigned_section_mic_hmac_key": "D990DA1EC71AE65C236D3B96D0E479C69C138C6764F201F3E84243911ACF971C",
- "key_seed": "84960996CCC2B2E8CA3159766F69C1C1C3B86C5AA76C88876B7639C2C1C80BA8",
- "legacy_ldt_key": "638EF2EE939B3D65EE58FA6CFFACC12C0687F21E4C9F7181E08502DE9EA3F8CDC8E60F618E6627C3A8B10AE11F0DEBC5585687F9E9ECEFDE0D62ED679FA8A187",
- "legacy_metadata_iv": "B8E9FD0A5FA2C43C76BFBBE2",
- "legacy_metadata_key_hmac_key": "D346EC8C8FA6E3177AD3DB8DC8AFBCAABB2158D3FFA0AD36A056ACC754FB7785"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E8A4",
- "expanded_salt": "D1B534EB067F93727B9CC8C476845D1A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A150AD21CA1F980FC0A21A934E67001E",
- "legacy_metadata_key": "29B4D712EBF111E6460D9585506B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FF0F36002E9B0496DB7B84EA6086C2C3",
- "derived_salt_first_section_no_de": "18D9FC4333D8ADA44D96CC152694FBD7",
- "derived_salt_first_section_third_de": "CD6FC4641F2117F6E8A88D08C060DB0B",
- "section_salt": "1C57B3A7E8E77D90035635A24CF99B05"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "6900C2C6232CBC260C90C357",
- "extended_signed_metadata_key_hmac_key": "5E00EF61211CEFAEC07FD06CEE476286703D377D24D7BE78862E977618637103",
- "extended_signed_section_aes_key": "316ED828C741D906B53E94E4B0326708",
- "extended_unsigned_metadata_key_hmac_key": "D273E329DB67FB99D22F8F56F2BF11E677D0FACFA13D835BBB613E6D5E8C6972",
- "extended_unsigned_section_aes_key": "B18E2AE77D1C3287CA614669A7623FF4",
- "extended_unsigned_section_mic_hmac_key": "BA1574B42F568FCEB9728563717BDA02F6349855F158276E2CD5435036FDEC8C",
- "key_seed": "C680BE3DCB942C25F7BD48DC9B8DF0B40EC2332065864B3882A9EFFE1B7A859E",
- "legacy_ldt_key": "CCE9E252D6898DF9B9A33025EDC06DF58D92BD5AC697C01E05BA1F34890B65CE337F4D2F564E17BD183B4CB9CB90D8D0B2EB626989A784648412FF767289792B",
- "legacy_metadata_iv": "F47F9D7098A7758D519E850D",
- "legacy_metadata_key_hmac_key": "1FC88CC495F49C4A5EE24366608198448002349AB4AB179C8D4FB976C61C2083"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "22F7",
- "expanded_salt": "2552B02476F41839C9B821F6412D41E8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "410CB44DB0A18B20F8FBA666EAB2FCD6",
- "legacy_metadata_key": "32A6DF9F2BA6FF591108AD36E48E"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "15376BE29792F072C1DC5CD16166BFFB",
- "derived_salt_first_section_no_de": "53E1C3DB50325B36C967853F30C5FBEF",
- "derived_salt_first_section_third_de": "8E12C6B2FB0226E7270B595D807F3E8B",
- "section_salt": "C6B11ADF2A64276FCA5C95D343F80AC8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B2A57B0AD48383F73DD5672F",
- "extended_signed_metadata_key_hmac_key": "040F53FD5ED62672D79308C3433D0FF909EC86EE23BDDCD8D50EAD4D47BE44DA",
- "extended_signed_section_aes_key": "783EA30031E0D4121E3225DCA366166E",
- "extended_unsigned_metadata_key_hmac_key": "C078909FBECEFCAF33C641A952F2FB4EE4DA54D0F9E1CFC638E96401820617A6",
- "extended_unsigned_section_aes_key": "CCA4100A32BFBA148CC90CEF267F103C",
- "extended_unsigned_section_mic_hmac_key": "B5DA0629227E4E3C054DF16F35A0ACE3B5D1DD5C4D51B9377D4B69C2EF417268",
- "key_seed": "70833A8415896CDDF07B64B135063DE4180179CF2CC04244ADF71FEDC446FA48",
- "legacy_ldt_key": "A3593CBF8927B5BE32534121E6CB6549985FD0E8DF083D5DE8B58107308C2EFFA7C3CFF54C08A9A46DE896772A7E7EFFDD75AB8B8B4A435D5EB79137CEFE2104",
- "legacy_metadata_iv": "020408C9CEFF66815BA33A1E",
- "legacy_metadata_key_hmac_key": "4CE2A8AB3500CF760FA8D0F632C494E73DC37286090BE648F87C4FB5A197A67E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "278B",
- "expanded_salt": "9B02F89BD3D54FBC4E846B64016C38FE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F5468900C84CFC1EBF1DCE747A4413AD",
- "legacy_metadata_key": "127BDF4C0E8BEDE2C3D1104BB2A1"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2C041A1317FDAB1A46614E8AD68EAE35",
- "derived_salt_first_section_no_de": "57064BB1D7B2FCFAA823B60FA146E406",
- "derived_salt_first_section_third_de": "C29B18AABA1403DB93E55EA06C333342",
- "section_salt": "64FD1D316481C967CC1FDC004CC2AF5F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4A0636312B3ADF62C09D19EC",
- "extended_signed_metadata_key_hmac_key": "907A9EF7D107A156C2045B4F4DADA6ECD162EEBB6F26BBD359ECD193A1E0AE28",
- "extended_signed_section_aes_key": "FDDA1EF2FC95A336D61CFA0BA7ED4AB0",
- "extended_unsigned_metadata_key_hmac_key": "C292B0735B77207B90B9AE5A67E4CEB185FB38CB2A135201CBB391212E16F079",
- "extended_unsigned_section_aes_key": "67F75697C60EB3D2A0797FD3820053B2",
- "extended_unsigned_section_mic_hmac_key": "C652CB537B46A064FF1B48C883EBBF96BDBACEA246C65D4D9751D1F0EABDFD8F",
- "key_seed": "B162BAAC0A26F0852E253BEB9913688670C3B1444BCE96C7A531398D4192898E",
- "legacy_ldt_key": "D793771E918928F295A3F694D400E593595AC4C0127804B76D91CD9B77062354D702868856CF2C2A0761CBF3690A4CA83A21E4A931D09DE51C43FBDB45B3E0BD",
- "legacy_metadata_iv": "5C510C19EF44A6EA162A20BF",
- "legacy_metadata_key_hmac_key": "B76D3AA27720614B864F1778734B9E07EBD718D981E9B5E1CD812CFF2F9FFAC0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3C50",
- "expanded_salt": "CD2B2D3749B39A6D9F5F62FA19962946"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C5CA2A85548A6093CA7525E611D8895A",
- "legacy_metadata_key": "21912764C83F106BE5A7E66B42C3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2B170E4718978140342FFE30BF7F4E09",
- "derived_salt_first_section_no_de": "491FC0075BB3C221ABFEF96526066B9C",
- "derived_salt_first_section_third_de": "A30DB0E71620BF007EC1F7AB218DCCCE",
- "section_salt": "AADBAEDC98EA7B19AD40433BE3890605"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C519FB4E374FEA29CF74B0BD",
- "extended_signed_metadata_key_hmac_key": "E52E88D0386605E52F63B62355CD25BAE511C0AFA509CB35F5E89FBB9CECBC56",
- "extended_signed_section_aes_key": "C122489BED6FFB3FCF6EE66C86FD3A82",
- "extended_unsigned_metadata_key_hmac_key": "0004905C53FF54800605959877B213E5D309ED2F645DE6A62CDABF063A93E02C",
- "extended_unsigned_section_aes_key": "20AD6A337BF185DBE8A71C5DEDD5E229",
- "extended_unsigned_section_mic_hmac_key": "8493DB5E06779BBFA3280670EB982CBAFE884B58DB81300069988E4415C7ADA3",
- "key_seed": "12CDF0C2B492B0C7F223F9EBD4CBC940EA3F9182BACB1B56E4000E2E9B6927E2",
- "legacy_ldt_key": "AC1FA24AD13560DCFAC0A0611DAE471F518CEBF8AB1AE680E66755405758AE46CAA414C435744407A4FD7C269BD6A7FB6CFCB03FB4BE9B88CAEFD0C53D07D2F5",
- "legacy_metadata_iv": "76893FD2BD1720F18796A38E",
- "legacy_metadata_key_hmac_key": "961C4FD2962DE04FE534FDF91F4C0FA0A7454C6B62349872B0308E194C222054"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "1557",
- "expanded_salt": "FDFAB5807610890DD31812E4D0D2FDFA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "03BB85807418DEFA516275CAEDDA1652",
- "legacy_metadata_key": "0535C52A2DB1F7C066890C31AB4C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2AB54ED2A56A4F45C71DB27B4FF30045",
- "derived_salt_first_section_no_de": "2C24F37D4FE06D37F2C5B8217A02DCA9",
- "derived_salt_first_section_third_de": "7131F37E14FBA4E8727C0E98EF029642",
- "section_salt": "EC91CCA16556DA697A4DDABE49FB3D39"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "ADF3E9CB8F56B50D563B294C",
- "extended_signed_metadata_key_hmac_key": "0C602DA3D058924485BE37C851F0D260F2437DDC3940DBB7D872895C9E6AD014",
- "extended_signed_section_aes_key": "438A6C29A0D06A6586505AE5661DC39E",
- "extended_unsigned_metadata_key_hmac_key": "9EE73817B45656DCDE6EB3FD4E650A549703024088A4CFA87E26FD6B73F25320",
- "extended_unsigned_section_aes_key": "7E0A0BE67F4B472E3C651790A1FF774B",
- "extended_unsigned_section_mic_hmac_key": "9A67D5AD379D3BDA1C729458EC60AEF5CC611CEBC9286395154C16C04A08855B",
- "key_seed": "0AF39BD4E8721C8F12BAAC9BBF3D596DF010B30FAA727DA8786B50A3E3D42324",
- "legacy_ldt_key": "53B22E39BCE02A2C4D4615C520846F47E51AF486F74024F1DFD81C213CD1131421D7AE20088B61D8CB0E700FCCB28D2938E35C6048C3F818389E865813AC0F7C",
- "legacy_metadata_iv": "36D10A1EF956F9540E429ECE",
- "legacy_metadata_key_hmac_key": "53B701E2F90596D7BE6145BA75B25CB3640586B703FF1AA15C8B97723F384B67"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "EF69",
- "expanded_salt": "B35C5045BAEFEB744E7CF0DE392C5D87"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BAC2CF0543605C128C2B37B6C8E22B1A",
- "legacy_metadata_key": "A335674BD28494AB6FCB5992EC32"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "AD983FECC6421CF243D540CC3D434C81",
- "derived_salt_first_section_no_de": "8833FF5CDB8ED4B6F1C780F18465E82C",
- "derived_salt_first_section_third_de": "6115D8494A4B578B48262F477199F54E",
- "section_salt": "8E6F23C47BF3CB710C8BF75076206494"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3953036ACD223588C4C6FDCF",
- "extended_signed_metadata_key_hmac_key": "B56B8BE50F8ADB7EED47FF37719CE92D1E308623FC49CF9FFED0105FBC012983",
- "extended_signed_section_aes_key": "792BF247A5D031E7E2448D00E9F9489B",
- "extended_unsigned_metadata_key_hmac_key": "2615DD5740D8F76429050421392355701A6A031790C37A001A2377A74B5431AF",
- "extended_unsigned_section_aes_key": "5BEDD2ACD2EB9640B1AC93C277E7FD18",
- "extended_unsigned_section_mic_hmac_key": "FD9F1A7175811642F7CC330E5863F338F02BA3DC4F754929CE2EA9B11F0DFDC8",
- "key_seed": "79334D471D53FB05ED767AAE9E6835E8FD4B8DB9C8403C55255C64205439ED36",
- "legacy_ldt_key": "8188C555E2CE734AD622F2B0E5B52DA62114B89AB6581D1E9414B163160448FB67F8B4F9EADF2EC45E6F936EBA0492DBFC89EE8A13AA6F7D24EF23C9C1AF6221",
- "legacy_metadata_iv": "768218A6A612B9464A733620",
- "legacy_metadata_key_hmac_key": "253D56D8A254F57A9D8994DA4622039FC08F938F09F6F9EA6F9AB097115D9B90"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "13AB",
- "expanded_salt": "856813A23F463DC9FC1DB25DF62FD2E2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AE0D4974CA00DD561BE5563A62396C7F",
- "legacy_metadata_key": "4EF500B52A97F3C6BEEA60ADEC8F"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B6AB9396B749D953E9A516C59D9CD4C4",
- "derived_salt_first_section_no_de": "F6724B64A65A3CA0DEC3151A6B497705",
- "derived_salt_first_section_third_de": "666BF9F18D7A8120BA63AD74B4DDD89E",
- "section_salt": "B9E8E885B3E8737FEE2569785D409C81"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "594854FD1207AAC043540DA4",
- "extended_signed_metadata_key_hmac_key": "CFBAC73405D27C339562F3F87E4D9A4C32F3CC26799DFADB5D9395F64F459417",
- "extended_signed_section_aes_key": "D2043AC7D4809E24709E22D1F6B7E379",
- "extended_unsigned_metadata_key_hmac_key": "8ADCDE4CAB48F458776ECD3D9EEA63F5A153EF93149D0DC885AEA49FC40B17B4",
- "extended_unsigned_section_aes_key": "B3F4063F1B4AFFD04AC0EA1D63941896",
- "extended_unsigned_section_mic_hmac_key": "8FB44B55F4648CF2D70F7375EA8D36DDB4107CE120B2AE56E420B0D87ED664A5",
- "key_seed": "C0E3CCA72CC94285D899BDA6EEAE36251E0A0E603DF44CD88043411DE9A36636",
- "legacy_ldt_key": "902B7A947A14A81B1612F8CFECB2E1DDDCF8DC7FAAF975C1301B8251C156A978E678480C466055F9A4865A05A2BAEBA1A22B4AB5F549111FF718692016C40B32",
- "legacy_metadata_iv": "248FE4531D4C2CFA436A98F4",
- "legacy_metadata_key_hmac_key": "86DB089B8A6E3B4C8C328F08541082E31CCDFC877FF5161BE0C782AE7612C802"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4092",
- "expanded_salt": "0BBBCE5F448F31EE870E32ED5A5AAB57"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3B574DBECE9EE782E2AA74AFAB095D0A",
- "legacy_metadata_key": "57DBC8FA96538CF17D79AE790025"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3B9E0E72EDB8F3E4B3BA3D1DF8A6B261",
- "derived_salt_first_section_no_de": "A00F32C324A9182694466300E28BB597",
- "derived_salt_first_section_third_de": "2D5205A637D14CD91D60EBD73AF466B7",
- "section_salt": "1B2833582E5526ED291D7C97ABB5FC40"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8125CB41B099BF0578D43CFC",
- "extended_signed_metadata_key_hmac_key": "44FE5B4BDE2A4E65F0D06969E67C8834CBA4025D92DCAB8A38FBD133EC16B3CB",
- "extended_signed_section_aes_key": "CE9DC9FE542C48CCB5A806AC4B1DF963",
- "extended_unsigned_metadata_key_hmac_key": "5A9F06AFDAEC67EA52F025BECE123FC7FB6601F79BE997915B155CF4C1CA792A",
- "extended_unsigned_section_aes_key": "84E9773A2E710197068B7F92184D68A2",
- "extended_unsigned_section_mic_hmac_key": "EDF2AA222B62222806D5EB8E7FB10873CADB814C2CA47B9264F78BE4B7A73242",
- "key_seed": "829AFBD6D8AEEEFFE921964796FFC55897E02DEF2E93A674BEEA9B8E6A838295",
- "legacy_ldt_key": "662FE07EE8300CE2623CE7A69E5D10A459EAE38183444F2CE358FB063A711E3C498FEF4B28BE51B7DC24BCA9171756BBAFE4F961A2B72EDC5DF660B87B381759",
- "legacy_metadata_iv": "C5E06D5B51AF27A89DCC6DEF",
- "legacy_metadata_key_hmac_key": "334765EBB96A0AEF87EAA0093BCBA72DFF09840646DD80E69C54FA33A4479B59"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "36D9",
- "expanded_salt": "0587BC066378F06D9670824BC5DA6942"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "775BE5EAC4782E5362FA8F5339E9ED55",
- "legacy_metadata_key": "71EB14BCF2D9B8CDFA2017C1AA16"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "910F97DE20C794741FF9E0EA8F034D15",
- "derived_salt_first_section_no_de": "3CD23118074A9A4C4EC62FC29AE5739C",
- "derived_salt_first_section_third_de": "68CD8FDD59C30EAE8A4D74F3754D890E",
- "section_salt": "FB226DCD59D900E39D33B739D7C509E0"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E0571F423706E68E57ABBB6A",
- "extended_signed_metadata_key_hmac_key": "C762B59C13ED2E3F79B18204E2A686589BB3C20B8B61A835DCE14AF2C156223B",
- "extended_signed_section_aes_key": "9E0D93ECBB04FA78C74DC72C60FA95FD",
- "extended_unsigned_metadata_key_hmac_key": "2805CC289CBCAFF18E0E2C7A3DE0D037E824D58BA55AE4B6790C3C81F9D9BAC2",
- "extended_unsigned_section_aes_key": "30BA61DECB0A1C5C459951E295A46107",
- "extended_unsigned_section_mic_hmac_key": "1AD9FB1AA09BEE08C2B3834E712A7EE02A182FE3FCED941789E7DB04910D7CDD",
- "key_seed": "49EE63813B5160ED880213E7F834A491C626BEB799FF4A13655462BB9449D415",
- "legacy_ldt_key": "035DB4EA2CC55945B42696CEF70DD94CE86B412EDEFEDAE5EEFC0EA53DACB4FA7F6909205FEA8BA4EF339CD067F19277F21F6A9ED6C6429479DECA62B381447D",
- "legacy_metadata_iv": "3FD9295482CCF6C24B0CE92D",
- "legacy_metadata_key_hmac_key": "DA1B3C371D4059D229337B88F14CADD032109A8CB899CDA42475B1AA01C13BC2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "29C9",
- "expanded_salt": "6A8F63DEB016D1B6896068393260E54E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2F7B646FEFF6D1E60BA965752AF5D882",
- "legacy_metadata_key": "20B24481851F82559847B41B98A2"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "54C28406856681A59F7239757BA35875",
- "derived_salt_first_section_no_de": "509196DCF02E1A0FDA883B25D110CFC5",
- "derived_salt_first_section_third_de": "6A403FCD71B4BD6B80745F589FFB4B28",
- "section_salt": "D38E0D17139B8C23198AE9BE36C75D1D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CF80263C885E04809943E860",
- "extended_signed_metadata_key_hmac_key": "6FA4D25E90FBC0E1CBE764F2FE51E9D294F4598CB6142DD19BFCF9D77A51DBE0",
- "extended_signed_section_aes_key": "3EC6A0D9629C817780A3066A0C88932C",
- "extended_unsigned_metadata_key_hmac_key": "12EA5BAF10EDE8F0172A0EE3608F53445E611416ECD03B6FDE6A81BFEDCED7D8",
- "extended_unsigned_section_aes_key": "5C85B128F6EC697B7524EFAB9541AD11",
- "extended_unsigned_section_mic_hmac_key": "71DFCF2BC17DFBC467C79BFCB0BD6D6AC539F101A84676468BAB446C2ECAB686",
- "key_seed": "CDF2ED3D2B8E42DA7EBF1D67F78868B41EF9571C7545EBAF9E1879BA2D9F4CCF",
- "legacy_ldt_key": "8D53EBD45957860D23BAD5F21EDB87DAD05665869979C9CAEB6B4ECCBF64024FA08CFC0F0B6D47CAE0F92759130AA2BD2A56C9746CCE9892B149DF35A0B49DE7",
- "legacy_metadata_iv": "3368179F12F2F1991154E0A6",
- "legacy_metadata_key_hmac_key": "55D959D4579C0E16EFFEF818635D76962209A70A6A39041E65AD1F2A1D226B3C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "38B1",
- "expanded_salt": "755BA0258E4583354AFA8477C0DAE417"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F9577EABE56000549CA33D5AF128B321",
- "legacy_metadata_key": "228EB9B12D27829F6621D26A85B3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "71EC8419191AB1215D6A173EA710868D",
- "derived_salt_first_section_no_de": "E612D4ACC66917D6B19FB34DC36B9029",
- "derived_salt_first_section_third_de": "3CE167C5EAB35813951BC43E02C46A5B",
- "section_salt": "30E65FDE4784934C001D538AD8179199"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "54947A589E99ADF52C8300C1",
- "extended_signed_metadata_key_hmac_key": "6D9D40DAB08EE30654AB14EE997D65CD1B9EA0976A6456BD2F572949F1746CAF",
- "extended_signed_section_aes_key": "B66E31A419FA7B68FA8C2F3E8E911EB3",
- "extended_unsigned_metadata_key_hmac_key": "32878F14E6EF18DC62D78E53FF8ED16E478CE4C2B47FE5A166386A94F3B0253D",
- "extended_unsigned_section_aes_key": "F2E9156DA90414A2445B34DFB69060B0",
- "extended_unsigned_section_mic_hmac_key": "B5A0ABFB3F7B369ECB0CA8A4ED1A01082F0CC9BF6D6DD85B82DF652825880F4A",
- "key_seed": "2210D54CB08E5303A968F76AF361D24BB52E719142A2CD7DB2E375D17D39FF64",
- "legacy_ldt_key": "AE3A543FE8B03EE16E9ED0E7DAD6D33F230A808473E28DBF4E5ABB797E13EE02098074A56D3DF47DD8F1AFA09AFE000EF2AF4A04D93633057CC9FC26A377793A",
- "legacy_metadata_iv": "456C892469F0E9E56F436613",
- "legacy_metadata_key_hmac_key": "35409F81F482A7F3F2F9D23A256FB1CD4E29FDC050D3A2769FC409F9A7F3DB3A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B3B5",
- "expanded_salt": "8E64638C73A4829835028D35D4BB2B51"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "67FC8C3539E8610BF34E3280227C0FBF",
- "legacy_metadata_key": "FAA76CB223383371B79FC50FB01B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "07646461FB4C766B1A86D48EEFB624CF",
- "derived_salt_first_section_no_de": "8123F98F092BA026A45BA6F728FB5DE8",
- "derived_salt_first_section_third_de": "20B51E1ECF2B448520DE8E34BD48A2B5",
- "section_salt": "6020D38A34FA222C2612A14A6578A6F3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C03ABDC085A6B43CAE34E8B2",
- "extended_signed_metadata_key_hmac_key": "D508A338A764B1AB30D99A5D8C0C477314D5D9A73AA6D967231470ECBBA61491",
- "extended_signed_section_aes_key": "28FE92D6D5F6B7481938FB7AE11547C0",
- "extended_unsigned_metadata_key_hmac_key": "560861F65DE4DFEF3176797364B2D3F811A406202FC6514E0385F74941CD8614",
- "extended_unsigned_section_aes_key": "8EC8C693DB54150644FB6DCCF6A71A0A",
- "extended_unsigned_section_mic_hmac_key": "FB1AFBA4C8D3E52BF25827DC364ADB64D941BAC39497887EB3FB7A4661210226",
- "key_seed": "D8736C90510ACB6FF4B13308CB2675E986F9859192F9709056A70324CAD1BACC",
- "legacy_ldt_key": "E04A8348900826CCDD251519867839D37D3B7DD68877E1825E229CCD56A4893CB29A5167E95E6ABB08230EDFB7FDC54B26DA7D5F283C35CB449FCC4C6B72E105",
- "legacy_metadata_iv": "E05B9FDA8461320E2FDF443F",
- "legacy_metadata_key_hmac_key": "643ABD0077BC6C292B5D6544928279FCBF069134FBB7C6A709578A7A15450D8D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "91D5",
- "expanded_salt": "675B7DECF137408D37DC3C1BBD1C23AA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "93D9788A2E0CE5F63FE34863CA32D6F9",
- "legacy_metadata_key": "13DE1F8B87F65E301715BE58A9B7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "35D8BA2D03220C948A01133544F758BE",
- "derived_salt_first_section_no_de": "EAAE5355F01CF49580F6A62113E8AE70",
- "derived_salt_first_section_third_de": "C5EF437AC3E4D3D2CBAAB5CFD1F22E63",
- "section_salt": "48AB80B56715C1D22B993D5BB855434F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7196321137B5946FC555FD2E",
- "extended_signed_metadata_key_hmac_key": "232209A2C08BAD14F7D536D562284CCEC2B3539EFED4F6F3343BA92B85C72A45",
- "extended_signed_section_aes_key": "6F9D148EB61B4220DE08D6D1235EA9B5",
- "extended_unsigned_metadata_key_hmac_key": "4B160CA98DACCB779EC9382D6E1AAA373111473801C07821E7207701EA5D4B4B",
- "extended_unsigned_section_aes_key": "A575D2928B54EC7B8CA1550817FBE380",
- "extended_unsigned_section_mic_hmac_key": "A34EC699A1B6F0D7B83A7EC2956869CD68E35D1A2DAF1300B1449A879C068439",
- "key_seed": "EC08169790B45C3E811AFF2D5D4DC75C3496B79418F3299FEDBF09EBFA97B19D",
- "legacy_ldt_key": "8B1223541D954F3D812B062E92C8863F06A32975D5FCB4B1628B93AA72060D63EBC0ACBD90735D92BDA1549C736958C3484F67D6AAA765A4EE1D6A19E17CC051",
- "legacy_metadata_iv": "808CB3FC17940F92FC645393",
- "legacy_metadata_key_hmac_key": "5A7F30EECE966267B5B47C63612D76F279D1C9C5F540E2A07F0F8ED6C4C4F226"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "698F",
- "expanded_salt": "4126259A0C1CC8C0CBB4962E42ECCF2A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "78DC51FD1566F22D1FC72FA8235B4DA2",
- "legacy_metadata_key": "ABAA290655C7B87193A309DE523B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "27E626E3B40360206845C26A7609DD37",
- "derived_salt_first_section_no_de": "900A9ED747E75FA225E8F41ED6DE9F21",
- "derived_salt_first_section_third_de": "A61DD6CFFD1598F92C6F16C862C0CCB9",
- "section_salt": "FB351845254131CBF6EA523F2EB6C416"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0FBB0B896C9DDE3F7A2FB32F",
- "extended_signed_metadata_key_hmac_key": "E2640B2CA27AD0F12BDB8FFAE45876D9F1E69D76B84BFE5D4BC18FAFEC612156",
- "extended_signed_section_aes_key": "6BCFD141B5DBD5D2F8D424094E90744A",
- "extended_unsigned_metadata_key_hmac_key": "A53E7E59F733307B17EE9067A124F0B6753C358429A41311BE3BCAF7E64EFF16",
- "extended_unsigned_section_aes_key": "E35A1B3AFBBD5D436DAD8982BEFBDD7F",
- "extended_unsigned_section_mic_hmac_key": "0ED770504961DDCA84573DF44D4E063B549A615F4FEE4481AD885AE577175538",
- "key_seed": "44C3F6A86FA96D98B59593B0FA8D67BE507223C5F5B2460552B60C39AE65DB61",
- "legacy_ldt_key": "133660160C875FF6A38742907B593DB337BA99BCDD4DDACC9CB3056BB0E9F0A4AB0BD5A63594690D6CCB6C7DAF74B755CE94E6C67CC36ECAFFA6A296344C425C",
- "legacy_metadata_iv": "D8A1B9589D86CE74AC8BF9F3",
- "legacy_metadata_key_hmac_key": "1B420EBB950803B7CC3A398C554E0FD23994D355908301E2E1FBB3895629BC65"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5B66",
- "expanded_salt": "36E58EE82474FD71D13A0EB180F7B90F"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B60E2F8BE0B0BDDE85DF5294EEAD5535",
- "legacy_metadata_key": "9B268099E7833D7A6936B7E9A2BB"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "09E4140CD12D3EC4EC7FA7D2DC580086",
- "derived_salt_first_section_no_de": "94C58A138A3BB3744598EE9227B420B6",
- "derived_salt_first_section_third_de": "8C28D39C39994E0B64EA26A8BC4EE02C",
- "section_salt": "99AE10FD0D61F6015E96338F05662C42"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "96CFB73BA8E92D24EBFDE246",
- "extended_signed_metadata_key_hmac_key": "B242B295490DBA19991263BDCD592FC7C6D05A6AE021A4A49D82D5D62DAD0089",
- "extended_signed_section_aes_key": "7FEC907FBF16EACF4AB333CD11262E32",
- "extended_unsigned_metadata_key_hmac_key": "F373A9187B476A9CB3AE2F6EE373587D13524FB27A8FA996D20E288C217B5EDB",
- "extended_unsigned_section_aes_key": "405DE77E40D7877809BEC84F5EA088E5",
- "extended_unsigned_section_mic_hmac_key": "FD3CD5E11F4C252ED514C7ED063E4C41B6E7432ED045687A0A763574DDBC75E4",
- "key_seed": "484C3BADE117EF5ED0853D0236AEB3284EBAFFD3842A8F64809DB97FF0737A95",
- "legacy_ldt_key": "1FF415D61AF297074DCC0DE438997AD2673539A1AAEA7810DE0D71786ABA0938F3D5E672260D1CF4E4FD80F88E7A8AA1CB1C2F1D7BA0A353CF49BE6467271A5C",
- "legacy_metadata_iv": "2DEA4EABD3C216FF6FFA163B",
- "legacy_metadata_key_hmac_key": "716FCEF78790AA0D2880C5EEF0F30572B08BFAE3F2E2D280A5E9995627ABCED4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "35FC",
- "expanded_salt": "0F1C3592061E9E2B35B93FE8F63536CF"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C3B4B934A3C1AE6E400BCBBAEFB59750",
- "legacy_metadata_key": "F5786D2A8CA390833802EA265E20"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C3947C0C543E1093E82F8BBB838081E6",
- "derived_salt_first_section_no_de": "23CDEA9AA16E9E15B256BA5A502832A7",
- "derived_salt_first_section_third_de": "1913603F184067C699F0FB0BC5A5FA15",
- "section_salt": "E9C976705C80DDAEBFBDE82E6225F190"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E8BCE7D25ECEB34C99654A26",
- "extended_signed_metadata_key_hmac_key": "56DC7E9675AFEE81D6B5EEE579FA08FB76AF311F6326D0C21B9958D7EF943FAC",
- "extended_signed_section_aes_key": "1D5D406ABEFF94918802F3A7B3CE16BD",
- "extended_unsigned_metadata_key_hmac_key": "FE0BBD77D9FDEC8A9DA3128A8ACC8F5ACCF76F3B28FB1FABD3B8AE8B6B572971",
- "extended_unsigned_section_aes_key": "B76604C5C6047DE457D11CC1343590F8",
- "extended_unsigned_section_mic_hmac_key": "E64460EF06D16117B02D83051C4C34AF56A1C87EC300E12086627CB4D741B3AD",
- "key_seed": "BA0E4456D0F8F571166A2F59A3EE52F7D33F06FC1FEF0B97C2CB29C408C18127",
- "legacy_ldt_key": "15A277038D4095A80B800C629E5DAA8F32325107341E93079C0621D145846CC7AF2F325D1B9E6C0B7E1E41643DFD22ED91FD7373D0FFA0554AF075E32829461C",
- "legacy_metadata_iv": "55E2C7B3FEE376BB84E50C89",
- "legacy_metadata_key_hmac_key": "677476CA509480CD3A38C8952B2117EDE176D5609D495D8D1027229B5A48CB03"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "140D",
- "expanded_salt": "318015C25378863F12D105AD3434D7E0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AAA9A50B83DF05409AEAAE11E334BD97",
- "legacy_metadata_key": "0273D0247C4ACF1FFB44457E0882"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "66854A4FFBFB526FA5E1B8B2EFB3A98B",
- "derived_salt_first_section_no_de": "8414EA732C82C4189DB376EF4C6FC58B",
- "derived_salt_first_section_third_de": "A86DE478C8934BDEF1A72E7EE01EB48E",
- "section_salt": "801C5C09AC91FF2C67931C4C931B618A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "D9BE8D512E88D9279C04A01B",
- "extended_signed_metadata_key_hmac_key": "4B5612607FF6634242C80B4AD8E687311C1B3C52EBD8419B16AD5258C257CF1F",
- "extended_signed_section_aes_key": "65D98F87976F2ECC04F0498BD06FEE84",
- "extended_unsigned_metadata_key_hmac_key": "40811A3DC4D5B8C530D955D629EE77FB56C46C32B2C59B067C0B25E012F3CADE",
- "extended_unsigned_section_aes_key": "1CE90F8E863D39C86FB091F8D30C7BFB",
- "extended_unsigned_section_mic_hmac_key": "68CC8A8B339E825E61758F4761CD1B51B18DC67D916DFBE8ADD7A1814D4AD201",
- "key_seed": "C99EA89A881864323949EAF152608E2687B428421B75BF1C136A8A4D8555E7F4",
- "legacy_ldt_key": "2D536A18D56F83DF54E1992A74B3CDF2B9308FA50F7BB23A49839A1C182A9E2E1992F11DD70C540FDDC2F894DC7F3323DEBFEE688DFB0A200502579CF267B44F",
- "legacy_metadata_iv": "82CEE65997E42554B8BF5858",
- "legacy_metadata_key_hmac_key": "9886E413E0AAEE6B208574FDCBBBAC1D4752DE1345E29EEAE67363E8004031C8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6A0F",
- "expanded_salt": "9F7FFF5409B9CE723AEF1EB8F50BEE53"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "53A8E6134AA0D7E878F8B64124A9177E",
- "legacy_metadata_key": "87E8E066E0753B7A0021089D1902"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "96058905949B61F8C66933212CE42DA5",
- "derived_salt_first_section_no_de": "9A56D3418FB3043A72691382FEB46026",
- "derived_salt_first_section_third_de": "B07B087321D81F1998012BAE9B918BEE",
- "section_salt": "9DB30F06CDDE0D1A48DC501307D88787"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DD2CE80BBAB44E94769BF565",
- "extended_signed_metadata_key_hmac_key": "F4ACC04CCBB396984C04B4CA8132DB61D19A1B0E6E24336FCECBAAE4D1731312",
- "extended_signed_section_aes_key": "EBA456FF600DDCB67BF39ECF22B0F1B2",
- "extended_unsigned_metadata_key_hmac_key": "976A7E5DC62D50AB4704D82E92EBFB505FE62E0187CD15ED8B3D5590930ADEF2",
- "extended_unsigned_section_aes_key": "5787F2C6F3C2FF95638FC25BD81059C0",
- "extended_unsigned_section_mic_hmac_key": "3E1762B66F13C379327946CBEF18D243113AE4DAD7BBAF6A3B81B77D1111718A",
- "key_seed": "04AE51727D13ADD2E590B3E1C4FC056DDB01EBC02C2AE17BEA8E783A62C1A0F2",
- "legacy_ldt_key": "ECC66681709EEF80A757911F5B3B4F534997C98F1C40E0B5C53E7E9A82E37F298DC211DC96567F29E385CD343EE9011A37CAF72A62DD614AFAE45D1ABB85A922",
- "legacy_metadata_iv": "460A357B59B32316A846EC18",
- "legacy_metadata_key_hmac_key": "7D46FA7180E4FAF9CD393AD0659163139B184F778CBC952F4CD021E9DEB00435"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2CBB",
- "expanded_salt": "3E026D173529414199E4856CE6E8D4DE"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CB20180DB11001652BEC9043CE526E8C",
- "legacy_metadata_key": "8EEDE5CE446B573BD36503086277"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "ADF589D7589CED0389851CDCFB23003E",
- "derived_salt_first_section_no_de": "3DDAFAAD3F4C7DE34BF16DE9EC75AF31",
- "derived_salt_first_section_third_de": "8951F5D5C2AAE06BB4EFEB189B568BDC",
- "section_salt": "2689B694C8FECDF16871E4B01E4CAF6D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1CF7C3319D7C02B4D449FC51",
- "extended_signed_metadata_key_hmac_key": "15F3495E5BC7179EC2896AE89777406A27135C7BA8372B6A68B7F6AE4BC0C126",
- "extended_signed_section_aes_key": "73974C23B41090358A883AD44ADAD864",
- "extended_unsigned_metadata_key_hmac_key": "A5808157ABED6206C2C366122AD452A90DA3E6A04EFCDBD3C9DAC39793BB586C",
- "extended_unsigned_section_aes_key": "A7BA0929D9DD1FFC44347B036214AEC5",
- "extended_unsigned_section_mic_hmac_key": "B9F28219FE7030D8EEC5E1AD61496046476BBE77854F4230CF817FD631A1EE68",
- "key_seed": "090E0C3275E444877E7BBD2AF9C73E2421B49ACFF68A9862180BB007DB9229A6",
- "legacy_ldt_key": "EF8794C653FC44503A68DCB177EEE2DB9B842EC332247191C322A8FB53AD891FD7DB224503B6A98269099E58D26EF20CF95D30CB1C41245EFB4D87DA859F500F",
- "legacy_metadata_iv": "9F09DA10CEE1C0BAB8AD1A9E",
- "legacy_metadata_key_hmac_key": "C9E0949D92545AC0AF2D94B5D6F65FD61F88496F17E48AFC6C2072B2FBE9D13A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "61D3",
- "expanded_salt": "33C9F4AD7B11BFB04CED447220B874A5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6D36BE34D2F4E45734D9E1878D026168",
- "legacy_metadata_key": "3600FDAA6EE862CD16C0CDB06E74"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1F8AE0C5780F13C83A61369AAE6E6A20",
- "derived_salt_first_section_no_de": "B89DA85F9833C59187EA6BD9A9837CFF",
- "derived_salt_first_section_third_de": "611D940BE0A6F331665EC33F288E6284",
- "section_salt": "18E1CC7B02F62CAA3BA40B503E01E2A6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9235A6ED8350105C4B63C08F",
- "extended_signed_metadata_key_hmac_key": "852029C979869F76E83601BC5AC93393579205882A788879EB87BB353D31226E",
- "extended_signed_section_aes_key": "AD7A4B0904AD93226EF1178BA40759B9",
- "extended_unsigned_metadata_key_hmac_key": "326615B2E1806F07736C2F02F840ED2C4D304D07AC70B6E8D0530C32F8736FBF",
- "extended_unsigned_section_aes_key": "FC58A7372639277C6168119462B0E868",
- "extended_unsigned_section_mic_hmac_key": "727C44D5257FA48B2D85F02E4F081C4AF7E04B2E6ED42F39CFC4E798C26E5D1A",
- "key_seed": "5C3F10A899FF970EB3B8B4E2FBD8519F90DC9C113A589CAB11528B5011017E1A",
- "legacy_ldt_key": "1D40D2C68CD5BF725F9269DD6EB2F8C0B4B272D00111D1117D70DFD9DBBAD5321352E62D84EE9AC33C1FC315E01B3B0572B1EE86DEB24FF9E3CE965292C74557",
- "legacy_metadata_iv": "69478DCC1181504604CF2BCC",
- "legacy_metadata_key_hmac_key": "44F76BA1EB14F56E3C3D64C86960559C8DD5D25454304EF3C8F27E1080343AE3"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7C19",
- "expanded_salt": "338F1A0F786780059AD7B1F2CE1F5F52"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8B39F02CF0DFE255A6A4E1CEC4513FE1",
- "legacy_metadata_key": "864746BB5AA930F30C9471CAF7BC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "605C761932EE06FA2E354CA4AC2AFEB3",
- "derived_salt_first_section_no_de": "CE6101FA43621BA3CDFB98D7F74BB243",
- "derived_salt_first_section_third_de": "14E3DE643277C43258B60A9EAC52C909",
- "section_salt": "49793F8B50EBBEF4C89D130E3B02264F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "783AA0D20FBCFEA5DCF8BE00",
- "extended_signed_metadata_key_hmac_key": "922E4062479DA8DF1884EFCCDBF5FDE83EE7B0234553AE090916C859EC46EED3",
- "extended_signed_section_aes_key": "B09903A9A9D708E4358A406D133B092F",
- "extended_unsigned_metadata_key_hmac_key": "7B8C57646B677BB6E6994CCECD7688E7D3F33FB73C6B16116398FE9DE4552D12",
- "extended_unsigned_section_aes_key": "A5F09436DB0B39F466603C07ED2D843B",
- "extended_unsigned_section_mic_hmac_key": "33AC4C4131C2E46D3997914CC5DD3E0C943B0FC1120CF57B70FCBC258E7B8D41",
- "key_seed": "9AC9843DD460EF96059AFB66B735BFF0A99999B56DEB366BF913EAC592C8C1EC",
- "legacy_ldt_key": "B60B82F7AEBD5DE754B3FB688AE824E76D86D32D392662F53A738D7B2AA40C04621D9476C94D6F2A9B4DFD46D7C38F026CF96FAF2166ED8D3B1CCD177E431929",
- "legacy_metadata_iv": "DCF7065E72CB1AA437710B5D",
- "legacy_metadata_key_hmac_key": "1436CC4596FACA9B44CEC0F7E4385E0BD4379C1F3EA60D29CAE1CCD0E150897E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6779",
- "expanded_salt": "018A5A406A5C02502890212F0EC826F4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "08D3E8211EC4BC06B56D8CB541150235",
- "legacy_metadata_key": "3434CEC7CCDDF6D848FBA2D46E61"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "FC667E682C72D636618D06841D86A456",
- "derived_salt_first_section_no_de": "881E8252252B047084DFCEB1EA2EA3F4",
- "derived_salt_first_section_third_de": "8A9036BB0EA2CF04DBEA41127FD99ABE",
- "section_salt": "0A32C7AC591018B6B6B31884871050D2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BF9EDB9A722133E63E0794B0",
- "extended_signed_metadata_key_hmac_key": "EF5C3072B53C346680A1AE34D0A0977FD27BF805D1344943C11B887E07C74C97",
- "extended_signed_section_aes_key": "1CE45B8031EF605D6004F75DEDA36E74",
- "extended_unsigned_metadata_key_hmac_key": "1C141CCE9718C4A889E0AE3CA0826825EEEB9CC8D2061EAE5FFAD6DBD6CECBC5",
- "extended_unsigned_section_aes_key": "7BA84C70030E72609936068EC676927D",
- "extended_unsigned_section_mic_hmac_key": "ABDB828170E7A8210BB852ECB7DB945C12B5D1859B8ED10D8D306F3F9DC90087",
- "key_seed": "466D241A55B0B99DE4D921CF72F48FD21966720ECA5BE733C038FDCDC5A014AF",
- "legacy_ldt_key": "8449EEFDF3E04E5CEC0547C2B8D4AF3952D3F62752DE1359D69C2A3F5E02B3CE85ECC0A66F0E579D3C2C6919CC6797DDF255AD1645AF2E41022D146495EAA71B",
- "legacy_metadata_iv": "FD023D6BE522BE3DADC132B8",
- "legacy_metadata_key_hmac_key": "01C8EA5FE9A41DA47EB09D5BC917645038D8BA9693D0764E884876EA289CC3BE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8B10",
- "expanded_salt": "8DD9FC5A37E591773BCACD08A6CCEE82"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AA0113340ABBC185C8D3647EC1DC47F9",
- "legacy_metadata_key": "7CC03841DD441BE7FE108E9198F7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6DC03CEBA3AB17018FCCC433E37AED2C",
- "derived_salt_first_section_no_de": "C093E970F14081DC9EDF61BF612508B8",
- "derived_salt_first_section_third_de": "23B27B17F4AF3E7CDD6C8763EE3143A9",
- "section_salt": "14DC8064F9C851FC5479517FB491E35E"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BF626482FE4B15F50A9CE204",
- "extended_signed_metadata_key_hmac_key": "F822AC62C69D51AC629F3EFA76E50197E1C48EF0D40C09658B76F286CF116FAF",
- "extended_signed_section_aes_key": "30AED51DBC922AF0EB53D0EEC3C4EDD1",
- "extended_unsigned_metadata_key_hmac_key": "29663137CF967AF7D93CB44D12D757AFBB770DC6C0E090AFFB13F9A99628FFF3",
- "extended_unsigned_section_aes_key": "48BAB2ECD733E603180FCD16A73B7672",
- "extended_unsigned_section_mic_hmac_key": "43F13AEBFE4E2109EF1F58940C44811743300F29926F8C651ACA19F48A77A2E6",
- "key_seed": "F52925036C3EE879F08429096B552658E85FE847CF68491664BE165112A201CC",
- "legacy_ldt_key": "5FE06DC7FA8143E0106A1312599DF66D62CD9561B6AEC33CA36BC0BE6FD65B920B3B3800DC9BE1616DB5B324F4B2E31D4DE4AB972F202B2FD9577CB34D5F9F0E",
- "legacy_metadata_iv": "4E163723FD7E6278C6D5B330",
- "legacy_metadata_key_hmac_key": "D45A90FAC9388351993FEAC3DB3E1DF9C3748DC38A7B0CC10585F753D38E848D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "13A6",
- "expanded_salt": "96FD867BCC1F25DAE0D9F0B6C8F6E718"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FD7992F07EE42A4C88ED33808EF5663A",
- "legacy_metadata_key": "877BC325FA7D72F4561794061D47"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "0CD2C93591B8B49DCEB99E1DF99CBC49",
- "derived_salt_first_section_no_de": "6AF35746C0017CCBA68175870A06DAA5",
- "derived_salt_first_section_third_de": "37E62593B217BAEE59C4D9B06DFA9ADB",
- "section_salt": "4EE7854EA2189199CF8E1A35F320463A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FF28F8127D1ACA4FE4A9D03C",
- "extended_signed_metadata_key_hmac_key": "82BD6D0664C2D626859832B646B93EF47D5B97B0CAD0BEFDF69000122536B671",
- "extended_signed_section_aes_key": "AF853AF33930996F6FC97EAD2511941E",
- "extended_unsigned_metadata_key_hmac_key": "F36C31632AF7BCC5DFBE188308E9D78DED035993351760804C89327E71D070D9",
- "extended_unsigned_section_aes_key": "C79193597B225770704B46EC0BDF8919",
- "extended_unsigned_section_mic_hmac_key": "D4EF7FDD8BA90657C9B9B9A69C2A77E7E06AC4A9001998BC8A36B59F1A49FFAA",
- "key_seed": "2CD8B104B54777665A95E9750D9E5201E88622C7207703E4E6B05E077497EE5F",
- "legacy_ldt_key": "8D15E275D18E62AA8E06EE4A1FDBCCE222D06F516FB2091D463427B4AD2D9386312EB6D60996EC239CFABCE7073D6AB513123720FCCB33B06673D74CA3335143",
- "legacy_metadata_iv": "74E9379405E50749BC5BA0CB",
- "legacy_metadata_key_hmac_key": "903084C958E1182D928BAAE0D69146919BB5D704F4751CF878D3650B813AEE61"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5428",
- "expanded_salt": "C4D273E6471F14440EA476921C31D49D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "57CCFA93FC5C4E7065511E774690C9C6",
- "legacy_metadata_key": "38102FC28ABA622C496516291C56"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "6D0D521FE92774FB5214AB3855C150A2",
- "derived_salt_first_section_no_de": "A44394E4B4C1989CB3C49C5217C73B79",
- "derived_salt_first_section_third_de": "25486B2EEA034187F678C83F6CE0AB18",
- "section_salt": "103C513843098E957592F814348E0C79"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "DB50DB814E1F8F6ED4A9740F",
- "extended_signed_metadata_key_hmac_key": "082A07AF9E892E8569F1A87BCFBA71B27A2EC99E7BEE17E99956861409CDFB06",
- "extended_signed_section_aes_key": "9DC647E8A4087FE8E653643E04997F59",
- "extended_unsigned_metadata_key_hmac_key": "B5FBB647E2AF427A4DC551B7BA7676781AC6DABB5B73B3F2711F5DB19D11EFA3",
- "extended_unsigned_section_aes_key": "CA5CFBEC53B1610149180883C29806FC",
- "extended_unsigned_section_mic_hmac_key": "3CFB53899D38DE8FC674B5AA970013106CE1A9B2E5C908513BD40673C59FDFA3",
- "key_seed": "3D76DEEEBCB2E00EC8A4CC7AE8B1451CF6D198A4D8BE5B30AE3355747973E4ED",
- "legacy_ldt_key": "C7EEC9F453F4D5908C3019989ACAE1B24DC239E6A47D26E8FD610746A986AB84BDEB6226A79B7EA2DD140278AB64EDD87D7CAF2DFB3FC1F6BCD75E9AF55E40ED",
- "legacy_metadata_iv": "FA1FED9CBE6122EABF9A6003",
- "legacy_metadata_key_hmac_key": "6883B944B606E94130FE067CCE4D6D2DEBA899BE3E20AE78027A23B0805EFA0F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D010",
- "expanded_salt": "8A3AE1F31340730500A9961F4250081A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "E435E87F165BAC985AF3E691B9A55271",
- "legacy_metadata_key": "CC040E0C747A79E625A287192F4D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8DEA7F1C8C15BCF1DFA5ACC583AB0694",
- "derived_salt_first_section_no_de": "F37D7314FDFCC7C0A177E4D87BEDD84E",
- "derived_salt_first_section_third_de": "FC9A7950F1E326FBB5821D89C3711B51",
- "section_salt": "2AE0F5A565551D88F4696BE16FDA9882"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "68B52086D452A66662279BDB",
- "extended_signed_metadata_key_hmac_key": "07A946FD7C037315A9EBFAC7868B7CFA5A8713EA854BB1CAD279C1B4CA6ECA2B",
- "extended_signed_section_aes_key": "9BE09E9F71496F4424EA2927947D897A",
- "extended_unsigned_metadata_key_hmac_key": "C9B965B9ABC830FE8BB9561B8C257F75AD58E36581F1149124A3300CC33669B6",
- "extended_unsigned_section_aes_key": "E5E28F3E89BC26AC3F1F2CE9BADAC552",
- "extended_unsigned_section_mic_hmac_key": "5AB978F831ECACD469D2788DAC91CD27B5243C817D0F1B586949B8A1B41F7BA8",
- "key_seed": "112CF5A24DD78691FAEF533879184AAE983A38BB6C039BBB0ADDDE35ECF470F4",
- "legacy_ldt_key": "ADE727E421FDA6151ADAEEBAB4954BDD99A2E186272A98D1C233CE4664ED227ACDE5D3C6241C1D191109AE571771B7028D19CD81908E05E28DF7B28F9C05B334",
- "legacy_metadata_iv": "9AF1C97EC16A7CD456BF0FD1",
- "legacy_metadata_key_hmac_key": "853C3F910B925E3F35A00AB741A8452833355B300E8576E954A1F5D1E809EBAC"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "16D8",
- "expanded_salt": "2377009B5A94338BCCAFFD6F6F237645"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "30C9235896A00620C9C8A307A006E7A5",
- "legacy_metadata_key": "43FAE4AE53A811089E4690043B3D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "CD3B552EDE40951660895E8626D868C4",
- "derived_salt_first_section_no_de": "5F6B6E4A415480620CAC4F69DCCA39CF",
- "derived_salt_first_section_third_de": "7544CF512DC873A628BAE1488966076E",
- "section_salt": "85B96CD2679E009D6C1A33D9CC4D8582"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9E92EBF38D2866897770009A",
- "extended_signed_metadata_key_hmac_key": "91AB147F26AE7A4C8C85FAECB1A061D9BDF5549EEDC3C1466D8188858A885E4F",
- "extended_signed_section_aes_key": "87D98AA793FC7DEFFE6EE19EF30EEBE2",
- "extended_unsigned_metadata_key_hmac_key": "7BAFB18E47342362D7CC6B525C92E18BE7423C2184EC8762375196FBFBC78C19",
- "extended_unsigned_section_aes_key": "EF8029ADBBB142F550BD135887B7EC86",
- "extended_unsigned_section_mic_hmac_key": "D1770C7736222CD039D580531718C741746977A036C274CBAEDF23BCF73B4292",
- "key_seed": "1819DFE9515B10D180C9941F9CAD4F7FAB1F5B6FE50C29AFE0356BCE87424B83",
- "legacy_ldt_key": "E050557EAAE47EBEF9BB616D87E1D031DB45DA594DAF381E26B7367D9F4B3D8A804D4062BB30BD9C8A4C9EBBC6F4C85DAC1F46E49F5A7129CB5DAA88F37640EF",
- "legacy_metadata_iv": "400A33A5226AE4CA54F9443B",
- "legacy_metadata_key_hmac_key": "5457DA054186713E25DA1FD79FB74422722C86D5CB8987E39CF2F99DDEBE4295"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9A5F",
- "expanded_salt": "B0532272D72D738B0D958C1C4A079AF8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "EF20DBB64B2769A3A7B4752D8BEE7AF0",
- "legacy_metadata_key": "816CBDDA350AC93A37ECD2163573"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "57209F59EFFBD983D4F43199D5EE9D71",
- "derived_salt_first_section_no_de": "B589868B76FDC51105EC9C1C69618C07",
- "derived_salt_first_section_third_de": "AAB9FFA5C415025C4033EC03CB50990E",
- "section_salt": "6A93D9AFBDE00D51FB1DEC99A161A76A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "5EE0114C0A5D1F614F2C86A7",
- "extended_signed_metadata_key_hmac_key": "1A24BEFAF752A74DDD6F615B358676CC6DA1CD306596F4B2E1AB0599FCDBB604",
- "extended_signed_section_aes_key": "8B8FB42E1BAC53F8E60426433A564A1E",
- "extended_unsigned_metadata_key_hmac_key": "2E961740D2DA19A1B9848116F4CA2C9A977F96B6803D0362BDBD4A72C11B60DD",
- "extended_unsigned_section_aes_key": "996E1F6875C65025F0ACA9B7151F2E1C",
- "extended_unsigned_section_mic_hmac_key": "48D8BF781E09227F7AF1ED30D6AA4C592A83AEFDA351DFF272B261B7C9524EDC",
- "key_seed": "8133F9B46AA7F27E1DCABBB99215B2C59BBA7BD5A8B39146F1322EDEB0D81667",
- "legacy_ldt_key": "E61DBCB9E5C4FBD6D5C3F82953B4C50E2AA28F0EFC7B3162DDBA0C6EBD5ED29C00C70491B8A5CCE8DC9BA1D0D87EB635ECEC09D71D0802884C2AE23D4855BCDD",
- "legacy_metadata_iv": "5DFA91D29C96D1E675D02CF9",
- "legacy_metadata_key_hmac_key": "2A16F159AB71973878C6DF144D048055E286BF2161CD22B535DB880A6726B6DF"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6C9F",
- "expanded_salt": "09E45E655C2AE39DD23CADA893348AB0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F535C56E3F5D28FA4479E5E115F8BC5F",
- "legacy_metadata_key": "8B1A9C6B37557FE913D66578CAC5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "BDC3234BA57DB24427EA2B655D94582D",
- "derived_salt_first_section_no_de": "1ABAD5970DF4A0DA873B8F1576DAB822",
- "derived_salt_first_section_third_de": "3B36B014CD258C3A727E06FC8E78F3F5",
- "section_salt": "AC379CD30E5E21E5919FF07862F031F6"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A9B6C23F72DF31C9C3AEBA85",
- "extended_signed_metadata_key_hmac_key": "79B3F028EACCB70B25E72FA59AEBB0ECA530C6F619DE206265E3ADBBA01E5348",
- "extended_signed_section_aes_key": "EDF84AC65B1C390E8A1B478E9DDEE33A",
- "extended_unsigned_metadata_key_hmac_key": "116166091704699E8EF996C295DDE3706681C3EBAC553B96ECB9EB3317D7F9F7",
- "extended_unsigned_section_aes_key": "744EBCBED45F030BD0F0E0B13715B8F8",
- "extended_unsigned_section_mic_hmac_key": "F5DB8E9DCF0163DB66971988AD870586B2CC5C4E6C6416D86C8963C1C2DC5BE7",
- "key_seed": "D862A8A0F3755952EF0A65C928D97E41FBEE7745B40641739E76E94BED935496",
- "legacy_ldt_key": "4960568F79FBF58A06EEBEF4AB995F0CDA96DC2A8479D0EAE1F48819B02BF29D4B3E92384CBBE11C8FCE9914F5AD987BF84D99C76C66845CDFA3E8AA6CC9620B",
- "legacy_metadata_iv": "561544C6F6D6CABFE727FB21",
- "legacy_metadata_key_hmac_key": "2849E4BD310FDD92EB735676572ACD03E3026CCBC76F286839F6EA6AECF080EE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "E8B5",
- "expanded_salt": "0A1A1F4C5B8A09D5C4BED0C208AE6E49"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2D3A08A02198B89C5252A8B109B41221",
- "legacy_metadata_key": "4E82C046544E2927A432647E591C"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A6AEE3F45E22A88ABD526056417AB4FB",
- "derived_salt_first_section_no_de": "12704FA636DD8CC35D6823C23406F604",
- "derived_salt_first_section_third_de": "2F76428641CEAC8A8796B2027D05A6F5",
- "section_salt": "891F814FB3FCEC12424957EB4BAA9DB9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BF5C8F2DE839C06484FC8471",
- "extended_signed_metadata_key_hmac_key": "89D56C626F4858F9C0DFB54A62AA8226CA51B2E74A49E781968E479887676BCA",
- "extended_signed_section_aes_key": "9F7DD5C28D9EB2FE195D0AFC3A8E735D",
- "extended_unsigned_metadata_key_hmac_key": "62DC04D661E8DD5394FFBF80FAA02BC854CA5AE742133D1EE3028FF0C40FF41A",
- "extended_unsigned_section_aes_key": "17BFB7956C0ED92E0D0046556F1EF654",
- "extended_unsigned_section_mic_hmac_key": "CAB6872757FCB0B363DD07B8E986373F97E783019005912BBC09EE0930A3DACF",
- "key_seed": "A43E255596A44A4D8A5ED735E5FCA0DC20111F31820F5960D0408BD84A14F302",
- "legacy_ldt_key": "7A4A9E335A3B617BE03DA5AB84A6DAB5A5884628D81C703FB59650A076CAB499E3D4E0840E05723E4F219E273A0C170FAD488DB32A8FB91F5213E27230C774D9",
- "legacy_metadata_iv": "3E545C98556F52F8592B9E49",
- "legacy_metadata_key_hmac_key": "59AEBEC2C5EC460D6684917AB53114BAABCEA94C39248E1C61990DE7737BEE9C"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AD02",
- "expanded_salt": "C4A6306DDC4C34333F78902BAFF82534"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "499D7E80D0C2F7BCE21F521354FD3181",
- "legacy_metadata_key": "AF2C471A4F181282521712A2122D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4377CC74984E7A88FDF50373DA0802C5",
- "derived_salt_first_section_no_de": "C87646150D1EFBE7D0E5FB1DEF099F79",
- "derived_salt_first_section_third_de": "ECC952A7B82B85011B8557EE9ABCE587",
- "section_salt": "EF3AC7288835C344667BD4A373521E7D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B9C8349CE6F0DDE030C444F3",
- "extended_signed_metadata_key_hmac_key": "3CA542A4DF17FD16027C5EF0093296F0AC6AAF348E050EBC6CFC60B32E0C5937",
- "extended_signed_section_aes_key": "FCB4E17CDAEC213CFC152F3A25818617",
- "extended_unsigned_metadata_key_hmac_key": "A50A646C06B4066C0E87496418D4310D2F28631842437FA24270C9BE97156C4B",
- "extended_unsigned_section_aes_key": "70E393BCD09339683AADC2C21AD89F84",
- "extended_unsigned_section_mic_hmac_key": "1961C9755A41840D370C27BFF74B87B76C71493F1682CAC66689CE6FC7F4CB53",
- "key_seed": "F4FD65F073AA04EAC2EC146338C03FFEF72B8B9D2F5E108C2A75275A65689F63",
- "legacy_ldt_key": "4867DF7B333A9E2F867061DCC772EE7C357DCAB29D425051DC9EBAD00F7EC9FA7C7D9D01E402A5C16B8096D8912822E402DA13B1B29CCD58D7CC14FDCF4B806E",
- "legacy_metadata_iv": "7BF60A6E49CF95AEBEB393EE",
- "legacy_metadata_key_hmac_key": "1CE46EE9C37503C75341832393FB07EDEE2DC617449E11865D4360DA42638685"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "612E",
- "expanded_salt": "2A8816484E873C544D1185249486EFC1"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AECDC9790AD7AC8559A3F45E6C8662A2",
- "legacy_metadata_key": "2A60EC3105AD064EFAB533C66263"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2D2749D0E3E151A4B3678B71E1F9E2D8",
- "derived_salt_first_section_no_de": "B2E0680B76D97ABB3EAD4BCF1AB4DDCA",
- "derived_salt_first_section_third_de": "21A6DC0727F75674F972FF79B6790A74",
- "section_salt": "89FE55914AC90193B68E091C2EDF6C46"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C1C59346B5955F692AF2A9DF",
- "extended_signed_metadata_key_hmac_key": "8339C9F94E0F386E50C5067159A1B8F082E40103963C94C0E807423872788240",
- "extended_signed_section_aes_key": "5F7FE6A1BD4FCCACB575144031063C20",
- "extended_unsigned_metadata_key_hmac_key": "9AED42B7E9385E063FA4B34967BFD5E22330BBF3AF318482AEEE78861104FC37",
- "extended_unsigned_section_aes_key": "06C9854F34297589193D8930CB90F2B7",
- "extended_unsigned_section_mic_hmac_key": "5F230A79BB0489A3697A4B6970FF5463CCAFE63A39EA605AFA30C51D96655EBC",
- "key_seed": "46099BE8BFE425FACBB54F12CC6F3CA6A8655A4978687095359EE2257DF3A5B7",
- "legacy_ldt_key": "6494E12A8F3348969749471C9202DD30F03B4A6A5666385D358E78D853F0EE5155B1CA22287A07C7791B51A3806BDDD53FD590FD9A193906AA6B3F4DCF8D0740",
- "legacy_metadata_iv": "3E71E60E8A1B9CF3C99C14E6",
- "legacy_metadata_key_hmac_key": "22036CC9E5FADEABE6ADF9F413A022D8F06ECA4D8A1DD5AEFF8F460D586385C9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7F2B",
- "expanded_salt": "601FA2BB4C18EF32EBEAC73CC837674B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "72C6C64104EB7D8CD799B17362B21CFF",
- "legacy_metadata_key": "E8CED2708F6F254B4F6FABD43FD3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "7116714C9EDA9931C479E7F3DBBA4D51",
- "derived_salt_first_section_no_de": "B2E68EABB8791C9A44924DE3D9AF3AD1",
- "derived_salt_first_section_third_de": "82178A489FC8514700533FAA1F2A149E",
- "section_salt": "EEB226B8C297E39881AE29FAC87A6D38"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "77676E86473AB92E03D8069D",
- "extended_signed_metadata_key_hmac_key": "D16524006946E3ADC6066AD2F99A094154EE9B0F39D6FC8F3B571E9EFB769B3E",
- "extended_signed_section_aes_key": "0E3F09FD57EC9569D9B4CABDCEEFAFD1",
- "extended_unsigned_metadata_key_hmac_key": "1147766A14D8843CAEBB77F35F7B44BA81FA746FB682471C98F52C2F6450524B",
- "extended_unsigned_section_aes_key": "5A5E8DBEAF7EA83DA1EC8C99FFCC5A9E",
- "extended_unsigned_section_mic_hmac_key": "6AA610A6C300C11EAF3AABEB25C4E634A12ADF9D8F7DD1C2F4DFF1D8BB45630C",
- "key_seed": "2400B0EC08A3DDC029EF4BFBF38345C6D3ECC5A88236BA3E4690A6658CD73D01",
- "legacy_ldt_key": "6467996F792D854AEBB8559A0329EFA4650CF18884BC09ED31AA2D2A84FC0003CCDEC491664E92ABA1380948B84E90F978A564963E6BCD085510672B08631833",
- "legacy_metadata_iv": "C456135670E5EC684CE57943",
- "legacy_metadata_key_hmac_key": "03021D288B1DAFB078648A075081158203DACAA7BD9B9B42D95D3590D32AB4D9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "70F5",
- "expanded_salt": "F2A90C138E14A3165B18F88AEDE1D0E3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A11F6017CB9478D63788A2333B6DE40C",
- "legacy_metadata_key": "3AF0EDF1B46045D05F13A7FF0E83"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "51C04A737F03B73BE800E2E7230951F6",
- "derived_salt_first_section_no_de": "9D2F173A0F2C9DA247BBB10AC8DEE07D",
- "derived_salt_first_section_third_de": "B81F1E3BFB46F825C8FB664F74B5E61A",
- "section_salt": "C7034896ADFDC368F451074A66273D01"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "952DF6D990852FE99E39C3AF",
- "extended_signed_metadata_key_hmac_key": "85629DE5E9221191956DACB16036A057399250D300E6E71C45465B625A439F4C",
- "extended_signed_section_aes_key": "5A64E56136559B05F95FF883D131BDED",
- "extended_unsigned_metadata_key_hmac_key": "86A23DDF4E18A4218172BB8D32966CCE08E02EB0BAAD3169C1F2ADB937002AC0",
- "extended_unsigned_section_aes_key": "C3A1DC505CAAC85E8724C94D08D09C45",
- "extended_unsigned_section_mic_hmac_key": "16439594AF3D62A0B3FD3F535E61D2799AB3323CAF75CF3E16562BA06B0033F2",
- "key_seed": "8C819F9F4E89C926AFAEDC5DCE08F7867913A4A0D55820C613D9DE480E74D6CB",
- "legacy_ldt_key": "9088943A7D82545FA6FEEC4F3FEF258B274839358AC70D735B4DB0E8091C27291E622D39EEFA35ABA0795904C611C1DE771E7C6342562EF3BC9BE3660E43F3FC",
- "legacy_metadata_iv": "51BEA2AB9692D14DF2C41697",
- "legacy_metadata_key_hmac_key": "DD821ED8689FEB6835774C05DCFF01CAAAF9E1A21CE5BBD02960F2AFEC4657E9"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "7F3D",
- "expanded_salt": "C654B76C51436F3B66C825067CFF451D"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "727561197B3522A827AC2D82BF2A7C51",
- "legacy_metadata_key": "2939674981493087B9E7854F614D"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "382DFBD5FB79F67C9AB9F07E5DF23BBA",
- "derived_salt_first_section_no_de": "8C30E224BE36A6105472055FA3C1E32E",
- "derived_salt_first_section_third_de": "04E71B0EA0EEF8F8BC8CB5EDFF96C9C3",
- "section_salt": "13E53B257EDA99DE63794F621D4746D9"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "521EDD930F7F3C1CA3836C25",
- "extended_signed_metadata_key_hmac_key": "A114F6BFADB5230AB225FEA7E03C9749D043248D852BF17EEC66DBC99765670C",
- "extended_signed_section_aes_key": "38D9BE08FEC33237F3A36FF57931CE9A",
- "extended_unsigned_metadata_key_hmac_key": "D4CB9D90C5D3FC5CFD7D027A5E66845A5B6C936A1F95954428DAF5706A6E767F",
- "extended_unsigned_section_aes_key": "0E7103CE3E84102D965EB215F8CCA3B4",
- "extended_unsigned_section_mic_hmac_key": "67D8B0F8AE29F128B09848A2D6E180EFD14738CD8053446B5F9B7AB2D25C2909",
- "key_seed": "2B25429DC1ADD007C22D59C30B34235B19074DB7107F36B3EE22E4C191AB6333",
- "legacy_ldt_key": "E92E1ADADE12B2E0E798320BE0F56EC0AE03314A12FB76D7AEF7BFBAF21CA04A35C3BCA2DDD1E156D34FF8C4A081DEAC8B8120BD97FECCD398C74CBBC420EBAA",
- "legacy_metadata_iv": "B78A6D30D5AFCE9763001C38",
- "legacy_metadata_key_hmac_key": "500D3A7573BD35123A1C94008262C4E96AAB925349FB4EE8EA83B87BEA591FED"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DB45",
- "expanded_salt": "14900E6F5D587840772F9F0CED732485"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "119B0138BB77EBC4B5284EA47AF98054",
- "legacy_metadata_key": "850B651FAB8A6CF46323CA6584B4"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B770235E385F057060CC708D78D99448",
- "derived_salt_first_section_no_de": "F33561CD16A4A57ACEE3D0F70D617377",
- "derived_salt_first_section_third_de": "1E748132AEF3F48C9D5D75C9ED2D33CE",
- "section_salt": "CF2AD1F1E84B882878241C58918338F7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4B949A8F40D91CFA5B02BD89",
- "extended_signed_metadata_key_hmac_key": "2B793D593C725C9B4AC9DC6335FA0601EA0E7956EDDAD5FEF72958F764ABB787",
- "extended_signed_section_aes_key": "46BFD521B2CFE17572DAF76BF24FAFFE",
- "extended_unsigned_metadata_key_hmac_key": "FE39FA19B7552861ACAA0F8A746CA629701903C6843FD2A92E75BF05F10EC95C",
- "extended_unsigned_section_aes_key": "1F9BD922960AE2A62A00E98D03402215",
- "extended_unsigned_section_mic_hmac_key": "939298BFA4752CEC44C0DD514FBEC34CBB17E071E5ACF5C8602B44977BE321A5",
- "key_seed": "4CBFA5AA09973DC11100DF566E3F5C9D4E18297316151031C8B172026B8F2712",
- "legacy_ldt_key": "A169F03551E4B330394BAC47008D73E0C9C82377DAE6B4FB51FC73F4CD5176E82E95221F80712F8B7EB33BC2E2DE10A7E93F3B0BD9F25443886C7F1DB5DCD300",
- "legacy_metadata_iv": "185D6676219F66B60C496108",
- "legacy_metadata_key_hmac_key": "91DF29BE286A4F1E0BC24697CB1B0A81B78314DEDFAF4862D6F5BF248EFD387F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AA67",
- "expanded_salt": "AE4409CCF501020A597094750D3100DA"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F1CE824C83FEA62E69B8A90C0AEBE43F",
- "legacy_metadata_key": "99AEB6145065BE05DA95A81E0CB5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1DA46213A0674A5621A08BEA5AFF0638",
- "derived_salt_first_section_no_de": "98E32A9CA1423E53A8DC44A68013B1C7",
- "derived_salt_first_section_third_de": "D95EDD548DDE14DB0A473A53EFD9E66B",
- "section_salt": "3D0CA6DFE9EB06278892229DF1C0F515"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "FE57E88DB9B8FB543847AE5A",
- "extended_signed_metadata_key_hmac_key": "F97E55DFAD9B55A4C8D31CADDB6EF598427A3EB286370E7FEFD64ACF453D6783",
- "extended_signed_section_aes_key": "7E6BB5B0E14AF2655FDCB7A355B1ABAA",
- "extended_unsigned_metadata_key_hmac_key": "926F01373D78D38104225090B2318DBDDD4CF9564DB7E36540CEAFB3E0E88E33",
- "extended_unsigned_section_aes_key": "1D9800B256D5C23EE6784C9CD60C9FC3",
- "extended_unsigned_section_mic_hmac_key": "8A86E45FE9AA7CA2C1FD6D3A484365C9FDB3FDCB6949D7561AFBD11EF29CF443",
- "key_seed": "5A072EE721EB31981C1DE623F07A05F53B92C23DBD22A884F1E51E5F1122FA5D",
- "legacy_ldt_key": "7C619EE5D40E4AB9C6A78AD081174FDB4B62CEFB3168D5901C7BFCBB508B18DC32C0E4FF16ED5DAE07DCDE09DA35E2DFE9B0E5E92F3E55F4087EDE2395A31384",
- "legacy_metadata_iv": "580D45D105965D2AC67889B2",
- "legacy_metadata_key_hmac_key": "3C02C87173F1D1D3A2EE0339A12E796A36B2DE2B7652F3CB18355AA119043815"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "94EC",
- "expanded_salt": "9251A3B4AFAC34401ED6428150334BE7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "F45C1F6FAAEEC298B1C66555D22BC87A",
- "legacy_metadata_key": "225B1FF513FAD41E2427712FC0E0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E2BF021597C1E0EA3430CBBEEE94BC13",
- "derived_salt_first_section_no_de": "97EDE84B6F5800CAAC99BC729FE1281B",
- "derived_salt_first_section_third_de": "092A36362036B1C25E15393647C9E2E9",
- "section_salt": "94C2B483749072CF76E247F3EC9E4300"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BC8B16950205B8573A89DABA",
- "extended_signed_metadata_key_hmac_key": "FFC860469E9D299ACC94AC5C3B08ADF57B7539FD25007FFC012EB0F5CBAFFF4A",
- "extended_signed_section_aes_key": "D9778E22A7D91BBD4C4C5ACBA0C8DE85",
- "extended_unsigned_metadata_key_hmac_key": "389CA3875835F63898A4C2B135A9C0863E7994C7B89E7111D94BF721BD8FE148",
- "extended_unsigned_section_aes_key": "7927076E8A642CBBA7B5BC42AC3CDE18",
- "extended_unsigned_section_mic_hmac_key": "04D7C9562F9494F32A0FB1738BAD4074227143FA66D1D485A23A6E91E3264F83",
- "key_seed": "167B91D6CD2096930FB297DAF1845931F42519271F4044085816ED038B8EFDE5",
- "legacy_ldt_key": "85D35C87B8C43A44DDB9267D709A7EABB32716B2B58208D991DA6F57A4B79ED3E664C0388CEA8877A9CA32918842CE95A08AB9CDFFED68490FA560452E148D8A",
- "legacy_metadata_iv": "66197AACAED3C8BC630C0CCE",
- "legacy_metadata_key_hmac_key": "3722B15F5ABF0688F3620192E820141E9024854B58DB9D584008C1F2EB6DA4E2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "6F6C",
- "expanded_salt": "0C397C241FB4024EC1393A471AEDAC51"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "918F3C9F8F1090942C6E5F453B0CDC0A",
- "legacy_metadata_key": "718C95F4BD2CA5F42AD20C0BDDF6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "3184A45272321CAC28D3C685E7F35412",
- "derived_salt_first_section_no_de": "F7CD8FAE76490B355103AA89B87DD327",
- "derived_salt_first_section_third_de": "F1247F129EADC49A39EE83F231168665",
- "section_salt": "A7CD197DC7B33056B305B184BB3F66D3"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "21E9C51A7F642BE80777F3F5",
- "extended_signed_metadata_key_hmac_key": "A83C4CA89274ECE46277B4049C9F2B9240C108476020EB568B9D22EE8E5C52EE",
- "extended_signed_section_aes_key": "28084D97C79C5F8105AABAB0721D558D",
- "extended_unsigned_metadata_key_hmac_key": "AF43C6AE67DA47762000C3648088F681091E6912F0C4C656F8DD52EED73D6D0D",
- "extended_unsigned_section_aes_key": "AF72F28082034D6661BF25EB8D45B513",
- "extended_unsigned_section_mic_hmac_key": "6D218356FE81F810BB01DCE9A96B8D6B35897E1CA5B5D15A8D6EF27CEEAC7CAA",
- "key_seed": "1F48EBA516DEB363775915AA4DEC842AD5DB6B59FA24654AFF24059A5A4D7761",
- "legacy_ldt_key": "1AEDB3109F44DE404F9B2D27C72DB9D9076D053D4D4F14C6FD7E9DCDABC6FA019AD422C210BD11DACC70D5D25D9EDCECBB56D658ABF237C6A3AA349842C45D07",
- "legacy_metadata_iv": "AC4EDF07A598FA8233A93E0E",
- "legacy_metadata_key_hmac_key": "3AFA98101781459F62FF97E36B2475D8FEE786504E0AFF2AD4622E9ABA270B5E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A5C4",
- "expanded_salt": "26027315BCAF481E0557E94BCD7CA149"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "42DC132156C04EFEA9D8A83FBDFB8B4F",
- "legacy_metadata_key": "60B8B5A835EFB75BA3AC31171CA5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1276818AD06A45AAAC36781294D62EB3",
- "derived_salt_first_section_no_de": "CA3A8A0327A889BA2AB3372087574FC8",
- "derived_salt_first_section_third_de": "AA1C85ED2BDD652EF17F5451F2080D7C",
- "section_salt": "2139672F26092A460D6512662A490DC1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "67471A591734DB41F3823100",
- "extended_signed_metadata_key_hmac_key": "63832936D9E07BA15E933309BB4122FE0B8594A8AE2F5C2FD95D1670E8E1182D",
- "extended_signed_section_aes_key": "EA5D1C051B1AB381A9E1738E54ED8660",
- "extended_unsigned_metadata_key_hmac_key": "C03B2073B9BC423579B9054A94BBA5AD380649BB358D6D1B95F82DBCE0556A95",
- "extended_unsigned_section_aes_key": "374B8E2B761DE3CF6432D88853A5AFFE",
- "extended_unsigned_section_mic_hmac_key": "5096301CBE692E1EB6C4560884251842A97F8D588F98E65BC353258AD594689C",
- "key_seed": "3E05D387A7BCC9626BE80C8D11FFAD5C36F83E24323D11F5B2D9B61908389950",
- "legacy_ldt_key": "9552CB73454B083BD394B5B2BB303D52D303A788E77F2D892CAF0F8F1258884FF320D719F2112B1FA91F7F0E849EF0A98F9616F6DA31E9AB587005C2F491FDF9",
- "legacy_metadata_iv": "7630CC5DF0A33737CF03CDF5",
- "legacy_metadata_key_hmac_key": "8071B411F600A8D8695ED3B24AEC3EB5C3B1A8F4C326E98A4631C70881CDC8EB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D801",
- "expanded_salt": "676415006BCACD71FFC32074B25A23B0"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B99E440258CA52F1AB35CB4A854543CF",
- "legacy_metadata_key": "DE292F765177CC4379DBD91DDA34"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E6A0BB895DFF4C528A0AC3CA2C25757C",
- "derived_salt_first_section_no_de": "5A289DEC1CE674C759A48B7F803EC8FF",
- "derived_salt_first_section_third_de": "E05F0D1371D791DCB4E079663B03427F",
- "section_salt": "F92E11EC6CAD136240366BDE51B65CA8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9BB1C10D1DC24331DECB7B45",
- "extended_signed_metadata_key_hmac_key": "89C8C7D7F701EC67D2E90C40BA85ED327D58BE8FE04B93B21FD3375054264E2A",
- "extended_signed_section_aes_key": "8FE2787F88FDA8DE6788FEA9918F9416",
- "extended_unsigned_metadata_key_hmac_key": "F200EB08B9FFB898EB55D0993D7B1836A4B74B4AB461C59BCA05006B58CEBEC8",
- "extended_unsigned_section_aes_key": "FF328717179D9C615EB9A6E18976099D",
- "extended_unsigned_section_mic_hmac_key": "FA416273DACEE08F6F0D1DB76984850C1F0932D84DB42FF04F2F36A0C273FF99",
- "key_seed": "BA3B087F7B6695DCADF6145290B119AE1B54D566ADBF92D982BE016ED1C2EC29",
- "legacy_ldt_key": "37970B1A19B77A063175DC7C48841F854E8A278F16B5B9C46C66D23A9445C0B7C9301802B865C3ACAE18B54B7BCEE3278F447145E6AD78BD2A7FCD015D22D61A",
- "legacy_metadata_iv": "7E81D5DFECF0B0D2DB498252",
- "legacy_metadata_key_hmac_key": "5E37C181AB5FFDAE8A1B7BA34B23C0A4718CB9B988A2A0719CADEE1B92E7D8F8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D489",
- "expanded_salt": "802FE96D715C1A8FD5217A9943BB5F2B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6A7A2CAC4BA9903F9EFC73EAF17349E2",
- "legacy_metadata_key": "468F5103FC8EA18DA47AA055AAD7"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B5C492562A90AE67EE6F5D281BF6F642",
- "derived_salt_first_section_no_de": "C8D96141F71A5C26E160C8A69B175123",
- "derived_salt_first_section_third_de": "1F8E2E050D92889CC825583D6CE1A26D",
- "section_salt": "3D6AD63B89ECE65B7906F908AC979BA1"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4A613D0817F61B395AD44ECA",
- "extended_signed_metadata_key_hmac_key": "61A46EE2E339CA66C0D4E1ED33F12FBA288E02FEF9972D8AC91956E05789D8B5",
- "extended_signed_section_aes_key": "CACAB3547BA9CB6195E48BECF4079D8F",
- "extended_unsigned_metadata_key_hmac_key": "1B47DA721E52BD04331036A8F6B3E68D230FCB01C8C5722EB453554E3E8BDE1F",
- "extended_unsigned_section_aes_key": "70E83EAFE6DCF0EEBCF7E118E9960ACF",
- "extended_unsigned_section_mic_hmac_key": "68757673DE0CCA0F488737AB4678096FDE8801DB457C29B7D2B73CDA0974BD47",
- "key_seed": "047A5F0F54F024E1AA2730206EAA8EE5F160932296FFA64C9CEC0F0A8D6D7C27",
- "legacy_ldt_key": "4380FC6E162F248280ADCBB44E603D8ABAAB101029EFDC5F133D937E077BD42148BD29DA514560EEED4DCF359D39EE688070523BAD85BCB811D1166FE5E3B26D",
- "legacy_metadata_iv": "8AA1AA87658653A279313785",
- "legacy_metadata_key_hmac_key": "7B9A39441C55CA94A7ADFB47C3201485EB05D413C3D229CC5ED11A336CD82996"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "ABCB",
- "expanded_salt": "A0C6C7FE9BC6EBA3500C0C81850CF580"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "0B18749AB260276231F3A46560A89B6D",
- "legacy_metadata_key": "F6342CD424B1F5969739B87CC739"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "830132324D919EC89318E7D91ACBC21B",
- "derived_salt_first_section_no_de": "AB2C920DFEAAE2785EFB9756DFC1E55F",
- "derived_salt_first_section_third_de": "02D8E576006EB340C43B2C87EE1F4CCB",
- "section_salt": "192697D62D06268A853FF2C1B71F2C1D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "0BF3ED5945DB5C83D33AC69E",
- "extended_signed_metadata_key_hmac_key": "430AF1DF7D10D4B3FBB5665E4CF53E3376E8EC773BC72705D07A71D0C8273B36",
- "extended_signed_section_aes_key": "B2D339B74C719D3B7745D97BD732F244",
- "extended_unsigned_metadata_key_hmac_key": "A5C915BFDF4BCB626BE3DA586FED83A1F7EBE36E9159816BCD342555EC56E5D5",
- "extended_unsigned_section_aes_key": "D095D19AC8B9AC109A81717F6D25C78B",
- "extended_unsigned_section_mic_hmac_key": "090517716582230A6F26D431EFE147D63BD7CFA144B84B80464D870E7407BBE9",
- "key_seed": "09AD6E15D71A054E256D62B5BDE65902FBB38B3EE4B32EBA335CA5800ACC4738",
- "legacy_ldt_key": "6D8217C8AE1A28A8C563A037C836000848F3D610313F3EE9128B7DE0CBE799ADDA1376724E1A4C778FECDB696C02B3A57B86F256A144787E7AF0A77440993804",
- "legacy_metadata_iv": "9A39D6B1C958A00FA01B67BA",
- "legacy_metadata_key_hmac_key": "4D4C7D4B597E689FE1DF6AD5C74CA7DA67213B11246342737CDB86A855C09206"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DBE6",
- "expanded_salt": "5F16408BFA08EDD0F5479619548D50F3"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A0DF35B02653AFD2D782D23245483575",
- "legacy_metadata_key": "FD0AC5207F939289A78C1C2D4C56"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2ED08457748C22D2918A4BDEC2EB209A",
- "derived_salt_first_section_no_de": "89E146D26D4CCB82942571779DDFD12E",
- "derived_salt_first_section_third_de": "421E5BC983A1C348D0A9D5C3B7394C8D",
- "section_salt": "F30E21172104BB7DF1EB2F8547ABA8CC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "4383B8D74458A1B23D2D223B",
- "extended_signed_metadata_key_hmac_key": "5585FF4BBF60FEB63A70D7F38126247127D850352E30488B41103BF8B33D7AB5",
- "extended_signed_section_aes_key": "10AEF89C58116B100A595C165EA5E67B",
- "extended_unsigned_metadata_key_hmac_key": "099E1A25CEA725C40BEED4A90454F224DDC8D21E3214469D6D9FFBA4661CB814",
- "extended_unsigned_section_aes_key": "D90E14BB3F38B84A906264022B85790F",
- "extended_unsigned_section_mic_hmac_key": "80B085387F12099D791A3FC14B040F7A476B99495151EED2DE59866062BC6A61",
- "key_seed": "F1F7BB01269D7B4047A22C1FC6BF69C0EFB9C31A567CA5C0925A1638E9ACC59A",
- "legacy_ldt_key": "520B5D1CAFC78915E3038E11CFFD5DB25405CD8EF7E3A789DEB755A80FD6D8F5708200C1C9EB1338A3A23BEBD15516248E57CD0BA40C9991C45D751633AE860E",
- "legacy_metadata_iv": "F242949AC1CFB763482AAFA0",
- "legacy_metadata_key_hmac_key": "A225F79EC801A04C0E6AA5C806796AD32175350434199C7953D13F4250C87E93"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B289",
- "expanded_salt": "20F34915D7B73F6A5F50CDD10522EE47"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "FE8F93DF7A1DC18D1544B5A2FAEF3FD2",
- "legacy_metadata_key": "00C8B5FF13076EEA5A1264D19CA6"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "60E6F737FD8795E8935A58A6C7ABBB16",
- "derived_salt_first_section_no_de": "DCA93D2E22B03C0E388BA5FBD91D7FB0",
- "derived_salt_first_section_third_de": "E0DEF61AE79834CA26B63F920981C501",
- "section_salt": "89BAA8ACBF6147F8E4D6C8F8FB67FE6C"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F549719D636F26DE70CF54C7",
- "extended_signed_metadata_key_hmac_key": "FB3D1BC8144EF79DEF94AD70CD606E0A4E7F7155EEF1C221AB1B7E9CDA35E996",
- "extended_signed_section_aes_key": "6C61E4BA8A06AE3743773A4E6D4D521F",
- "extended_unsigned_metadata_key_hmac_key": "82ED4E639D06B77FBEF470AC80AFC1F6C975458AAAB25DF0D8F0AECAC72DADC9",
- "extended_unsigned_section_aes_key": "9CB958CAA7AA993814015624F4054168",
- "extended_unsigned_section_mic_hmac_key": "45485578B9ABAFC907103F361A636AFEA9F63132A43C640F1EF353A28AB0A0D3",
- "key_seed": "C2519AE8EEA9BAABB1A66BD0F7153DE24670C3F4F8EEC6FC74FB344E1EEB9BA4",
- "legacy_ldt_key": "EF8B4F36514AF68FB865AF89359A8BBD5A291D03A28D130A058AFB98BE7B0D4C6168DCA6DC75E565820EB40E445346F6721482DFCB8ED7B24F719C6915698FCD",
- "legacy_metadata_iv": "9FD7CF1FB9A90A732FDF54C7",
- "legacy_metadata_key_hmac_key": "3EBDDEE70A9F05D81CE43807EB4A9CA80A3E379B1DAF11C5C3316833367CA33D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4D1A",
- "expanded_salt": "FEC699B24243A70EDF0B8B5C70B63709"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8904413ABF2A5A7221C15E9413E59C7D",
- "legacy_metadata_key": "07C0233CB9496C734273FA3C5991"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9D5DA720D80F7D206FD37087AF6136B0",
- "derived_salt_first_section_no_de": "0E49989F9BB91FD61B041DEFAFD2A65F",
- "derived_salt_first_section_third_de": "63D5837A03D8D13361D6EFD5552796A0",
- "section_salt": "5E3475B245C8BE031FCA2D18606DE66F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "172170542185BA9001293A21",
- "extended_signed_metadata_key_hmac_key": "E22CEA0BC3619B5A246548D5330404D86DCF0C4BF8120EBAA8D5143EE81C0B31",
- "extended_signed_section_aes_key": "E0D01A11F3478316A8F9FFAE13F7881E",
- "extended_unsigned_metadata_key_hmac_key": "E982E772D1FDDA717B3C191E1B5995B9DEF15A610A15679C41EF1A940FA5E6D7",
- "extended_unsigned_section_aes_key": "E2EA44284231EA3593C700F3D1AA21DA",
- "extended_unsigned_section_mic_hmac_key": "C41D8D26E78B8340EC68B68A2885E82ABD9AFEC0F573DE4B1586D1A0E49EBB32",
- "key_seed": "8C319E0DE081AA8710097E3EE12449F116AE4E2E3868C538D6FC4531CED326B0",
- "legacy_ldt_key": "C6215537D9899482534BF13AFFCF20C16D69ECE1C05BDEF0223156651D5FD5C7B12115563CD7679AF90473CDF8A3F52E82D82B8770CD36608F9BDF98414EA1B4",
- "legacy_metadata_iv": "C37E305EBC3B5031FB348CF0",
- "legacy_metadata_key_hmac_key": "22F9F9AFABF5F9AC70744AC3CDEC5D897976B96183E534646DF0B905031EE163"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3452",
- "expanded_salt": "AA98855FFB52A2D92FE4965AB11D90F5"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "C0E81FE72D8A5DBE0AC4EB6BD2409076",
- "legacy_metadata_key": "4F33575ABA9E666285CEE30F8471"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "10D7E0571C8F51FBD38ACF2577A89692",
- "derived_salt_first_section_no_de": "CBAC1CFE1C5F031B94E83531A262D979",
- "derived_salt_first_section_third_de": "CF334CF0AA86BB1DBD649578F99AC97C",
- "section_salt": "0B01FCAA1583AF679FAF04B3597F0B83"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "58754AFF913B3010B653224E",
- "extended_signed_metadata_key_hmac_key": "6BBF3F44648D2E4BD9CDB6D91624F0E334EFDF751B5B06DB1D1C7DADDF5DE7BD",
- "extended_signed_section_aes_key": "1D3FB88A0E55996FC5F24521388F3AC6",
- "extended_unsigned_metadata_key_hmac_key": "5B4D1FE12BB2B8832E29F0FE51D17CD3779F63CBBCBB41666D94B2232CE483F0",
- "extended_unsigned_section_aes_key": "C5E5EE11AAF7B0F9BDD6175DE46FE122",
- "extended_unsigned_section_mic_hmac_key": "451AE787A010D04420ADB37705D142A1A4B8DB7F2047B8B93C2C114572542A1A",
- "key_seed": "949A8DC9086C9A425ADDF1E7DF07DD0A09567768F716C1B60DD8A37D0688B7AC",
- "legacy_ldt_key": "6462FA309A6607D37B69FF7CBC521C457EA169311E4AFC42E48D8EE969EDB7C3E163A7933D684EEDABB3A0DAEB3185EC550006064F56B340EC3D9268836A86AD",
- "legacy_metadata_iv": "EB1AED887D79D0CE93A938E3",
- "legacy_metadata_key_hmac_key": "B828E34CD4C119BB6141387F29DE5FC59FB1271E52A71A200178760D5F05E778"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0A10",
- "expanded_salt": "145CD4817435CF1E3D7F1B354654426C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "81908C7E2863A301548EAC902F07A52C",
- "legacy_metadata_key": "4149698C44FDA382A148EA783847"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2034241529BC852B8FE5ABAE5E75B834",
- "derived_salt_first_section_no_de": "58B1FD5AC58C70BF4F1DB4BEA397A2A6",
- "derived_salt_first_section_third_de": "3624A18240FAAC2C5FBD5062B5103199",
- "section_salt": "5F8E50999DF858B6F4922CE1E4F9E4B2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "61FC40A183A9062AD3E85F3C",
- "extended_signed_metadata_key_hmac_key": "04CE709017D6344EAA1D9D1832F01AC10FA18DFB615B51F23284BFE1F3AB21D0",
- "extended_signed_section_aes_key": "1A2BDD38B7E98C9F6DC644816DBF64C1",
- "extended_unsigned_metadata_key_hmac_key": "9C26EBBE9C1E5AC46230DBA65189863C4192399633CF29BB69BED6325BDDC373",
- "extended_unsigned_section_aes_key": "79FAF588192DBF922D7854E88BD31536",
- "extended_unsigned_section_mic_hmac_key": "11F0F6E3145ED57727A1C14C52BFF527396CF24B73B61B91874A6DF8AE7BA4E7",
- "key_seed": "2AFE61B2908CD7A5D804A1E584FCF44CAC2AEDF3BD0B2B4D8A587E0CAF089937",
- "legacy_ldt_key": "568D4BE76FDE65A5DB51C80EF48B3F8494E6D08AAF7984401C1265C58FE6B96C71D24D832D4FFF0B1E49D5E478524DB2005D7376555D879AFF47387122BA1247",
- "legacy_metadata_iv": "7C4F57E909B3D39E066CDCF9",
- "legacy_metadata_key_hmac_key": "F0C95A7728416A4243BB5F1FE3E41E14E6B9B7BC977C430C070E73263FE9551D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "724E",
- "expanded_salt": "698E980E2894105C5E6E7492C82DF767"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "AA7CF070E1755DB9E46C6893875B7DB5",
- "legacy_metadata_key": "2B1C5BD51DA9D1D1E8269E9485B5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "73306A8D543AECB8C469B1351C0DEF4B",
- "derived_salt_first_section_no_de": "39C8A3D200FEC0D40776C7B5E9F2D175",
- "derived_salt_first_section_third_de": "7625C7534440C6CEC347BE4A5D885FC5",
- "section_salt": "B16D7DF2FBD6943308285A96A29A0D12"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "3E153D97EEF4506AD589A748",
- "extended_signed_metadata_key_hmac_key": "829331B9909217791486201C4920B2E5ABC499D017312BF4699F5426635ACC9B",
- "extended_signed_section_aes_key": "FEF75A29BE4003D1BF1D289D1F1F515D",
- "extended_unsigned_metadata_key_hmac_key": "73479E9BDC841D5C3B083A2D277B4D67AFE05F2E362765F82416D7ADB8C5D933",
- "extended_unsigned_section_aes_key": "D6BF5EAA595D728203DA18BE419053F0",
- "extended_unsigned_section_mic_hmac_key": "F7B4BDDEB3A9710E75947A9024A13D307E40D153710F2E19972D5B0443F88FCA",
- "key_seed": "1EE65AB514661474EF11D5469C3156CBE50815A613ACEC5EBE5E777DA69DE402",
- "legacy_ldt_key": "02DE7A1657E5CCC5DA54D5D53EFCBBE993231AFABD5302A649B007F8FBB8D97176A620405E4F929D5BAB59AEE146E40ABE0C85BAF22AF6F7D0219B1EE814F83D",
- "legacy_metadata_iv": "1224A2DC308F7A4CBDC50B83",
- "legacy_metadata_key_hmac_key": "D7A63A229CCD55E9938B1A7A25D2962A0585EC1741009C4B514358A0E8131031"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2143",
- "expanded_salt": "0DEAC6E9CB02455FA35C1E72F4805C70"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "4C9E63773A71C572424C3C3F09136FB3",
- "legacy_metadata_key": "B64CD01FFA879E1DAE961AD3D2FA"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "793E52E785FCCC44ED06DC3C5C69A4BD",
- "derived_salt_first_section_no_de": "5DC503A7A2960482E5924E92E3D5171E",
- "derived_salt_first_section_third_de": "3CCB6799C737CAD76B6A9B6048434950",
- "section_salt": "2C49BAC1064AB88412FD7E6BD1AAA2DC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E2247D91EB2A642229104424",
- "extended_signed_metadata_key_hmac_key": "3731E65F4400D7E03AE9004A29F06EFB882F299828DC9D955AB13556DD0CFE7D",
- "extended_signed_section_aes_key": "FEC115B6C3F583B915B380FD1800BF3A",
- "extended_unsigned_metadata_key_hmac_key": "9942A2A9597090D7560B62F9E481B0B7E6B3EEF4491583005F698AE122C648E7",
- "extended_unsigned_section_aes_key": "F4A8928706E283171838C7E6090BB69D",
- "extended_unsigned_section_mic_hmac_key": "B29A0255187E45E322B7358B97FEF1763F0A859B24A6701880E96D439CDD701F",
- "key_seed": "3DAF634D1D689E37EF0D825D4A083E64379FFC58741FD72881DFD3D91632F317",
- "legacy_ldt_key": "E77369797AFF4063B8A4FBECBDE3B86DAF40FFEAA29E0E8B57A7D51855CCFCB9A619F255F8F21DFBF7C1A813B314E53F68148B9796569627FF8A29C93E3AFB4A",
- "legacy_metadata_iv": "3D285F4C40809FDF7D3F4E95",
- "legacy_metadata_key_hmac_key": "52C33077C53137500E20447CEAB040B4D92571BD7C8A5642471A7A286388332F"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0FC7",
- "expanded_salt": "55B813AC4C7A4B14E461603A2EC96D11"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2F3B3E2505697093A4924185E51FB8A8",
- "legacy_metadata_key": "23AA5BC9D6654268CDD46A582227"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "09C362D1124A9DED55BC670D59ADF2CB",
- "derived_salt_first_section_no_de": "E5E3A667B97EA07B7C0BDC6E2CB89479",
- "derived_salt_first_section_third_de": "888460C111D6A6FAEA24E364AD0EDB23",
- "section_salt": "F451D979C96D1A3BEBFCA71B99DED5DC"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "A6EFA3931B6D508BF6EF61CA",
- "extended_signed_metadata_key_hmac_key": "9907CF61B2E5172695B87FAABBAEAF4010579314A9BDD68B318F2710F743A818",
- "extended_signed_section_aes_key": "83117E62ACF3620336CDA42387C005C4",
- "extended_unsigned_metadata_key_hmac_key": "F8418CE0C6F7ACABE739E098F7A7CF560DE34DD57F741A43B13792619503E7AC",
- "extended_unsigned_section_aes_key": "0A2C9810B6D3E1202387B20D8CBDAB35",
- "extended_unsigned_section_mic_hmac_key": "69FE5A2043C322EB36577290171C3BFE7F6A85B82B595F5563F2FA0EAEA02A0C",
- "key_seed": "17C5DDF2A73BFA21443F92EF26E68032D6BDB0C41C94897A7B94D911B422143C",
- "legacy_ldt_key": "05AC82876C3DDEAACD435D833554300780AA4C66936BF84BFA26599545A48C47ED9A317FF55D41B9C3BD30C1389F894DA350C254B5585AD9C8494A90F990F3FC",
- "legacy_metadata_iv": "A574A3EC7D2F3AD760864B72",
- "legacy_metadata_key_hmac_key": "955F4A1510BEDC58459B1A6ED737B3BC7303B91086DD7747923367BD29F4205D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8A83",
- "expanded_salt": "F61FDFEDBEE66A827A2B877DD5363462"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "8DF105C9438AF94DF7813009366E3C21",
- "legacy_metadata_key": "9DBE6368531CFD87FFC7A3505A05"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "2FABA6E978A704045FDCD306E8DD5501",
- "derived_salt_first_section_no_de": "2A7D1F2EF8B4C7646FBF2280C072A0A4",
- "derived_salt_first_section_third_de": "FF373099FA29BCD1CE1E928D1E377340",
- "section_salt": "CAC0399A6976B3F85C3553866550B3FF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "680C7969978162B384729949",
- "extended_signed_metadata_key_hmac_key": "5A3874A50C47B745073694869118D8731824023B61A92401C979822E5BF35859",
- "extended_signed_section_aes_key": "8F3289E5FB5FAC7AA18FD74C7C2036A9",
- "extended_unsigned_metadata_key_hmac_key": "FADBDB5DCC256E56BC22056F97A026CD227CB82EA6EF9BD640BFC19D90B560E9",
- "extended_unsigned_section_aes_key": "E74C0AAC43C1104B38452B37406099D7",
- "extended_unsigned_section_mic_hmac_key": "B0CF4D94FDA7F3F3418C7F50E1195D6482CE278F495F8E2133543E47DA792FD4",
- "key_seed": "5542E7C227153308F1068F66ECF04E4E8FA49A2240D9E2BCDE1127FACF5E6607",
- "legacy_ldt_key": "19F24B30C1F9D7CBFF34508A9D80B13053181B25E870F87E43357863A1BBAF1940F6E3DF337F683E92A03C0ABBFA75F84B1BCE5AA12A9C45092F461ED8186B0D",
- "legacy_metadata_iv": "D5E5BB81C9DF6B84E9F1DA0D",
- "legacy_metadata_key_hmac_key": "BBCE2CCEC4347395EF7C2A4AA68C9F1DCD13F2DC56BE410DDCEAE218D605C78A"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A544",
- "expanded_salt": "FC2D932CC70A9090993CDEB31C5BAC6C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "A1E7F3D01DF04048548A355287D45F22",
- "legacy_metadata_key": "DB8DAE794433E8AA379983D7A1E3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "70D42B60C4039B44A4ED0F16859500ED",
- "derived_salt_first_section_no_de": "2DE13816851CE8734C2231CFB31DA1C5",
- "derived_salt_first_section_third_de": "2E00D762ECA5492E2C3B8E78B2C83200",
- "section_salt": "903C8A528721961F9A5CAA6A090F69FF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "AB772FBA5DFC4B06EF6D1533",
- "extended_signed_metadata_key_hmac_key": "5EFD3A33A6F23032F979B12DD26E5E0C17507EB77B608CEA1E5B5A83F3B20D7F",
- "extended_signed_section_aes_key": "F4C7F44B24069B060DD6B71875AD7852",
- "extended_unsigned_metadata_key_hmac_key": "75DADCF74B4544A289A38F895B94417F61CAD4541484EE406C96E7980D921879",
- "extended_unsigned_section_aes_key": "678D0547C42FD16B10AB765DAA20F4D7",
- "extended_unsigned_section_mic_hmac_key": "E476298C8B44AD615D8FCEBF4713F92859D82F15B9A2A6999DFFDBF0A03057D1",
- "key_seed": "568DA79406625CD470483F406F84597B64675D4016EDDA40F26F47030E40CBE1",
- "legacy_ldt_key": "62F8AA5B5C7B2349EE69EA70346A98032A062CC48C85AE375C3E5AF11BB8A4E6DFB900FDC5A9CECDA6C9C403F917784BDF65015E8956F78BA17CFDCA43151D3F",
- "legacy_metadata_iv": "787B8B42E2C82AD616E8CAAB",
- "legacy_metadata_key_hmac_key": "0363F9A7846E1F8FB209179A14B53F97F8962B69682AD72AB853403D9ABF2BD0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FE17",
- "expanded_salt": "BFB266E6B5DCB77935230A9899DC1CC7"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3A0E04D8CE9DF60707F0A73A7BC3E61F",
- "legacy_metadata_key": "C17C3E5BEB25247687A3FBF70CD5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "A875DB90D23E59BEABBD2EF70AEF79FF",
- "derived_salt_first_section_no_de": "5C30CCC6BC6B00D95E720EF46A83E90D",
- "derived_salt_first_section_third_de": "74E6EE69DCEDC3EA38FF520409E36D0C",
- "section_salt": "737FF6B26E749B69B14572FD94EF223D"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "BD865E448A5405600676C6E7",
- "extended_signed_metadata_key_hmac_key": "41C49A060351D3F2D3D7ED45D8946A495D42ACEF04CC4B1754656925C6ECEEAE",
- "extended_signed_section_aes_key": "AC4AE4FEADFB4A47E8E31FE727B360C7",
- "extended_unsigned_metadata_key_hmac_key": "617D391E2231E714F75B8E1BA038EDDC072F9EE7332EFC3D0750FBA2CF48D9FD",
- "extended_unsigned_section_aes_key": "FA4F8B228F330D85A09888C8830AFACF",
- "extended_unsigned_section_mic_hmac_key": "03A7789AF925143CE3618BF66774F20D9B5B07E1AAC9C3ACA20B21E81609DC4B",
- "key_seed": "E3EC9A14CDA4E60128E2BEB8EE040F557DE977F351CF2C1BDF0793CE7B127FB9",
- "legacy_ldt_key": "B18EB749D7C1DE7C2DE6E1C59CF2465039C9713286247D1F21C834A5D4CBDD2EF88E96C78D511FBC81B6920A6219966F4DFE5B73507F57FF44778C895439CE46",
- "legacy_metadata_iv": "43D2B349986BAF7773B8FFBE",
- "legacy_metadata_key_hmac_key": "C619B33D44644151612141B42C0750888295FF766872DAA5F01BCB9FFE664097"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "3383",
- "expanded_salt": "099AC42A28F5FCADB456EBDBF34B74F8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7AE7EE8D8EDCF024BB06192150B5D085",
- "legacy_metadata_key": "16276F44CF659AFFD28B669CDBB5"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "8BB93A7D00ABF785917BCF1EE4909330",
- "derived_salt_first_section_no_de": "654BBFE7136ADBC475321334D71A62B8",
- "derived_salt_first_section_third_de": "03B192748B803B6F215BD32EFD7A9431",
- "section_salt": "883071E705FFF7A1EE6907992EB14DDE"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "F03927427FB0203195FE61AF",
- "extended_signed_metadata_key_hmac_key": "4E01694116099341F972E9E6D1E556B8B98DF2CC5B83C169693F3CB70E3707C5",
- "extended_signed_section_aes_key": "BC3EA69C247C4B400CDEAB93B0BE7D3F",
- "extended_unsigned_metadata_key_hmac_key": "9529A7680B7D1E55C4C26ACEF2F82EBF865B21F06B0BA6A1AA25F847BCE13EEB",
- "extended_unsigned_section_aes_key": "E24D445A2D19E13E9CA35A0A73EF064F",
- "extended_unsigned_section_mic_hmac_key": "5A83C6EED9018AB65AE77CA7A3DE7B4A11509A1AB46BFF33D59BE6C76AB50785",
- "key_seed": "E05104357C4F4FF3C58E385229BE38763D7AECF48E15BEF3AD1B2A71D6F253BA",
- "legacy_ldt_key": "54631351743BD0B77BC04C719C1757410BE28530316C96F4B658A90A62C04B1C6AD0235D9E3FDA7530C1DB629B285D5639BCF5ACBFCACF6A413EC3CAB99AB7A8",
- "legacy_metadata_iv": "1B2F1600B4A506E8CBA53821",
- "legacy_metadata_key_hmac_key": "2869A133EE4B6BED7599B4E0C30ABDA85899E5C4A4EFF79FF34BD8958017CB89"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0DDD",
- "expanded_salt": "C467EC6731616FA1C93AE6B8E823609B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5F4C6DD22D3A1B09283FDC692107DF43",
- "legacy_metadata_key": "F382DF36138822056C2A537AC00B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "B49B7A9C8A453F214064B976882D8FE2",
- "derived_salt_first_section_no_de": "40F522EFFEEA0A0068DC3978596C4FAA",
- "derived_salt_first_section_third_de": "227D500C3B10456FDBE0FC693459EC58",
- "section_salt": "7118E7C22A26E8ED15AC8ABE258486D8"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "05C6DA96FABBE3034FB69B7A",
- "extended_signed_metadata_key_hmac_key": "E0837CB2883706D4AD2169302FB815C3A1E03F5135B28B31E0651D860A22B2B8",
- "extended_signed_section_aes_key": "D89D5310F6EC83D6A49BF0DA1752F369",
- "extended_unsigned_metadata_key_hmac_key": "4F3E62B638F36665462ED699EAA8E65370ED1CCF617697557F2B8A9908EEB17E",
- "extended_unsigned_section_aes_key": "CF7AB7E923F86BE1129FBF9DC4F5D87A",
- "extended_unsigned_section_mic_hmac_key": "01504E75FBB7B97941774A4ACCC6697D73D33A416FF80274A1876B2A0D503AEB",
- "key_seed": "A4D2F884EE9B0500E24A2365CB6F312154235CB4C08D99C911E0C7F9FC1F0BA0",
- "legacy_ldt_key": "24DDC4479820DED0ECD96D85A007AE4057232A5C7A9A05168D94710FD5ECB114C324FC800DB0020EDAAABD969BCC53CE48C156F407D9FFE1CD8F82B209EAFF14",
- "legacy_metadata_iv": "20C5B4156F06420232814055",
- "legacy_metadata_key_hmac_key": "B262FDF4618C74910FB3E02A83166F05F9C63AF60B63B9CFE96DCF2AC7B685C0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "671C",
- "expanded_salt": "E56C99DD2B3ECBE2FBCB6F26BB0B2A33"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "6CFC3CEEB9A78EB32E63888406F2973B",
- "legacy_metadata_key": "F75A4191096D40FE366C72BD5595"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "89BDAD640B4B953EB7A069284927FE5E",
- "derived_salt_first_section_no_de": "975746CF9CE6A2F830677D69022207E5",
- "derived_salt_first_section_third_de": "BCD052F58489ED420ED467A8874D8A40",
- "section_salt": "FA8072E2F81943996846EB8D7F9BE775"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "704DA77074A7D11AEFF9BA2E",
- "extended_signed_metadata_key_hmac_key": "C05F94574E253E4AFE6504D80B90697DA5137A9BD1819D3A929AA0A426D61DFC",
- "extended_signed_section_aes_key": "EBADA6D25B91D792497653C24055F883",
- "extended_unsigned_metadata_key_hmac_key": "4E78C99D75B7058CE0C05078FE37A61BC0F09CA5A4CDF12AFC79F781D2385CDC",
- "extended_unsigned_section_aes_key": "02A8DAD959FA2DFCB0E0B908E1588EB1",
- "extended_unsigned_section_mic_hmac_key": "B3CF15E6DEA2901A271D1912F226090FEB140100726FB0B9C23B5BA92581A0BC",
- "key_seed": "5D8C2A0CD3C7D923E95EF1EF3B86EF18E2896070C3097F446D1DD680A5E5D102",
- "legacy_ldt_key": "DA07019E603055DD12926428BDF6E1B3CD9A43A031F0BD911C3B7226F7ADD7CA727B5640ABFD1D370BEB2BA942D9EFF8624A730CDD034FE1F4D4D241DBCC7A3F",
- "legacy_metadata_iv": "D6E5B6CE203B8E1126F637AE",
- "legacy_metadata_key_hmac_key": "4077CC760DED02E0BCC8C956E5352DEB008EDEBA39A592286E2C9256F1737014"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8623",
- "expanded_salt": "9F4906D2EB77023D801FD973A05CA635"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "B356746727DD9BECAD04658F862F5415",
- "legacy_metadata_key": "5CDD691351847979B4E5FF9F7DBC"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "C810790728E4BFCDFA7B21FF33D4AE0D",
- "derived_salt_first_section_no_de": "B41F1DC9BB4E67C1A8FF7F609B673989",
- "derived_salt_first_section_third_de": "8DFB178DFAF2A7620320A0081515B5A2",
- "section_salt": "4CD353C1C8A7B46C0F83DBADE8FFBB7A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CF47221254227C63CAC205A7",
- "extended_signed_metadata_key_hmac_key": "695F35C3BED5BFF1ED38EC1B7BCDC006714654435C4EBDAFD8352D43097D6262",
- "extended_signed_section_aes_key": "DF179EB686361B7CBD2AAB461000070B",
- "extended_unsigned_metadata_key_hmac_key": "77FA76189F1A8B57B6424399661DECF4D6009DACDFBB625D6BC29219B969C4CC",
- "extended_unsigned_section_aes_key": "A4A2F90FA9592D2FE5A6122EB7764BA2",
- "extended_unsigned_section_mic_hmac_key": "262B1F20B30077683160A2A055276880E3DF15064A8A5BF78A363FA2BF5AA6D8",
- "key_seed": "CB09741CF5864944C85B87FC8DEF3245F5FAF33018A5105A61A10D40BEB15E55",
- "legacy_ldt_key": "EAE9039B63777EA925DB53180F12FED93A594FF79B4162E453A403388DF8EC09BA981B3C2A7621B00C7AA9823E6418A92ABFECE89148E2773396D9B3D8D11B67",
- "legacy_metadata_iv": "9B5947BC4C671D546AB3C07C",
- "legacy_metadata_key_hmac_key": "A4185CD122FDAD50769B99EC7F26F163761BF73BCBF25CB96FFEF3A53AA42EC8"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0A88",
- "expanded_salt": "5F2325D7F4D5AF93339E4EA36583BFA2"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3851B092C8327BBA83138DCD6E9EC2C0",
- "legacy_metadata_key": "3BC1586B11B7517D805B837D0F64"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E8D894A3C25B6C489F6D59B85C941EBE",
- "derived_salt_first_section_no_de": "C0B07C0FDB8D0D953B1BED13425E4709",
- "derived_salt_first_section_third_de": "F3BE224E9687454A7D28DC3F7828FB0C",
- "section_salt": "8D3927EB953F2C1B77DED9F92A9271B2"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "1F349D0716D327EF55C9EEC2",
- "extended_signed_metadata_key_hmac_key": "30B29F1A0EE2280771715A1BE4A654DB1DD0DABEA4BBCFB6D9655BEE11B3D3E7",
- "extended_signed_section_aes_key": "ED3486802F36C472BCD4DF0B18F2C12C",
- "extended_unsigned_metadata_key_hmac_key": "FD6F19CFCC16B42A4C1AF2325E4F22A1D13D66ABD2D12C76A4AE0FB3C8D784E5",
- "extended_unsigned_section_aes_key": "8248535E11B15EA794B7BCA3E4ADEB20",
- "extended_unsigned_section_mic_hmac_key": "650EB4427F73BF81D117AC33769F68D148146D348CF053F1DAB857B9178566E4",
- "key_seed": "218CA5737D2EA8A05E3F52A4ADBA823631A0D401BC5BE730D1C157858809398B",
- "legacy_ldt_key": "05946600729A1B5BBD2C7968D4FE1BD6D2623D10B3C9B822C92C07F9E47E6EC1F8586573EEC6712C49A27E8BE7EB49DB5F2B2C4ECBB9A048159FB4ADBC0C284D",
- "legacy_metadata_iv": "0CB90A9C372AB19443FC0AF2",
- "legacy_metadata_key_hmac_key": "DC1CB75DA3F57AFA08BB2A4D88ABCB7E404229FF39E9AABF3C1FBD7485CB2245"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5842",
- "expanded_salt": "A4DEE6998F28B13BA71C93D2AC5C8648"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "072E6D8D54610D43BBFFFB7A1DA480BC",
- "legacy_metadata_key": "E566DAA7E0656EABBE17AC698A3B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E90011AC1EB8152FCA71E1047F125058",
- "derived_salt_first_section_no_de": "88C8B4B97F61CD1EADEAEF0553763E83",
- "derived_salt_first_section_third_de": "F6C7D5F7BD502F022D874121EDD4BFB9",
- "section_salt": "7FF4904658666C1CEC12075851B79ECB"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9E11931C810D53046879E893",
- "extended_signed_metadata_key_hmac_key": "7500AE729301A217A185684D27419F4613075E7E39FB8260DF4FD1B5EA9E84D6",
- "extended_signed_section_aes_key": "A31E683C0EED29B76677D207F7ED86CB",
- "extended_unsigned_metadata_key_hmac_key": "6A701EBFBF478FA381C675E41C881D5C6162657F34ACBF138C1FB3438CF8509C",
- "extended_unsigned_section_aes_key": "8CB04D1AFCACDA53441F3A3ACF0E6EE8",
- "extended_unsigned_section_mic_hmac_key": "6E4822EBFF425785A7BACC4C1A68FFD55F8D558204E390178C0E57047E1A0703",
- "key_seed": "A8C131C6BD4486D59B4018986F1C489002E86145C8C9724AEFEA40BB4EE379CF",
- "legacy_ldt_key": "DAB41492F95DC891D39B58AE3134BFC5189F477DFC2B36C8E31BE158948406A7BDF81EC32DE55726174DBBE846C0253D395A30798D006180F64B6F3CA65B9DB5",
- "legacy_metadata_iv": "9F76C60DBA73204AAF5F5317",
- "legacy_metadata_key_hmac_key": "C0E16217E266D80877C641525BA71620D8B0E9818CEE67CBA04689238AFBFE28"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "DF4B",
- "expanded_salt": "070B6420976A4124C913B6D20D09612E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9BF058C015B24A2D9B8EE1C0FC14C020",
- "legacy_metadata_key": "2895885EBC830E3379A120B2E8AF"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9079143F8E4396EB43C777641805F4B6",
- "derived_salt_first_section_no_de": "9229E2887DF523ADAD47EBE1063B78EF",
- "derived_salt_first_section_third_de": "F8E805EAEB242A32EDD446617079C563",
- "section_salt": "A24BBB5109FD87BC451991E08821D90A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "B7CC8A6ECD5D77D65EF2F578",
- "extended_signed_metadata_key_hmac_key": "BD5000DFBFFF8B50BDAA95ECA49C93E1714DE314F1639468B8E70A364FFDC08E",
- "extended_signed_section_aes_key": "AB920999FE889B4D74D8B68FA5C3DACD",
- "extended_unsigned_metadata_key_hmac_key": "E0F61699591FFADC76178313B59315927152360C8B7936E9AFF358DB00ADF4A0",
- "extended_unsigned_section_aes_key": "88CC875ADCD9F194876EF45181412EED",
- "extended_unsigned_section_mic_hmac_key": "CB18863B91FCDE913C1F263AB8F0638D3869BB2933181FC84DA96CAE04ABA157",
- "key_seed": "6497232EA14B41F650FB4F6588861DAE85C7F1F456880D773F97077987D4A79D",
- "legacy_ldt_key": "467F61B5B3DFD06550B48A5C5C3036C14359AC9B7225CBF6F9E5F8CE298ACFB615450F02DCF34CDA44AD220BDB46B713E9C8F2CD1441A91C4165279855544E48",
- "legacy_metadata_iv": "1373F8C85EDAF80EE0AAD521",
- "legacy_metadata_key_hmac_key": "E2AC8738860B2A1C7D6F2C79163789336B42075DAD23B4223AEB1046A4CF79E2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "BBC1",
- "expanded_salt": "54236C45857AE30531340AF3FB085F17"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "753D8CF80483A8A078F50892984D8360",
- "legacy_metadata_key": "9B4B8BCBF4340EB2A7E3BC63E95A"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D3459E3AE11DB72E0E1E00F17C50A455",
- "derived_salt_first_section_no_de": "5D2FA6169138265EAB02304C3AEDFBFA",
- "derived_salt_first_section_third_de": "E2F71A51544770BAEF5D5AA4DF25C543",
- "section_salt": "DB761F6078D3150E343E30BCD048BA80"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "37E40B2A39A147C789C79D7F",
- "extended_signed_metadata_key_hmac_key": "33D12B0D88A9FCB9282B99BD29DA8C616C571EBB050B3DD9A53FCC5B20804FB6",
- "extended_signed_section_aes_key": "71A087CD79B54A4334CBA4875A9A20EC",
- "extended_unsigned_metadata_key_hmac_key": "814C88564279D20D99910498E8A592AEA4D636696F4EAF69910347E155DABC7D",
- "extended_unsigned_section_aes_key": "301D0829A1B2ACBA45826450A5980B67",
- "extended_unsigned_section_mic_hmac_key": "397096F1925AE71E32DD0861C5F994FE030E77E399AEBCB4520F50C3C8753796",
- "key_seed": "47B2B5E717E149E666D9CD7D4FF8B4BCD641E5448837D938F0303FF9ACFDD856",
- "legacy_ldt_key": "A3453AB43819C89DFCF5BC43B2BDD7F6FE1893A55531ED1DE5BBFA4F72952EFEC240B727950298D3CE13275E7F1CB96830144E1A4E5000CB3439FC59819D4433",
- "legacy_metadata_iv": "0EED47EB538F71DA237E76F8",
- "legacy_metadata_key_hmac_key": "8C0707E63762690B014D6D74839B94BE3B5F63D0F5E8657EF6435C1957C040B2"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "251A",
- "expanded_salt": "FCC4F5909D966D25D9F59524526BAD9B"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "66AA616467B7F06D876D59EBF3128715",
- "legacy_metadata_key": "D7FFEF6718C1154B61940C9EB188"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "DB50754036846518AD3957AD01109D8D",
- "derived_salt_first_section_no_de": "F65EF97565C252ACC63934D893EC32D9",
- "derived_salt_first_section_third_de": "BB05527D90255190F36821C9C50B4681",
- "section_salt": "8D709FBC19F791A0C9B24D38AD7B71B4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "E06C733C22B0902527D17A01",
- "extended_signed_metadata_key_hmac_key": "C74C54DECA591F434BAB3DD6D9C100C9BF104A0D548E689661AA955839605676",
- "extended_signed_section_aes_key": "C201AC50D4907B2D3A3E8708550A8539",
- "extended_unsigned_metadata_key_hmac_key": "8AAE50291B8DD745F1F403033BAB2E48280016B574B48E8DF7898529985446DA",
- "extended_unsigned_section_aes_key": "56DD613734C3188684F11C06CF2D62EB",
- "extended_unsigned_section_mic_hmac_key": "7339AF099DAD150E8D6227888A65419CE994C4ACE60C7E85D7AD2521B284FD45",
- "key_seed": "74C0A2B0A52FF367575D612F41785390B7DFBE4B53F2C9D746A04F133AF84271",
- "legacy_ldt_key": "0F4237371DADC8BB61A8F1D5FAE9C08D01C863755270415576B5EB8F4536E08979DDD571A2193423DE07F9DED43FE169B74CE0CBFD8DE04CE80AEBE2B4FE5B1A",
- "legacy_metadata_iv": "10EE5478343A7CDC5F00F7CD",
- "legacy_metadata_key_hmac_key": "4AA5480CC66974AB66CA9AB1C05E586EE80F8DC7FDD61C81FBFCD843A36F0DB0"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "A716",
- "expanded_salt": "DFB6BB05991FEC6BF5A37595D4EF0F89"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "BECA552F5C792476E0EDF5D5BCD9A3BA",
- "legacy_metadata_key": "B39DDE8A1CC1B4B5F3BB0FE06C3B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D2C955AF95C5DC69AE9AC87C46AF6792",
- "derived_salt_first_section_no_de": "B513A89F7973936843E6414ED261EF3E",
- "derived_salt_first_section_third_de": "8F8FA4CCDE94DA4D1AE16EA811BE083E",
- "section_salt": "6B28DB66194B4C43A89E8668A42D08C4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "CB642F3DF5A102371CBD69A1",
- "extended_signed_metadata_key_hmac_key": "391B595462CEA51F0CE3F3A160BC717C4482C02B8C78BEE0FDA678990ADB37D8",
- "extended_signed_section_aes_key": "E36FF79E3D6279F46A6866DCDBDA1AAE",
- "extended_unsigned_metadata_key_hmac_key": "028B978A240758DFFBC9236D710C6A74B5ED0F448367E277890864D5DCECB582",
- "extended_unsigned_section_aes_key": "56E96429B9E0F2641ACD7EC0A79D4C21",
- "extended_unsigned_section_mic_hmac_key": "4EFB2BA59C2B3FF240E8E934F9F089397E1B5696224152CD62F64E121291A49B",
- "key_seed": "16E2570617136B934C16C704D59FEE027CE607CD0B69ED670B79101954E14905",
- "legacy_ldt_key": "2E28672C97561295122DD12127693E6E2E2EDFE63BBDFBC5CCABA5D8F778E1B0B87F5B3F80E1B34807299ABFD0B8E452F9D37DF9FEA6C542E6F6BF03CED7019D",
- "legacy_metadata_iv": "0382ADED801DCCEA083BD043",
- "legacy_metadata_key_hmac_key": "386C8935239FBC1B242006C2270A20D688A63AD048F3E5496B96F54503D00FFB"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "AEC2",
- "expanded_salt": "F70BA0538BD6E2E8CB59940C10367A2E"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "CDC4E245C5BC30919F57C708597B1BD0",
- "legacy_metadata_key": "A8354E0D5A935CDBF540F0F2D0D3"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E195B58E25D47E283ECFF14BF2BA7133",
- "derived_salt_first_section_no_de": "5B1DBE7C067167FB94236E478917DD10",
- "derived_salt_first_section_third_de": "EBDA3AEACA83DE0DC123A11D794FBACE",
- "section_salt": "831D70D095F0347010157CBC7D28E3D4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "31D917C95AA29E24002B986D",
- "extended_signed_metadata_key_hmac_key": "36A1172FFD8C69CE2D19A66922888AA131E4E9EDB53B1ABF978D85D15A6977A8",
- "extended_signed_section_aes_key": "E57365B4C043F96994BD7E80A95A8B92",
- "extended_unsigned_metadata_key_hmac_key": "80640EC36B5B0070AF9F82422D762C03478DE28D2EE68B62F032FBDDEAFF4DF1",
- "extended_unsigned_section_aes_key": "D14304D0DFCFCAD52BC981668A6F6F67",
- "extended_unsigned_section_mic_hmac_key": "43D37CEB206832BD63CECA3AD1EC5561C057E1419407FEB21CB8863072488004",
- "key_seed": "33D844B574F015BCC8C02BACDEA5B9F7679A86028C1475F95606BB737F61AC27",
- "legacy_ldt_key": "31D60BEA4489422D44AEB03198947ECD66A2EA619335A95EEA96756B2F6952557BA5C6C7384CE83F1F8A66E3B5E156B0A3B2A9B1E327BA3541D23C9A10E39D70",
- "legacy_metadata_iv": "9A9C99A9E0FC905FDDFF59DD",
- "legacy_metadata_key_hmac_key": "3CB96E61B03C08F17A1A180BF96B4A68AA913FB90535DED04DE8549C47BED709"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2D69",
- "expanded_salt": "787C256EFD3B615F3A93E56ED0FFFA7A"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "9F3B5C389D9250C0177566A9685D38CC",
- "legacy_metadata_key": "DFC491A2FF59BE26A7E857DBE7AD"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "9D189076543EFE5197295EBCBA390BAD",
- "derived_salt_first_section_no_de": "CDEDDF425112634C5DA9119C95C35682",
- "derived_salt_first_section_third_de": "C84D1516965C0220D755BCF3C604ED05",
- "section_salt": "F89CB30EA57C3F8F0C6D2FFA88AC5FFF"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C62CA3CFE8A8E0D3166CEA26",
- "extended_signed_metadata_key_hmac_key": "97920A533178FE819F394CB3797675F0FC6293316887FA0A1FE0C842EB3D2FA3",
- "extended_signed_section_aes_key": "2A601158B4A39A898A24B894394BAA33",
- "extended_unsigned_metadata_key_hmac_key": "16037E337DCDA85F0F69028D490B08383C32946778FCDAD3D8AD39ABAB9F7764",
- "extended_unsigned_section_aes_key": "4AC2BACD8BFED840A6D11E8CC91BF70E",
- "extended_unsigned_section_mic_hmac_key": "CE4E5501CCE34316D6C77DBEABE5206EBD525C199973F6A4685EB701D2E5C349",
- "key_seed": "8EBEE5071FC9DDF6FA5165A6E112B533E0FCD1629B7D81438E1012EE58EBAF0A",
- "legacy_ldt_key": "DA443623B7F09FB14674C165FA5FA78CFFAE4F837AB81F69E75F8D644A420B5141EA274DF44A32359B5E8DBF470F45D2385B5E08010A3670E08DD380E24ACD44",
- "legacy_metadata_iv": "6ABFD31BEB0762FACB3ADF35",
- "legacy_metadata_key_hmac_key": "3FE01D548B9B8A22594AFDE9315C6D65447A4078C771DEC2475A24206F9E4E98"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "B3AE",
- "expanded_salt": "069861A56B09AEC95E8E463503830270"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5C8864CCB72AECA4137F3B7A37B6C7DF",
- "legacy_metadata_key": "51ACA7680D641AB37055CC575A05"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "83B964847F62A780FF604CEE6BAA5B73",
- "derived_salt_first_section_no_de": "3179860C5A84C0297F78DB17F85104A9",
- "derived_salt_first_section_third_de": "260521A20F1136DF6FE54FF414829D8E",
- "section_salt": "30D59B533F6EE8F827D744E2AED3F3AD"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "2FC3C752C7941949BD45166F",
- "extended_signed_metadata_key_hmac_key": "087D77C41D58789F5A37D340A292F2E9EEEFEBBB629B88733D5B059DEAA6D47E",
- "extended_signed_section_aes_key": "17284BAB42DCE225E2C67D682C1A1916",
- "extended_unsigned_metadata_key_hmac_key": "A883370F3A0372E96A90FAF71654297ADCC4BE691967026254EFAFDDB5EC651F",
- "extended_unsigned_section_aes_key": "EC848AEE80AB31D53B3645974C129256",
- "extended_unsigned_section_mic_hmac_key": "C52B431A786C020CB0EB9CE5829E30B4C0ADB5BE44FC9E2A4CB28CCEB49FE9B7",
- "key_seed": "F780A40AB5CC41D1976CBD169D44D2EC9B0974282017A43034D39D983084B7F9",
- "legacy_ldt_key": "F6FA1472658A6C4BD00833DDFF7CC82D612E4A70B3720B35E01CEEFF1B646E27813026CB896D20721D2D69A2C5DC96F2BFBE2174492978E1EFF31F854C396D34",
- "legacy_metadata_iv": "7207A0B403D6F8E3C2F124F7",
- "legacy_metadata_key_hmac_key": "29059C20B04B3E176BB26016391447F93A03E83509529447A36E1FB740E51EF4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5B75",
- "expanded_salt": "5085D5B179E3D5415EF95D933DEC4AF9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "804C99923E2E764591502C17C7B35227",
- "legacy_metadata_key": "DE2342887DE422FA0D3F73391035"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "73A723A7814413096323B30F3A6112B9",
- "derived_salt_first_section_no_de": "22C7B4FBB2496FA99FE710E750527FF5",
- "derived_salt_first_section_third_de": "47AA2B45006E5F103C7885EFC4FC8006",
- "section_salt": "6B8BBB5749F8C4E1EBA5C0EEE21D05D4"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "8BAC32FA0EF1327620326FA8",
- "extended_signed_metadata_key_hmac_key": "C1D213826638EC60DA75B319F83D3F91DBA0E0A894AA9823F9DD2666FEE854B6",
- "extended_signed_section_aes_key": "00181B1B78C428C342212A357012E467",
- "extended_unsigned_metadata_key_hmac_key": "2E9ACEB97E32808A44E22F9DFC4CD2ADC0554DB3395B52535B4B321D31850D69",
- "extended_unsigned_section_aes_key": "6233828B5109A0E212BEF45F14CE99CB",
- "extended_unsigned_section_mic_hmac_key": "C7FA49C6C8DF22EDDA79AB7DD678769A29A1059F10D18520ADB3635548DB4FF1",
- "key_seed": "0DB177F29EDF765DC7F1EA5CC60E8462721B755BF6473957DA5CD86212BB7CB1",
- "legacy_ldt_key": "0E2AC87C5EF0283DA16E81F17F33A03EA276F53170C8EC85F327251C5C6431144CCF41109C8BC334A3369C026E53CC36C354559D6F35D3A737C562F47D3D96E0",
- "legacy_metadata_iv": "A516060B3A9DE9567A49D839",
- "legacy_metadata_key_hmac_key": "15203D2B01A56FB6F6216FE7E602E24D50F7D5A9D85A05002AF927B9291030EE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "D9B8",
- "expanded_salt": "1F5DD44BE4396F144E0F34C01169C6D9"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "526568A9FC8D8BF6A7CA110CEA117AA5",
- "legacy_metadata_key": "5A84DA21C81C9C4AB5F94D11D254"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "83D59B3CB9DF038A2DE2E4666412CC62",
- "derived_salt_first_section_no_de": "E28A2DD4727753FE487116A89F9DA097",
- "derived_salt_first_section_third_de": "4EBB7DA2B5A846CD33FCF5DAB6C7C296",
- "section_salt": "A71C295ECBD27B8D342ACEA607D3A150"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "C92ECF58669791189C85B808",
- "extended_signed_metadata_key_hmac_key": "25B747A8A7653870C586ECAEA56A550648B6613F0CC1F86E09A1A445F375CA08",
- "extended_signed_section_aes_key": "EE7C69D5BA87A8D8268127D9D5A79BA0",
- "extended_unsigned_metadata_key_hmac_key": "E7E7D801392CA2184A6C11231709DB510DC073FCEF8F6663FC9263932B1A1F44",
- "extended_unsigned_section_aes_key": "63ECDFA78AA68EB503EE108090B13FB8",
- "extended_unsigned_section_mic_hmac_key": "235B9E6FEF6EFCA197458D5D9B587C572C979AE1CF0E8BB270D5D4C39989DFDC",
- "key_seed": "ECC6147A601BE7CAD1DD4B29C61431DFF9B7D5BEC5BA1B93C4929EFBBA7C7FDF",
- "legacy_ldt_key": "14827C5057CF9A5065F65FC37F7164016703AFB315A94BA36DDAC06F863DBDA49BDB3EA043CEDB834C3FE09929DEE48FB4667F3A2766003B94D233358D4B2D55",
- "legacy_metadata_iv": "95592FCED2D5A2994A35186A",
- "legacy_metadata_key_hmac_key": "14A0708F7B63ED81D2171F29260E7462D53292E4DDE4BFA480591F641677AF30"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "2410",
- "expanded_salt": "53E4801E68EAD629A0718B2A6F8653E4"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "7A23D4BDC0C58E94EEBDBDB42D9B4F73",
- "legacy_metadata_key": "D9FF02D0A5A38E9D8393B214CEA0"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4DA2F78E8B01FFD6BB4301A3E6ADDD66",
- "derived_salt_first_section_no_de": "790AD77D56D24531AF0E772BECC16D31",
- "derived_salt_first_section_third_de": "4899B2731E50C934FD4BDB34B314E82C",
- "section_salt": "95ECBECB54434E4AD0E1682361202856"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "395FD6BE741221BF34884193",
- "extended_signed_metadata_key_hmac_key": "5F86AC196C7361C9A757CF60114D2EE6CE2018E02B4A88139ACC6BE5FC0A6472",
- "extended_signed_section_aes_key": "6BA14AFA62BAD848FC6B09B85095CC2C",
- "extended_unsigned_metadata_key_hmac_key": "EBD76E3FEF389DDAB2842A8554144A5F7732CAADD619E3CDBBA25BB5B682A3DF",
- "extended_unsigned_section_aes_key": "43DA5ED899FBB4462EFC6ED4C501C292",
- "extended_unsigned_section_mic_hmac_key": "180B28251493A8E8E9684686050B95CE668834DFAD8477A7200D948A41D7D340",
- "key_seed": "9D18C348E16584BCC0D5A8623BC53E2E0E730D9BCE3F18DB7D642F410B7A4D44",
- "legacy_ldt_key": "D4639F63EE68329A039C49E29639A5C69299389FBB131936213D5FB04BCD8B818399C577DD29EA47448CF581E7F17122D7D61476C14B54AADFE25CE69E3D3E47",
- "legacy_metadata_iv": "E48C10D1FA2C07D118549951",
- "legacy_metadata_key_hmac_key": "7E8894860D7A4E333DE55DE86F3A4C4109A78A855462BA6EF105F5522D8EA54E"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "0D30",
- "expanded_salt": "F2F875386455F45B8C2DC39853E876CD"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "2C0C2B704BD7FA9AADF7D9947483BE09",
- "legacy_metadata_key": "DF3C89AD4930385076E1AEC19454"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "86FD9FD5B8E6B9B7CA008E4877F3042A",
- "derived_salt_first_section_no_de": "DBE0487FD05E93ED49227C2EDA5FB285",
- "derived_salt_first_section_third_de": "7DC70FB002C3E0BD4FD06C3A7B631F91",
- "section_salt": "6D19D98A554F0DB81B2ADD76F349D9E7"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "30895FEBE2A1117C68B9C003",
- "extended_signed_metadata_key_hmac_key": "5F9081A8CCCB377E25B60B458F30C66985688A3EC94DDFEFD9D0A694AF692D99",
- "extended_signed_section_aes_key": "9DDF67C3F63C6A375170ADB286B6DF87",
- "extended_unsigned_metadata_key_hmac_key": "D7D24DB677F2C0733772CBB7DC304E62872EE8E7805B5AEE53C6398990A978C5",
- "extended_unsigned_section_aes_key": "948C9B0E2E9285B7B9FE6533DA49BF13",
- "extended_unsigned_section_mic_hmac_key": "BCC76F98086D237A1F73706B535EBF80A3969D645A4B2E570F066859889187F3",
- "key_seed": "B685C2E423608215226E6DB5CA32808319700FAA6AAE0BD591786F2C5571AF38",
- "legacy_ldt_key": "3ED71AEA5C209FF132E18885D6A28927D2F23782F2E44630B3E7845F917FD370ECA0161E641938B4302CDD8DFF0DFC8CBE307E1ACB2F2D818EF2C3970EC696A8",
- "legacy_metadata_iv": "BD2007133314BA4DE6BE2E33",
- "legacy_metadata_key_hmac_key": "2C4E2FC1447ED019E82B45B2A1F674D9B39D69787AE5E5E9797E93BF8AD3CF3D"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "CC1A",
- "expanded_salt": "F1DA63E316489CD848BC67FFFEF6C2C8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "47493BAB69D434CF78AD77B571CD411B",
- "legacy_metadata_key": "42578471F7F7B5FAA749F925D053"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "1ACDC1411EFFCE3DD39BB8E50ABC7035",
- "derived_salt_first_section_no_de": "05FA583374BA3E37C47CDACBFD229139",
- "derived_salt_first_section_third_de": "CE1FB34BAC0CB730FF1C3E0FD9573E1A",
- "section_salt": "3391B10ABE3F591F23D3817F34E54527"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "7928DBE41D0FE90C5163BA94",
- "extended_signed_metadata_key_hmac_key": "68D2C7439B40CA714872A0FA7BDD5C1A7EF5CFF5A5AD68485DD1395B0D9C533A",
- "extended_signed_section_aes_key": "3E0BDC042D97196AD40FC7D156D2C30E",
- "extended_unsigned_metadata_key_hmac_key": "9F57AAE1DF867DA3391EBB408D4528AA2CE1B5C155A4227AE60AA89D44C0CAE1",
- "extended_unsigned_section_aes_key": "E5EA2C722808AD08D6077CA534DFEE87",
- "extended_unsigned_section_mic_hmac_key": "6AC80CA3C5CF9F6D5EEDDDCCCB4CA85DEFFC69DF6ABA64EECD4ED162E0D738AE",
- "key_seed": "EDB340675CCB1A2B2378E8ABA80A0E286F0A8289D5E64705D1F62FEE92E0FE17",
- "legacy_ldt_key": "2CB9C3B08C3B9E964841A2CCAAAF3A0468729CD45BFC68D7B2A03081643879B05A83BCE0E5C1C6763C0B2FA3217A903E27806A26A5346A4C642A53F98814E0EE",
- "legacy_metadata_iv": "50C472185FDE63FEB3F69481",
- "legacy_metadata_key_hmac_key": "3AF03DCA5C07CB90EA83D2C5EAE9CD1CEA96CAFD7148029EA8088446BC713EA4"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "4C22",
- "expanded_salt": "CD422A78CC6934E8048627D0DC5A51E8"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5B6DA9777BB0F17BE4B5A8D2C0262F79",
- "legacy_metadata_key": "B49B90073C14F75E776467A5D878"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E62F1DD973CDC266C90EE4DF1036CF75",
- "derived_salt_first_section_no_de": "44AA57AD631EC7389666DCEA77C294CA",
- "derived_salt_first_section_third_de": "4AA23D95D88163A59BF74F676743E3B9",
- "section_salt": "61865816B112335B3A6E5B9F2445921B"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "20A7AA32ED0A512B3BCC605A",
- "extended_signed_metadata_key_hmac_key": "82FD31BEEF23B964326D45A46076C70BB6F707CF948D131CAE86BC9031033C9C",
- "extended_signed_section_aes_key": "136A5015AFEB53C7C1E53094D353AA8A",
- "extended_unsigned_metadata_key_hmac_key": "FB87972B043D852133DC11C6E5C2E425B52D81142F4948F006293EF45C91A727",
- "extended_unsigned_section_aes_key": "509EEE6F41367BD6C91826058F3C804B",
- "extended_unsigned_section_mic_hmac_key": "3CCCC109B453EAB34B815EA0CF8CAC9CBC00B7361C91E2DE2CEAD4CB1AC821E6",
- "key_seed": "B526AD2760DDBFD936C8AA210DC639AB3346D66465D186A5526AEB8658785BFB",
- "legacy_ldt_key": "AF7C0C71D57E804A00D7D4369229D985527DEE781446BC3269C4F20C95722CCD42026D91DED4A7FD5D96ABA1CB5DD159A6FE9D4785FFAB77807EF7EE9F3AFDD6",
- "legacy_metadata_iv": "797FEA0E985896CE37BD7F00",
- "legacy_metadata_key_hmac_key": "21C57981D41632066BC7035688F8B9D2B84FB1D611D809B83B0AC82339D122AE"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "8CC8",
- "expanded_salt": "5931A58109AF39C5BE43ECDEED5F30ED"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "956BCB112425851760306F974C9C9B40",
- "legacy_metadata_key": "A5996CA8E9E500EB753B723DDE5B"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "D2BB78F9B65F67E6FDAF3C1BA7C39759",
- "derived_salt_first_section_no_de": "96B86876AFF59AD1DD42C4501E13819B",
- "derived_salt_first_section_third_de": "933A348AB95FB4E839231E8A16A53AC1",
- "section_salt": "2D502CC76C1524CBF2A6EFD7A6C90239"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "9AEB678729C0E55B26A3AF5F",
- "extended_signed_metadata_key_hmac_key": "80AD9EF5A11DD84ABDBEA79C68A307F5F9393EDC22F43676C71AA48151B74186",
- "extended_signed_section_aes_key": "32A60372DA2CA70E7502A3E249AB8CE4",
- "extended_unsigned_metadata_key_hmac_key": "4900684961433FC36AF2FEBD236480C13F673C83F28C53A0DF426E8188E0D0D3",
- "extended_unsigned_section_aes_key": "1E9E187715BD8029B2F9D862943ABB13",
- "extended_unsigned_section_mic_hmac_key": "F2158057F34E16DC70C8A19515A5E9CAF890AAC267CFF3183A6BDE15B4708DB6",
- "key_seed": "8FB981E265DC933999E83327E1AB92BDB9EFB48C8FF54E45A237BF95BC885F79",
- "legacy_ldt_key": "05C194D0652EF200F66A7D23CA9E829484244A26F50EF1B7EEA25214B2E009A0B213D2288F5514A2A00351E021B4E9EC0A5240BC0BE38B372264AFA8606B956D",
- "legacy_metadata_iv": "8F7FA54257F2F7EF29DFFC4C",
- "legacy_metadata_key_hmac_key": "4DBBBEA2E074E11D3F54B634AE6F75983843AC3FB428CCF79F622B3D37384DD6"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "9761",
- "expanded_salt": "0F07475E4EE655ECDB6A84BF6FD5622C"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "5F76BA56B7E91999F969677E909D6BA2",
- "legacy_metadata_key": "8AAE84B7B19D3CBD7B8C25055B27"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "E9D58C4EC567A2C6EBA8304EFAECAC1E",
- "derived_salt_first_section_no_de": "1DBF230F4145620EB9EF36559A163D21",
- "derived_salt_first_section_third_de": "13DFF359E4A76019DBBE475CA78D7E32",
- "section_salt": "E11511067A624355848C5904B88CB04F"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "34A55582712D99B4EB3BABAF",
- "extended_signed_metadata_key_hmac_key": "10743B50FF515DD93F4475B89A0F56F36384D256C0D05FE72A0DECF2431FDA72",
- "extended_signed_section_aes_key": "FDDC553CDECA218343270D929FC60B00",
- "extended_unsigned_metadata_key_hmac_key": "E7F4F53507C4CE9E6B71D9CCDC61DF65C6D37412C80813A5E38D0F43246DD3BC",
- "extended_unsigned_section_aes_key": "9078301052192B11654D06C21F7344DB",
- "extended_unsigned_section_mic_hmac_key": "F13B170C5553D5FBA91FCEA2538A6C41BF189735E064D1E8D3FE72E3CEF327A7",
- "key_seed": "1787EDD62CB2AE35D9CA3E58664F7EAA0943ADB6408EE7DACD03D69BFB71950D",
- "legacy_ldt_key": "A5D3C3CDA51C29156F8559D7240EA7BB9978C512C37F917E01FE3D0737CB3A583E484D22431A31D6862C1EE1B9B2EA8F8F53DF93994F5DBD39D80E4945672440",
- "legacy_metadata_iv": "6E2F4EFDDD8EB5956D64E032",
- "legacy_metadata_key_hmac_key": "6D7502650A0FC4FC4B5A121A3530B64C670DF30129FDF2A3DB208A9E73EC6119"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "5CAC",
- "expanded_salt": "6286C892C789E707D5FC4F7ECF295758"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "3A6CA8878EEA4C9780A4CD56DF6EEF9F",
- "legacy_metadata_key": "09120637CB232A416770C120E7B8"
- }
- },
- {
- "extended_section_salt_hkdf": {
- "derived_salt_first_section_first_de": "4C1459C08D03611726FCC72571D92FA9",
- "derived_salt_first_section_no_de": "7FFC521FCA71B26C810B8A8105595E6C",
- "derived_salt_first_section_third_de": "1EDAFA7D120A008A329EA66B53065C13",
- "section_salt": "FEAAA8F6CA4148428F07867873E7363A"
- },
- "key_seed_hkdf": {
- "extended_metadata_iv": "32FB758913476CDEDB73730B",
- "extended_signed_metadata_key_hmac_key": "EA12527AC48115C847FAB2A3B06AA38DFC9AE7C181561500DDBF582210C15CB0",
- "extended_signed_section_aes_key": "3ADFF816D9C7CF0E0C24B5D28DA43CC2",
- "extended_unsigned_metadata_key_hmac_key": "9E7DB36A13353175552C21A8CCC26CD5DB59AAF78508EE95A819308E22264A5B",
- "extended_unsigned_section_aes_key": "9EDC7CC6C38442E036935667C17813D1",
- "extended_unsigned_section_mic_hmac_key": "04BCFC0C5A5B8E4189BBABF0158CDCD12565E3D0BABEF8A0A8540B18E924776D",
- "key_seed": "9417ADE49361BEF9E554243A6E7F0DC321CE813A4041EAE974E2E98A596A8884",
- "legacy_ldt_key": "6CA03A262A1F95E6DDC28B4477169965D8EB99918806B3A3F549F8F9DE3F7C56F9B8130976A6530E9DFE00AA547E32433A5FE714324F043B71FEC01E40EED204",
- "legacy_metadata_iv": "80F123026A36CF71A3D29760",
- "legacy_metadata_key_hmac_key": "6A4FF1BD14E38BCEEC956BE0249EB47DAA0BB20EC0DC9D22DF8BA3171CEE8194"
- },
- "legacy_adv_salt_hkdf": {
- "adv_salt": "FE2B",
- "expanded_salt": "5E7AF0BB00C7AC8BF009F3D6590F9006"
- },
- "legacy_metadata_key_hkdf": {
- "expanded_key": "21870BFE2E25D3485DD2BB055999B8BB",
- "legacy_metadata_key": "215704DCD36B6FDEDA6B748DA5CE"
+ "expanded_key": "15896E896566D60C3810FAADC94A05CE",
+ "legacy_metadata_key": "C08895650105CE9C165A9BCA08D8"
}
}
-]
+] \ No newline at end of file
diff --git a/nearby/presence/np_hkdf/src/lib.rs b/nearby/presence/np_hkdf/src/lib.rs
index 907eed9..f4f98eb 100644
--- a/nearby/presence/np_hkdf/src/lib.rs
+++ b/nearby/presence/np_hkdf/src/lib.rs
@@ -70,6 +70,20 @@ impl<C: CryptoProvider> NpHmacSha256Key<C> {
hmac.update(data);
hmac.finalize()
}
+
+ /// Build an HMAC, update it with the provided `data`, and verify it.
+ ///
+ /// This is convenient for one-and-done HMAC usage rather than incrementally accumulating
+ /// the final MAC.
+ pub fn verify_hmac(
+ &self,
+ data: &[u8],
+ expected_mac: [u8; 32],
+ ) -> Result<(), crypto_provider::hmac::MacError> {
+ let mut hmac = self.build_hmac();
+ hmac.update(data);
+ hmac.verify(expected_mac)
+ }
}
impl<C: CryptoProvider> From<[u8; 32]> for NpHmacSha256Key<C> {
@@ -111,18 +125,18 @@ impl<C: CryptoProvider> NpKeySeedHkdf<C> {
self.hkdf.derive_hmac_sha256_key(b"Legacy metadata key verification HMAC key")
}
- /// AES-GCM IV used when decrypting metadata
+ /// AES-GCM nonce used when decrypting metadata
#[allow(clippy::expect_used)]
- pub fn legacy_metadata_iv(&self) -> [u8; 12] {
- self.hkdf.derive_array(b"Legacy Metadata IV").expect("IV is a valid length")
+ pub fn legacy_metadata_nonce(&self) -> [u8; 12] {
+ self.hkdf.derive_array(b"Legacy Metadata Nonce").expect("Nonce is a valid length")
}
- /// AES-GCM IV used when decrypting metadata.
+ /// AES-GCM nonce used when decrypting metadata.
///
/// Shared between signed and unsigned since they use the same credential.
#[allow(clippy::expect_used)]
- pub fn extended_metadata_iv(&self) -> [u8; 12] {
- self.hkdf.derive_array(b"Metadata IV").expect("IV is a valid length")
+ pub fn extended_metadata_nonce(&self) -> [u8; 12] {
+ self.hkdf.derive_array(b"Metadata Nonce").expect("Nonce is a valid length")
}
/// HMAC key used when verifying the raw metadata key extracted from an advertisement
diff --git a/nearby/presence/np_hkdf/src/v1_salt.rs b/nearby/presence/np_hkdf/src/v1_salt.rs
index b139e84..f7f4f28 100644
--- a/nearby/presence/np_hkdf/src/v1_salt.rs
+++ b/nearby/presence/np_hkdf/src/v1_salt.rs
@@ -60,6 +60,11 @@ impl<C: CryptoProvider> V1Salt<C> {
self.data.as_slice()
}
+ /// Returns the salt bytes as an array
+ pub fn into_array(self) -> [u8; 16] {
+ self.data
+ }
+
/// Returns the salt bytes as a reference to an array
pub fn as_array_ref(&self) -> &[u8; 16] {
&self.data
diff --git a/nearby/presence/np_hkdf/tests/hmac.rs b/nearby/presence/np_hkdf/tests/hmac.rs
new file mode 100644
index 0000000..4ebef5a
--- /dev/null
+++ b/nearby/presence/np_hkdf/tests/hmac.rs
@@ -0,0 +1,42 @@
+// 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::hmac::MacError;
+use crypto_provider_default::CryptoProviderImpl;
+use np_hkdf::*;
+
+#[test]
+fn verify_hmac_correct_mac() {
+ let data = &[1_u8; 32];
+ let hmac_key = [2; 32];
+
+ let hmac = NpHmacSha256Key::<CryptoProviderImpl>::from(hmac_key);
+
+ let mac = hmac.calculate_hmac(data);
+
+ assert_eq!(Ok(()), hmac.verify_hmac(data, mac));
+}
+
+#[test]
+fn verify_hmac_incorrect_mac() {
+ let data = &[1_u8; 32];
+ let hmac_key = [2; 32];
+
+ let hmac = NpHmacSha256Key::<CryptoProviderImpl>::from(hmac_key);
+
+ let _mac = hmac.calculate_hmac(data);
+
+ // wrong mac
+ assert_eq!(Err(MacError), hmac.verify_hmac(data, [0xFF; 32]));
+}
diff --git a/nearby/presence/np_hkdf/tests/test_vectors.rs b/nearby/presence/np_hkdf/tests/test_vectors.rs
index ca1cdae..380c107 100644
--- a/nearby/presence/np_hkdf/tests/test_vectors.rs
+++ b/nearby/presence/np_hkdf/tests/test_vectors.rs
@@ -48,12 +48,12 @@ fn hkdf_test_vectors() -> Result<(), anyhow::Error> {
hkdf.legacy_metadata_key_hmac_key().as_bytes()
);
assert_eq!(
- extract_key_array::<12>(group, "legacy_metadata_iv"),
- hkdf.legacy_metadata_iv()
+ extract_key_array::<12>(group, "legacy_metadata_nonce"),
+ hkdf.legacy_metadata_nonce()
);
assert_eq!(
- extract_key_array::<12>(group, "extended_metadata_iv"),
- hkdf.extended_metadata_iv()
+ extract_key_array::<12>(group, "extended_metadata_nonce"),
+ hkdf.extended_metadata_nonce()
);
assert_eq!(
&extract_key_array::<32>(group, "extended_unsigned_metadata_key_hmac_key"),
@@ -125,7 +125,7 @@ fn gen_test_vectors() {
let mut array = Vec::<serde_json::Value>::new();
- for _ in 0..1_000 {
+ for _ in 0..100 {
let key_seed: [u8; 32] = rng.gen();
let legacy_adv_salt: [u8; 2] = rng.gen();
let legacy_metadata_key: [u8; 14] = rng.gen();
@@ -140,8 +140,8 @@ fn gen_test_vectors() {
"legacy_ldt_key": hex::encode_upper(key_seed_hkdf.legacy_ldt_key().as_concatenated()),
"legacy_metadata_key_hmac_key":
hex::encode_upper(key_seed_hkdf.legacy_metadata_key_hmac_key().as_bytes()),
- "legacy_metadata_iv": hex::encode_upper(key_seed_hkdf.legacy_metadata_iv()),
- "extended_metadata_iv": hex::encode_upper(key_seed_hkdf.extended_metadata_iv()),
+ "legacy_metadata_nonce": hex::encode_upper(key_seed_hkdf.legacy_metadata_nonce()),
+ "extended_metadata_nonce": hex::encode_upper(key_seed_hkdf.extended_metadata_nonce()),
"extended_unsigned_metadata_key_hmac_key": hex::encode_upper(key_seed_hkdf.extended_unsigned_metadata_key_hmac_key().as_bytes()),
"extended_unsigned_section_aes_key": hex::encode_upper(UnsignedSectionKeys::<CryptoProviderImpl>::aes_key(&key_seed_hkdf).as_array()),
"extended_unsigned_section_mic_hmac_key": hex::encode_upper(UnsignedSectionKeys::<CryptoProviderImpl>::hmac_key(&key_seed_hkdf).as_bytes()),
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 @@ version = 3
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 = "curve25519-dalek-derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "der"
-version = "0.7.1"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946"
dependencies = [
"const-oid",
"zeroize",
@@ -217,9 +230,9 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
[[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 @@ dependencies = [
[[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 @@ dependencies = [
[[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 @@ dependencies = [
]
[[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 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[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 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
[[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 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[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 @@ dependencies = [
]
[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[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",
@@ -518,10 +524,16 @@ dependencies = [
]
[[package]]
+name = "semver"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+
+[[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",
@@ -536,15 +548,15 @@ checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
[[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 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[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 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[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 @@ dependencies = [
[[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/xts_aes/src/lib.rs b/nearby/presence/xts_aes/src/lib.rs
index ff68d76..0d8d1fd 100644
--- a/nearby/presence/xts_aes/src/lib.rs
+++ b/nearby/presence/xts_aes/src/lib.rs
@@ -173,7 +173,7 @@ impl<A: Aes<Key = K::BlockCipherKey>, K: XtsKey> XtsEncrypter<A, K> {
Ok(())
}
- /// Returns an [XtsTweaked] configured with the specified tweak and a block number of 0.
+ /// Returns an [`XtsEncrypterTweaked`] configured with the specified tweak and a block number of 0.
fn tweaked(&self, tweak: Tweak) -> XtsEncrypterTweaked<A> {
let mut bytes = tweak.bytes;
self.tweak_encryption_cipher.encrypt(&mut bytes);
@@ -244,7 +244,7 @@ impl<A: Aes<Key = K::BlockCipherKey>, K: XtsKey> XtsDecrypter<A, K> {
Ok(())
}
- /// Returns an [XtsTweaked] configured with the specified tweak and a block number of 0.
+ /// Returns an [`XtsDecrypterTweaked`] configured with the specified tweak and a block number of 0.
fn tweaked(&self, tweak: Tweak) -> XtsDecrypterTweaked<A> {
let mut bytes = tweak.bytes;
self.tweak_encryption_cipher.encrypt(&mut bytes);
@@ -601,7 +601,7 @@ impl<'a, A: Aes> XtsDecrypterTweaked<'a, A> {
self.tweak_state.clone()
}
- /// Set the tweak to a state captured via [current_tweak].
+ /// Set the tweak to a state captured via [`current_tweak`](XtsDecrypterTweaked::current_tweak).
fn set_tweak(&mut self, tweak_state: TweakState) {
self.tweak_state = tweak_state;
}
diff --git a/nearby/scripts/build-script.sh b/nearby/scripts/build-script.sh
deleted file mode 100755
index 5fc999e..0000000
--- a/nearby/scripts/build-script.sh
+++ /dev/null
@@ -1,279 +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.
-
-# This script contains common functions which can be used to help when building
-# specific components of the beto-rust repo. To load these into your environment
-# run `source ./scripts/build-script.sh` Then run the functions from root
-# This can also be sourced to help when writing further build scripts
-
-export SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
-
-# Use to generate headers for new source code files
-gen_headers() {
- set -e
- $HOME/go/bin/addlicense -c "Google LLC" -l apache -ignore=**/android/build/** -ignore=target/** \
- -ignore=**/target/** -ignore=".idea/*" -ignore=**/cmake-build/** -ignore="**/java/build/**" \
- -ignore="**/ukey2_c_ffi/cpp/build/**" .
-}
-
-# Checks the workspace 3rd party crates and makes sure they have a valid license
-check_crate_licenses(){
- set -e
- cd $SCRIPT_DIR/..
- cargo deny --workspace check
-}
-
-# Checks everything in beto-rust
-check_everything(){
- set -e
- cd $SCRIPT_DIR/..
- check_license_headers
- check_workspace
- check_boringssl
- check_ldt_ffi
- check_ukey2_ffi
- build_fuzzers
-}
-
-# Checks everything included in the top level workspace
-check_workspace(){
- set -e
- cd $SCRIPT_DIR/..
- # ensure formatting is correct (Check for it first because it is fast compared to running tests)
- cargo fmt --check
- # make sure everything compiles
- cargo check --workspace --all-targets
- # run all the tests
- cargo test --workspace --quiet
- # ensure the docs are valid (cross-references to other code, etc)
- cargo doc --workspace --no-deps
- cargo clippy --all-targets
- cargo deny --workspace check
- # Check the build for targets without using RustCrypto dependencies
- cargo check --features=openssl --no-default-features
-}
-
-# Checks that the license auditing tool is installed and that all source files in the project contain the needed headers
-check_license_headers() {
- set -e
- cd $SCRIPT_DIR/..
- # install location for those following the default instructions
- ADDLICENSE="$HOME/go/bin/addlicense"
- if [ ! -x "$ADDLICENSE" ]; then
- # if not in the default place, assume it's in PATH
- ADDLICENSE="addlicense"
- fi
-
- # see README for instructions on setting up addlicense tool
- if ($ADDLICENSE -h >/dev/null 2>&1); then
- echo "Add license is already installed"
- else
- echo "ERROR: addlicense tool is not installed, see instructions in README"
- exit 1
- fi
-
- if $ADDLICENSE -check \
- -ignore="**/android/build/**" \
- -ignore="target/**" \
- -ignore="**/target/**" \
- -ignore="**/.idea/**" \
- -ignore="**/cmake-build/**" \
- -ignore="**/java/build/**" \
- -ignore="**/java/*/build/**" \
- -ignore="**/ukey2_c_ffi/cpp/build/**" \
- .; then
- echo "License header check succeeded!"
- else
- echo "ERROR: License header missing for above files"
- exit 1
- fi
-}
-
-# Build all fuzz targets
-build_fuzzers() {
- set -e
- cd $SCRIPT_DIR/..
- # rust fuzzers
- for fuzzed_crate in presence/xts_aes presence/ldt presence/ldt_np_adv connections/ukey2/ukey2_connections; do
- (cd "$fuzzed_crate" && cargo +nightly fuzz build)
- done
-
- # ffi fuzzers
- rm -Rf presence/ldt_np_adv_ffi_fuzz/cmake-build
- (cd presence/ldt_np_adv_ffi_fuzz && mkdir -p cmake-build && cd cmake-build && cmake ../.. -DENABLE_FUZZ=true && make)
- rm -Rf presence/ldt_np_adv_ffi_fuzz/cmake-build
-}
-
-# Builds and runs all tests for all combinations of features for the LDT FFI
-check_ldt_ffi() {
- set -e
- cd $SCRIPT_DIR/..
- # We need to handle ldt_np_adv_ffi separately since it requires the nightly toolchain
- cd presence/ldt_np_adv_ffi
- cargo fmt --check
- cargo check
- # Default build, RustCrypto + no_std
- cargo build --release
- # Turn on std, still using RustCrypto
- cargo build --features=std
- # Turn off default features and try to build with std
- cargo build --no-default-features --features=std
- # Turn off RustCrypto and use openssl
- cargo build --no-default-features --features=openssl
- # Turn off RustCrypto and use boringssl
- cargo --config .cargo/config-boringssl.toml build --no-default-features --features=boringssl
- cargo doc --no-deps
- cargo clippy --release
- cargo clippy --features=std
- cargo clippy --no-default-features --features=openssl
- cargo clippy --no-default-features --features=std
- cargo deny check
- cd ../
-
- # build C/C++ samples, tests, and benches
- mkdir -p cmake-build && cd cmake-build
- cmake .. -DENABLE_TESTS=true
- make
-
- # test with default build settings (rustcrypto, no_std)
- echo "Testing default features (no_std + rustcrypto)"
- (cd ../ldt_np_adv_ffi && cargo build --release)
- (cd ldt_np_c_sample/tests && ctest)
-
- # test with std
- echo "Testing std feature flag"
- (cd ../ldt_np_adv_ffi && cargo build --features std --release)
- (cd ldt_np_c_sample/tests && make && ctest)
-
- # test with boringssl crypto feature flag
- echo "Testing boringssl"
- (cd ../ldt_np_adv_ffi && cargo --config .cargo/config-boringssl.toml build --no-default-features --features boringssl --release)
- (cd ldt_np_c_sample/tests && make && ctest)
-
- # test with openssl feature flag
- echo "Testing openssl"
- (cd ../ldt_np_adv_ffi && cargo build --no-default-features --features openssl --release)
- (cd ldt_np_c_sample/tests && make && ctest)
-
- # test with std feature flag
- echo "Testing std with no default features"
- (cd ../ldt_np_adv_ffi && cargo build --no-default-features --features std --release)
- (cd ldt_np_c_sample/tests && make && ctest)
- cd ../
-}
-
-# Builds and runs tests for the UKEY2 FFI
-check_ukey2_ffi() {
- set -e
- cd $SCRIPT_DIR/..
- cd connections/ukey2/ukey2_c_ffi
- # Default build, RustCrypto
- cargo build --release --lib
- # Try to build with OpenSSL
- cargo build --no-default-features --features=openssl
- cargo doc --no-deps
- cargo clippy --release
- cargo clippy --no-default-features --features=openssl
- cargo deny check
-
- # build C/C++ samples, tests, and benches
- cd cpp
- mkdir -p build && cd build
- cmake ..
- make all
- ctest
-
- cd $SCRIPT_DIR/..
-}
-
-# Clones boringssl and uses bindgen to generate the rust crate, applies AOSP
-# specific patches to the 3p `openssl` crate so that it can use a bssl backend
-prepare_boringssl() {
- set -e
- cd $SCRIPT_DIR/../..
- projectroot=$PWD
- mkdir -p boringssl-build && cd boringssl-build
-
- if ! git -C boringssl pull origin master; then
- git clone https://boringssl.googlesource.com/boringssl
- fi
- # Snap to the AOSP commit of boringssl
- boringssl_rev=$(curl https://android.googlesource.com/platform/external/boringssl/+/master/BORINGSSL_REVISION?format=text | base64 -d)
- cd boringssl && git checkout $boringssl_rev && mkdir -p build && cd build
- target=$(rustc -vV | awk '/host/ { print $2 }')
- cmake -G Ninja .. -DRUST_BINDINGS="$target" && ninja
- # The Rust crate is in `boringssl-build/boringssl/build/rust/bssl-sys`, which depends on a
- # cmake-generated file as part of its source.
-
- cd $projectroot/boringssl-build
- rm -Rf rust-openssl
- git clone https://github.com/sfackler/rust-openssl.git
- git -C rust-openssl checkout 11797d9ecb73e94b7f55a49274318abc9dc074d2
- git -C rust-openssl branch -f BASE_COMMIT
- git -C rust-openssl am $projectroot/nearby/scripts/openssl-patches/*.patch
-
- cd $projectroot/nearby
-
- cat <<'EOF' >&2
-==========
-Preparation complete. The required repositories are downloaded to `beto-rust/boringssl-build`. If
-you need to go back to a clean state, you can remove that directory and rerun this script.
-
-You can now build and test with boringssl using the following command
- `cargo --config .cargo/config-boringssl.toml test -p crypto_provider* --features=boringssl,std`
-==========
-EOF
- echo
-}
-
-# Checks the build and tests for all boringssl related deps
-# crypto_provider_openssl is used on AOSP
-# crypto_provider_boringssl is used on Chromium
-# And we want to verify that both of these are tested in our own repo
-check_boringssl() {
- set -e
- cd $SCRIPT_DIR/../..
- # clones boringssl and uses bindgen to generate the sys bindings
- prepare_boringssl
-
- # test the openssl crate with the boringssl feature
- cargo --config .cargo/config-boringssl.toml test -p crypto_provider_openssl --features=boringssl
-
- # test the crypto_provider built on the new bssl crate
- cd crypto/crypto_provider_boringssl
- cargo check
- cargo fmt --check
- cargo clippy --all-targets
- cargo test
- cargo doc --no-deps
- cd ../../
-}
-
-# Helper for setting up dependencies on the build machine
-setup_kokoro_macos () {
- set -e
- go install github.com/google/addlicense@latest
- curl https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path --default-toolchain 1.68.0
- cargo install --locked cargo-deny --color never 2>&1
- # Must use this version, as version >= 0.65.0 removes the option "--size_t-is-usize", an option
- # used by boringssl when generating rust bindings
- cargo install --version 0.64.0 bindgen-cli
- source "$HOME/.cargo/env"
- rustup install nightly
- brew install google-benchmark ninja jsoncpp
-
- # Unfortunately CMake is not smart enough to find this on its own, even though
- # it is in fact there by default on the build machines
- export OPENSSL_ROOT_DIR="/usr/local/opt/openssl@3"
-}
diff --git a/nearby/scripts/openssl-patches/0002-fix-boringssl-dsa-build-errors.patch b/nearby/scripts/openssl-patches/0002-fix-boringssl-dsa-build-errors.patch
new file mode 100644
index 0000000..030e46e
--- /dev/null
+++ b/nearby/scripts/openssl-patches/0002-fix-boringssl-dsa-build-errors.patch
@@ -0,0 +1,25 @@
+From 097eaa7166ad1f6298c41bc66e094a15a9a4e73e Mon Sep 17 00:00:00 2001
+From: Nabil Wadih <nwadih@google.com>
+Date: Tue, 6 Jun 2023 15:57:04 -0700
+Subject: [PATCH 2/2] fix boringssl dsa build errors
+
+---
+ openssl/src/dsa.rs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/openssl/src/dsa.rs b/openssl/src/dsa.rs
+index c550f654..ffebdf8a 100644
+--- a/openssl/src/dsa.rs
++++ b/openssl/src/dsa.rs
+@@ -283,7 +283,7 @@ impl<T> fmt::Debug for Dsa<T> {
+ }
+
+ cfg_if! {
+- if #[cfg(any(ossl110, libressl273))] {
++ if #[cfg(any(ossl110, libressl273, boringssl))] {
+ use ffi::{DSA_get0_key, DSA_get0_pqg, DSA_set0_key, DSA_set0_pqg};
+ } else {
+ #[allow(bad_style)]
+--
+2.41.0.162.gfafddb0af9-goog
+
diff --git a/nearby/src/crypto_ffi.rs b/nearby/src/crypto_ffi.rs
new file mode 100644
index 0000000..3118b8a
--- /dev/null
+++ b/nearby/src/crypto_ffi.rs
@@ -0,0 +1,175 @@
+// 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::support::{run_cmd_shell, run_cmd_shell_with_color, YellowStderr};
+use crate::BuildBoringSslOptions;
+use anyhow::anyhow;
+use owo_colors::OwoColorize as _;
+use semver::{Version, VersionReq};
+use std::{
+ env, fs,
+ path::{Path, PathBuf},
+};
+
+pub fn build_boringssl(root: &Path, options: &BuildBoringSslOptions) -> anyhow::Result<()> {
+ let bindgen_version_req = VersionReq::parse(">=0.61.0")?;
+ let bindgen_version = get_bindgen_version()?;
+
+ if !bindgen_version_req.matches(&bindgen_version) {
+ return Err(anyhow!("Bindgen does not match expected version: {bindgen_version_req}"));
+ }
+
+ let mut vendor_dir =
+ root.parent().ok_or_else(|| anyhow!("project root dir no parent dir"))?.to_path_buf();
+ vendor_dir.push("boringssl-build");
+ fs::create_dir_all(&vendor_dir)?;
+
+ let mut build_dir = clone_repo_if_needed(
+ &vendor_dir,
+ "boringssl",
+ "https://boringssl.googlesource.com/boringssl",
+ )?;
+
+ run_cmd_shell_with_color::<YellowStderr>(
+ &build_dir,
+ format!("git checkout {}", &options.commit_hash),
+ )?;
+
+ build_dir.push("build");
+ fs::create_dir_all(&build_dir)?;
+
+ let target = run_cmd_shell_with_color::<YellowStderr>(&vendor_dir, "rustc -vV")?
+ .stdout()
+ .lines()
+ .find(|l| l.starts_with("host: "))
+ .and_then(|l| l.split_once(' '))
+ .ok_or_else(|| anyhow!("Couldn't get rustc target"))?
+ .1
+ .to_string();
+ let target = shell_escape::escape(target.into());
+ run_cmd_shell_with_color::<YellowStderr>(
+ &build_dir,
+ format!(
+ "cmake -G Ninja .. -DRUST_BINDINGS={} -DCMAKE_POSITION_INDEPENDENT_CODE=true",
+ target
+ ),
+ )?;
+ run_cmd_shell(&build_dir, "ninja")?;
+
+ Ok(())
+}
+
+pub fn check_boringssl(root: &Path, options: &BuildBoringSslOptions) -> anyhow::Result<()> {
+ log::info!("Checking boringssl");
+
+ build_boringssl(root, options)?;
+
+ let mut bssl_dir = root.to_path_buf();
+ bssl_dir.push("crypto/crypto_provider_boringssl");
+
+ run_cmd_shell(&bssl_dir, "cargo check")?;
+ run_cmd_shell(&bssl_dir, "cargo fmt --check")?;
+ run_cmd_shell(&bssl_dir, "cargo clippy --all-targets")?;
+ run_cmd_shell(&bssl_dir, "cargo test -- --color=always")?;
+ run_cmd_shell(&bssl_dir, "cargo doc --no-deps")?;
+ Ok(())
+}
+
+pub fn prepare_patched_rust_openssl(root: &Path) -> anyhow::Result<()> {
+ let mut vendor_dir =
+ root.parent().ok_or_else(|| anyhow!("project root dir no parent dir"))?.to_path_buf();
+ vendor_dir.push("boringssl-build");
+ fs::create_dir_all(&vendor_dir)?;
+
+ let repo_dir = clone_repo_if_needed(
+ &vendor_dir,
+ "rust-openssl",
+ "https://github.com/sfackler/rust-openssl.git",
+ )?;
+
+ run_cmd_shell_with_color::<YellowStderr>(
+ &repo_dir,
+ "git checkout 11797d9ecb73e94b7f55a49274318abc9dc074d2",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(&repo_dir, "git branch -f BASE_COMMIT")?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &repo_dir,
+ format!(
+ "git am {}/scripts/openssl-patches/*.patch",
+ root.to_str().ok_or_else(|| anyhow!("root dir is not UTF-8"))?
+ ),
+ )?;
+
+ println!("{}", "Preparation complete. The required repositories are downloaded to `beto-rust/boringssl-build`. If
+you need to go back to a clean state, you can remove that directory and rerun this script.
+
+You can now build and test with boringssl using the following command
+ `cargo --config .cargo/config-boringssl.toml test -p crypto_provider* --features=boringssl,std`
+".cyan());
+
+ Ok(())
+}
+
+pub fn check_openssl(root: &Path) -> anyhow::Result<()> {
+ log::info!("Checking rust openssl");
+ prepare_patched_rust_openssl(root)?;
+
+ // test the openssl crate with the boringssl feature
+ run_cmd_shell(
+ root,
+ concat!(
+ "cargo --config .cargo/config-boringssl.toml test -p crypto_provider_openssl ",
+ "--features=boringssl -- --color=always"
+ ),
+ )?;
+
+ Ok(())
+}
+
+/// If the repo dir doesn't exist, or errors when running `git fetch -a`, re-clone it.
+///
+/// Returns the repo dir
+fn clone_repo_if_needed(
+ dir: &Path,
+ repo_subdir_name: &str,
+ repo_url: &str,
+) -> anyhow::Result<PathBuf> {
+ let mut repo_dir = dir.to_path_buf();
+ repo_dir.push(repo_subdir_name);
+
+ if run_cmd_shell_with_color::<YellowStderr>(&repo_dir, "git fetch -a").is_err() {
+ // delete it and start over
+ if repo_dir.exists() {
+ fs::remove_dir_all(&repo_dir)?;
+ }
+ run_cmd_shell_with_color::<YellowStderr>(dir, format!("git clone {}", repo_url))?;
+ }
+
+ Ok(repo_dir)
+}
+
+fn get_bindgen_version() -> anyhow::Result<Version> {
+ let bindgen_version_output = run_cmd_shell(&env::current_dir().unwrap(), "bindgen --version")?;
+
+ let version = bindgen_version_output
+ .stdout()
+ .lines()
+ .next()
+ .ok_or(anyhow!("bindgen version output stream is empty"))?
+ .strip_prefix("bindgen ")
+ .ok_or(anyhow!("bindgen version output missing expected prefix of \"bindgen \""))?
+ .parse::<Version>()?;
+
+ Ok(version)
+}
diff --git a/nearby/src/ffi.rs b/nearby/src/ffi.rs
new file mode 100644
index 0000000..c1b8073
--- /dev/null
+++ b/nearby/src/ffi.rs
@@ -0,0 +1,124 @@
+// 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::{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
+ "check --quiet",
+ "clippy",
+ ] {
+ run_cmd_shell(&ffi_dir, format!("cargo {}", cargo_cmd))?;
+ }
+ Ok(())
+}
+
+pub fn check_ldt_ffi(root: &path::Path) -> anyhow::Result<()> {
+ log::info!("Checking LFT ffi cargo build");
+ let mut ffi_dir = root.to_path_buf();
+ ffi_dir.push("presence/ldt_np_adv_ffi");
+
+ for cargo_cmd in [
+ "fmt --check",
+ // Default build, RustCrypto + no_std
+ "check --quiet",
+ // Turn on std, still using RustCrypto
+ "check --quiet --features=std",
+ // Turn off default features and try to build with std",
+ "check --quiet --no-default-features --features=std",
+ // Turn off RustCrypto and use openssl
+ "check --quiet --no-default-features --features=openssl",
+ // Turn off RustCrypto and use boringssl
+ "--config .cargo/config-boringssl.toml check --quiet --no-default-features --features=boringssl",
+ "doc --quiet --no-deps",
+ "clippy --release",
+ "clippy --features=std",
+ "clippy --no-default-features --features=openssl",
+ "clippy --no-default-features --features=std",
+ // TODO also clippy for boringssl?
+ "deny check",
+ ] {
+ run_cmd_shell(&ffi_dir, format!("cargo {}", cargo_cmd))?;
+ }
+
+ Ok(())
+}
+
+pub fn check_cmake_projects(root: &path::Path) -> anyhow::Result<()> {
+ // plain rustcrypto build to prepare a .a for the np_cpp_ffi tests below
+ // TODO: make this a target in the cmake build so there isn't an implicit dependency
+ let mut ldt_ffi_crate_dir = root.to_path_buf();
+ ldt_ffi_crate_dir.push("presence/ldt_np_adv_ffi");
+ let mut c_ffi_crate_dir = root.to_path_buf();
+ c_ffi_crate_dir.push("presence/np_c_ffi");
+ run_cmd_shell(&ldt_ffi_crate_dir, "cargo build --quiet --release")?;
+ run_cmd_shell(&c_ffi_crate_dir, "cargo build --quiet --release")?;
+
+ 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)?;
+
+ run_cmd_shell_with_color::<YellowStderr>(
+ &build_dir,
+ "cmake -G Ninja -DENABLE_TESTS=true -DCMAKE_BUILD_TYPE=Release ..",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(&build_dir, "cmake --build .")?;
+
+ // 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");
+
+ for build_config in [
+ // test with default build settings (rustcrypto, no_std)
+ "build --quiet --release",
+ // test with std and default features
+ "build --quiet --features std --release",
+ // test with boringssl crypto feature flag
+ "--config .cargo/config-boringssl.toml build --quiet --no-default-features --features boringssl --release",
+ // test with openssl feature flag
+ "build --quiet --no-default-features --features openssl --release",
+ // test without defaults and std feature flag
+ "build --quiet --no-default-features --features std --release",
+ ] {
+ 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 ldt_np_c_sample/tests/ldt_ffi_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/file_header/license.rs b/nearby/src/file_header/license.rs
new file mode 100644
index 0000000..b463ad0
--- /dev/null
+++ b/nearby/src/file_header/license.rs
@@ -0,0 +1,45 @@
+// 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.
+
+//! Support for license-oriented usage of `file_header`.
+use super::*;
+use chrono::Datelike as _;
+
+/// The Apache 2 license for the current year and provided `copyright_holder`.
+pub fn apache_2(copyright_holder: &str) -> Header<impl HeaderChecker> {
+ Header::new(
+ asl2_checker(),
+ format!(
+ r#"Copyright {} {}
+
+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."#,
+ chrono::prelude::Utc::now().year(),
+ copyright_holder
+ ),
+ )
+}
+
+pub(crate) fn asl2_checker() -> impl HeaderChecker {
+ SingleLineChecker::new("Licensed under the Apache License, Version 2.0".to_string(), 10)
+}
diff --git a/nearby/src/file_header/mod.rs b/nearby/src/file_header/mod.rs
new file mode 100644
index 0000000..275a7d0
--- /dev/null
+++ b/nearby/src/file_header/mod.rs
@@ -0,0 +1,559 @@
+// 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.
+
+//! Tools for checking for, or adding, headers (e.g. licenses, etc) in files.
+
+use std::{
+ fs,
+ io::{self, BufRead as _, Write as _},
+ iter::FromIterator,
+ path, thread,
+};
+
+pub mod license;
+
+/// A file header to check for or add to files.
+#[derive(Clone)]
+pub struct Header<C: HeaderChecker> {
+ checker: C,
+ header: String,
+}
+
+impl<C: HeaderChecker> Header<C> {
+ /// Construct a new `Header` with the `checker` used to determine if the header is already
+ /// present, and the plain `header` text to add (without any applicable comment syntax, etc).
+ pub fn new(checker: C, header: String) -> Self {
+ Self { checker, header }
+ }
+
+ /// Return true if the file has the desired header, false otherwise.
+ pub fn header_present(&self, input: &mut impl io::Read) -> io::Result<bool> {
+ self.checker.check(input)
+ }
+
+ /// Add the header, with appropriate formatting for the type of file indicated by `p`'s
+ /// extension, if the header is not already present.
+ /// Returns true if the header was added.
+ pub fn add_header_if_missing(&self, p: &path::Path) -> Result<bool, AddHeaderError> {
+ let err_mapper = |e| AddHeaderError::IoError(p.to_path_buf(), e);
+ let contents = fs::read_to_string(p).map_err(err_mapper)?;
+
+ if self.header_present(&mut contents.as_bytes()).map_err(err_mapper)? {
+ return Ok(false);
+ }
+
+ let mut effective_header = header_delimiters(p)
+ .ok_or_else(|| AddHeaderError::UnknownExtension(p.to_path_buf()))
+ .map(|d| wrap_header(&self.header, d))?;
+
+ let mut after_header = contents.as_str();
+ // check for a magic first line
+ if let Some((first_line, rest)) = contents.split_once('\n') {
+ if MAGIC_FIRST_LINES.iter().any(|l| first_line.contains(l)) {
+ let mut first_line = first_line.to_string();
+ first_line.push('\n');
+ effective_header.insert_str(0, &first_line);
+ after_header = rest;
+ }
+ }
+
+ // write the license
+ let mut f =
+ fs::OpenOptions::new().write(true).truncate(true).open(p).map_err(err_mapper)?;
+ f.write_all(effective_header.as_bytes()).map_err(err_mapper)?;
+ // newline to separate the header from previous contents
+ f.write_all("\n".as_bytes()).map_err(err_mapper)?;
+ f.write_all(after_header.as_bytes()).map_err(err_mapper)?;
+
+ Ok(true)
+ }
+}
+
+/// Errors that can occur when adding a header
+#[derive(Debug, thiserror::Error)]
+pub enum AddHeaderError {
+ #[error("I/O error at {0:?}: {1}")]
+ IoError(path::PathBuf, io::Error),
+ #[error("Unknown file extension: {0:?}")]
+ UnknownExtension(path::PathBuf),
+}
+
+/// Checks for headers in files, like licenses or author attribution.
+pub trait HeaderChecker: Send + Clone {
+ /// Return true if the file has the desired header, false otherwise.
+ fn check(&self, file: &mut impl io::Read) -> io::Result<bool>;
+}
+
+/// Checks for a in the first several lines of each file.
+#[derive(Clone)]
+pub struct SingleLineChecker {
+ /// Pattern to do a substring match on in each of the first `max_lines` lines of the file
+ pattern: String,
+ /// Number of lines to search through
+ max_lines: usize,
+}
+
+impl SingleLineChecker {
+ /// Construct a `SingleLineChecker` that looks for `pattern` in the first `max_lines` of a file.
+ pub(crate) fn new(pattern: String, max_lines: usize) -> Self {
+ Self { pattern, max_lines }
+ }
+}
+
+impl HeaderChecker for SingleLineChecker {
+ fn check(&self, input: &mut impl io::Read) -> io::Result<bool> {
+ let mut reader = io::BufReader::new(input);
+ let mut lines_read = 0;
+ // reuse buffer to minimize allocation
+ let mut line = String::new();
+ // only read the first bit of the file
+ while lines_read < self.max_lines {
+ line.clear();
+ let bytes = reader.read_line(&mut line)?;
+ if bytes == 0 {
+ // EOF
+ return Ok(false);
+ }
+ lines_read += 1;
+
+ if line.contains(&self.pattern) {
+ return Ok(true);
+ }
+ }
+
+ Ok(false)
+ }
+}
+
+#[derive(Copy, Clone)]
+enum CheckStatus {
+ MisMatchedHeader,
+ BinaryFile,
+}
+
+#[derive(Clone)]
+struct FileResult {
+ path: path::PathBuf,
+ status: CheckStatus,
+}
+
+#[derive(Clone, Default)]
+pub struct FileResults {
+ pub mismatched_files: Vec<path::PathBuf>,
+ pub binary_files: Vec<path::PathBuf>,
+}
+
+impl FileResults {
+ pub fn has_failure(&self) -> bool {
+ !self.mismatched_files.is_empty() || !self.binary_files.is_empty()
+ }
+}
+
+impl FromIterator<FileResult> for FileResults {
+ fn from_iter<I>(iter: I) -> FileResults
+ where
+ I: IntoIterator<Item = FileResult>,
+ {
+ let mut results = FileResults::default();
+ for result in iter {
+ match result.status {
+ CheckStatus::MisMatchedHeader => results.mismatched_files.push(result.path),
+ CheckStatus::BinaryFile => results.binary_files.push(result.path),
+ }
+ }
+ results
+ }
+}
+
+/// Recursively check for `header` in every file in `root` that matches `path_predicate`.
+///
+/// Returns a [`FileResults`] object containing the paths without headers detected.
+pub fn check_headers_recursively(
+ root: &path::Path,
+ path_predicate: impl Fn(&path::Path) -> bool,
+ header: Header<impl HeaderChecker + 'static>,
+ num_threads: usize,
+) -> Result<FileResults, CheckHeadersRecursivelyError> {
+ let (path_tx, path_rx) = crossbeam::channel::unbounded::<path::PathBuf>();
+ let (result_tx, result_rx) = crossbeam::channel::unbounded();
+
+ // spawn a few threads to handle files in parallel
+ let handles = (0..num_threads)
+ .map(|_| {
+ let path_rx = path_rx.clone();
+ let result_tx = result_tx.clone();
+ let header = header.clone();
+ thread::spawn(move || {
+ for p in path_rx {
+ match fs::File::open(&p).and_then(|mut f| header.header_present(&mut f)) {
+ Ok(header_present) => {
+ if header_present {
+ // no op
+ } else {
+ let res =
+ FileResult { path: p, status: CheckStatus::MisMatchedHeader };
+ result_tx.send(Ok(res)).unwrap();
+ }
+ }
+ Err(e) if e.kind() == io::ErrorKind::InvalidData => {
+ // Binary file - add to ignore in license.rs
+ let res = FileResult { path: p, status: CheckStatus::BinaryFile };
+ result_tx.send(Ok(res)).unwrap();
+ }
+ Err(e) => result_tx
+ .send(Err(CheckHeadersRecursivelyError::IoError(p, e)))
+ .unwrap(),
+ }
+ }
+
+ // no more files
+ })
+ })
+ .collect::<Vec<thread::JoinHandle<()>>>();
+ // make sure result channel closes when threads complete
+ drop(result_tx);
+
+ find_files(root, path_predicate, path_tx)?;
+
+ let res: FileResults = result_rx.into_iter().collect::<Result<_, _>>()?;
+
+ for h in handles {
+ h.join().unwrap();
+ }
+
+ Ok(res)
+}
+
+/// Errors that can occur when checking for headers recursively
+#[derive(Debug, thiserror::Error)]
+pub enum CheckHeadersRecursivelyError {
+ #[error("I/O error at {0:?}: {1}")]
+ IoError(path::PathBuf, io::Error),
+ #[error("Walkdir error: {0}")]
+ WalkdirError(#[from] walkdir::Error),
+}
+
+/// Add the provided `header` to any file in `root` that matches `path_predicate` and that doesn't
+/// already have a header as determined by `checker`.
+/// Returns a list of paths that had headers added.
+pub fn add_headers_recursively(
+ root: &path::Path,
+ path_predicate: impl Fn(&path::Path) -> bool,
+ header: Header<impl HeaderChecker>,
+) -> Result<Vec<path::PathBuf>, AddHeadersRecursivelyError> {
+ // likely no need for threading since adding headers is only done occasionally
+ let (path_tx, path_rx) = crossbeam::channel::unbounded::<path::PathBuf>();
+ find_files(root, path_predicate, path_tx)?;
+
+ path_rx
+ .into_iter()
+ // keep the errors, or the ones with added headers
+ .filter_map(|p| {
+ match header.add_header_if_missing(&p).map_err(|e| match e {
+ AddHeaderError::IoError(p, e) => AddHeadersRecursivelyError::IoError(p, e),
+ AddHeaderError::UnknownExtension(e) => {
+ AddHeadersRecursivelyError::UnknownExtension(e)
+ }
+ }) {
+ Ok(added) => {
+ if added {
+ Some(Ok(p))
+ } else {
+ None
+ }
+ }
+ Err(e) => Some(Err(e)),
+ }
+ })
+ .collect::<Result<Vec<_>, _>>()
+}
+
+/// Errors that can occur when adding a header recursively
+#[derive(Debug, thiserror::Error)]
+pub enum AddHeadersRecursivelyError {
+ #[error("I/O error at {0:?}: {1}")]
+ IoError(path::PathBuf, io::Error),
+ #[error("Walkdir error: {0}")]
+ WalkdirError(#[from] walkdir::Error),
+ #[error("Unknown file extension: {0:?}")]
+ UnknownExtension(path::PathBuf),
+}
+
+/// Find all files starting from `root` that do not match the globs in `ignore`, publishing the
+/// resulting paths into `dest`.
+fn find_files(
+ root: &path::Path,
+ path_predicate: impl Fn(&path::Path) -> bool,
+ dest: crossbeam::channel::Sender<path::PathBuf>,
+) -> Result<(), walkdir::Error> {
+ for r in walkdir::WalkDir::new(root).into_iter() {
+ let entry = r?;
+ if entry.path().is_dir() || !path_predicate(entry.path()) {
+ continue;
+ }
+ dest.send(entry.into_path()).unwrap()
+ }
+
+ Ok(())
+}
+
+/// Prepare a header for inclusion in a particular file syntax by wrapping it with
+/// comment characters as per the provided `delim`.
+fn wrap_header(orig_header: &str, delim: HeaderDelimiters) -> String {
+ let mut out = String::new();
+
+ if !delim.first_line.is_empty() {
+ out.push_str(delim.first_line);
+ out.push('\n');
+ }
+
+ // assumes header uses \n
+ for line in orig_header.split('\n') {
+ out.push_str(delim.content_line_prefix);
+ out.push_str(line);
+ // Remove any trailing whitespaces (excluding newlines) from `content_line_prefix + line`.
+ // For example, if `content_line_prefix` is `// ` and `line` is empty, the resulting string
+ // should be truncated to `//`.
+ out.truncate(out.trim_end_matches([' ', '\t']).len());
+ out.push('\n');
+ }
+
+ if !delim.last_line.is_empty() {
+ out.push_str(delim.last_line);
+ out.push('\n');
+ }
+
+ out
+}
+
+/// Returns the header prefix line, content line prefix, and suffix line for the extension of the
+/// provided path, or `None` if the extension is not recognized.
+fn header_delimiters(p: &path::Path) -> Option<HeaderDelimiters> {
+ match p
+ .extension()
+ // if the extension isn't UTF-8, oh well
+ .and_then(|os_str| os_str.to_str())
+ .unwrap_or("")
+ {
+ "c" | "h" | "gv" | "java" | "scala" | "kt" | "kts" => Some(("/*", " * ", " */")),
+ "js" | "mjs" | "cjs" | "jsx" | "tsx" | "css" | "scss" | "sass" | "ts" => {
+ Some(("/**", " * ", " */"))
+ }
+ "cc" | "cpp" | "cs" | "go" | "hcl" | "hh" | "hpp" | "m" | "mm" | "proto" | "rs"
+ | "swift" | "dart" | "groovy" | "v" | "sv" => Some(("", "// ", "")),
+ "py" | "sh" | "yaml" | "yml" | "dockerfile" | "rb" | "gemfile" | "tcl" | "tf" | "bzl"
+ | "pl" | "pp" | "build" => Some(("", "# ", "")),
+ "el" | "lisp" => Some(("", ";; ", "")),
+ "erl" => Some(("", "% ", "")),
+ "hs" | "lua" | "sql" | "sdl" => Some(("", "-- ", "")),
+ "html" | "xml" | "vue" | "wxi" | "wxl" | "wxs" => Some(("<!--", " ", "-->")),
+ "php" => Some(("", "// ", "")),
+ "ml" | "mli" | "mll" | "mly" => Some(("(**", " ", "*)")),
+ // also handle whole filenames if extensions didn't match
+ _ => match p.file_name().and_then(|os_str| os_str.to_str()).unwrap_or("") {
+ "Dockerfile" => Some(("", "# ", "")),
+ _ => None,
+ },
+ }
+ .map(|(first_line, content_line_prefix, last_line)| HeaderDelimiters {
+ first_line,
+ content_line_prefix,
+ last_line,
+ })
+}
+
+/// Delimiters to use around and inside a header for a particular file syntax.
+#[derive(Clone, Copy)]
+struct HeaderDelimiters {
+ /// Line to prepend before the header
+ first_line: &'static str,
+ /// Prefix before each line of the header itself
+ content_line_prefix: &'static str,
+ /// Line to append after the header
+ last_line: &'static str,
+}
+
+const MAGIC_FIRST_LINES: [&str; 8] = [
+ "#!", // shell script
+ "<?xml", // XML declaratioon
+ "<!doctype", // HTML doctype
+ "# encoding:", // Ruby encoding
+ "# frozen_string_literal:", // Ruby interpreter instruction
+ "<?php", // PHP opening tag
+ "# escape", // Dockerfile directive https://docs.docker.com/engine/reference/builder/#parser-directives
+ "# syntax", // Dockerfile directive https://docs.docker.com/engine/reference/builder/#parser-directives
+];
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn single_line_checker_finds_header_when_present() {
+ let input = r#"foo
+ some license
+ bar"#;
+
+ assert!(test_header().checker.check(&mut input.as_bytes()).unwrap());
+ }
+
+ #[test]
+ fn single_line_checker_doesnt_find_header_when_missing() {
+ let input = r#"foo
+ wrong license
+ bar"#;
+
+ assert!(!test_header().checker.check(&mut input.as_bytes()).unwrap());
+ }
+
+ #[test]
+ fn single_line_checker_throws_error_when_missing_and_file_is_non_utf8() {
+ let input = b"foo
+ \x00\xff
+ bar";
+
+ assert_eq!(
+ io::ErrorKind::InvalidData,
+ test_header().checker.check(&mut input.as_slice()).unwrap_err().kind()
+ );
+ }
+
+ #[test]
+ fn single_line_checker_doesnt_panic_when_file_is_non_utf8() {
+ let inputs: [&'static [u8]; 3] = [
+ b"foo
+ \x00\xff
+ bar",
+ b"foo
+ some license
+ \x00\xff
+ bar",
+ b"foo
+ \x00\xff
+ some license
+ bar",
+ ];
+
+ for mut input in inputs {
+ // Output is not defined for non-utf-8 files, but we should handle them with grace
+ let _ = test_header().checker.check(&mut input);
+ }
+ }
+
+ #[test]
+ fn adds_header_with_empty_delimiters() {
+ let file = tempfile::Builder::new().suffix(".rs").tempfile().unwrap();
+ fs::write(file.path(), r#"not a license"#).unwrap();
+
+ test_header().add_header_if_missing(file.path()).unwrap();
+
+ assert_eq!(
+ "// some license etc etc etc
+
+not a license",
+ fs::read_to_string(file.path()).unwrap()
+ );
+ }
+
+ #[test]
+ fn adds_header_with_nonempty_delimiters() {
+ let file = tempfile::Builder::new().suffix(".c").tempfile().unwrap();
+ fs::write(file.path(), r#"not a license"#).unwrap();
+
+ test_header().add_header_if_missing(file.path()).unwrap();
+
+ assert_eq!(
+ "/*
+ * some license etc etc etc
+ */
+
+not a license",
+ fs::read_to_string(file.path()).unwrap()
+ );
+ }
+
+ #[test]
+ fn adds_header_trim_trailing_whitespace() {
+ let file = tempfile::Builder::new().suffix(".c").tempfile().unwrap();
+ fs::write(file.path(), r#"not a license"#).unwrap();
+
+ test_header_with_blank_lines_and_trailing_whitespace()
+ .add_header_if_missing(file.path())
+ .unwrap();
+
+ assert_eq!(
+ "/*
+ * some license
+ * line with trailing whitespace.
+ *
+ * etc
+ */
+
+not a license",
+ fs::read_to_string(file.path()).unwrap()
+ );
+ }
+
+ #[test]
+ fn doesnt_add_header_when_already_present() {
+ let file = tempfile::Builder::new().suffix(".rs").tempfile().unwrap();
+ let initial_content = r#"
+ // some license etc etc etc already present
+ not a license"#;
+ fs::write(file.path(), initial_content).unwrap();
+
+ test_header().add_header_if_missing(file.path()).unwrap();
+
+ assert_eq!(initial_content, fs::read_to_string(file.path()).unwrap());
+ }
+
+ #[test]
+ fn adds_header_after_magic_first_line() {
+ let file = tempfile::Builder::new().suffix(".xml").tempfile().unwrap();
+ fs::write(
+ file.path(),
+ r#"<?xml version="1.0" encoding="UTF-8"?>
+<root />
+"#,
+ )
+ .unwrap();
+
+ test_header().add_header_if_missing(file.path()).unwrap();
+
+ assert_eq!(
+ r#"<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ some license etc etc etc
+-->
+
+<root />
+"#,
+ fs::read_to_string(file.path()).unwrap()
+ );
+ }
+
+ fn test_header() -> Header<SingleLineChecker> {
+ Header::new(
+ SingleLineChecker::new("some license".to_string(), 100),
+ r#"some license etc etc etc"#.to_string(),
+ )
+ }
+
+ fn test_header_with_blank_lines_and_trailing_whitespace() -> Header<SingleLineChecker> {
+ Header::new(
+ SingleLineChecker::new("some license".to_string(), 100),
+ "some license\nline with trailing whitespace. \n\netc".to_string(),
+ )
+ }
+}
diff --git a/nearby/src/fuzzers.rs b/nearby/src/fuzzers.rs
new file mode 100644
index 0000000..bfb4bcc
--- /dev/null
+++ b/nearby/src/fuzzers.rs
@@ -0,0 +1,81 @@
+// 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::{run_cmd_shell_with_color, YellowStderr};
+use std::{fs, path};
+
+pub(crate) fn run_rust_fuzzers(root: &path::Path) -> anyhow::Result<()> {
+ log::info!("Running rust fuzzers");
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("presence/xts_aes"),
+ "cargo +nightly fuzz run xts-roundtrip -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("presence/ldt"),
+ "cargo +nightly fuzz run ldt-roundtrip -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("presence/ldt_np_adv"),
+ "cargo +nightly fuzz run ldt-np-decrypt -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("presence/ldt_np_adv"),
+ "cargo +nightly fuzz run ldt-np-roundtrip -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("connections/ukey2/ukey2_connections"),
+ "cargo +nightly fuzz run fuzz_connection -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("connections/ukey2/ukey2_connections"),
+ "cargo +nightly fuzz run fuzz_from_saved_session -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("connections/ukey2/ukey2_connections"),
+ "cargo +nightly fuzz run fuzz_handshake -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("crypto/crypto_provider_test"),
+ "cargo +nightly fuzz run fuzz_p256 -- -runs=10000 -max_total_time=60",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &root.join("crypto/crypto_provider_test"),
+ concat!(
+ "cargo +nightly fuzz run fuzz_p256 --features=openssl --no-default-features ",
+ "-- -runs=10000 -max_total_time=60"
+ ),
+ )?;
+
+ Ok(())
+}
+
+pub(crate) fn build_ffi_fuzzers(root: &path::Path) -> anyhow::Result<()> {
+ log::info!("Building ffi fuzzers");
+ // TODO currently broken because the FFI stuff hasn't necessarily been built yet
+ let mut build_dir = root.to_path_buf();
+ build_dir.push("presence/ldt_np_adv_ffi_fuzz/cmake-build");
+
+ if build_dir.exists() {
+ fs::remove_dir_all(&build_dir)?;
+ }
+ fs::create_dir_all(&build_dir)?;
+ run_cmd_shell_with_color::<YellowStderr>(
+ &build_dir,
+ "cmake -G Ninja ../.. -DENABLE_FUZZ=true",
+ )?;
+ run_cmd_shell_with_color::<YellowStderr>(&build_dir, "cmake --build .")?;
+ fs::remove_dir_all(&build_dir)?;
+
+ Ok(())
+}
diff --git a/nearby/src/jni.rs b/nearby/src/jni.rs
new file mode 100644
index 0000000..903ac6d
--- /dev/null
+++ b/nearby/src/jni.rs
@@ -0,0 +1,25 @@
+// 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::support::run_cmd_shell;
+use std::path;
+
+// This has to happen after both boringssl has been built and prepare rust openssl patches has been run.
+pub fn check_ldt_jni(root: &path::Path) -> anyhow::Result<()> {
+ for feature in ["opensslbssl", "boringssl"] {
+ run_cmd_shell(root, format!("cargo --config .cargo/config-boringssl.toml build -p ldt_np_jni --no-default-features --features={}", feature))?;
+ }
+
+ Ok(())
+}
diff --git a/nearby/src/license.rs b/nearby/src/license.rs
new file mode 100644
index 0000000..657a62e
--- /dev/null
+++ b/nearby/src/license.rs
@@ -0,0 +1,103 @@
+// 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::file_header::{self, check_headers_recursively};
+use std::path;
+
+pub(crate) fn check_license_headers(root: &path::Path) -> anyhow::Result<()> {
+ log::info!("Checking license headers");
+ let ignore = license_ignore()?;
+ let results = check_headers_recursively(
+ root,
+ |p| !ignore.is_match(p),
+ file_header::license::apache_2("Google LLC"),
+ 4,
+ )?;
+
+ for path in results.mismatched_files.iter() {
+ eprintln!("Header not present: {path:?}");
+ }
+
+ for path in results.binary_files.iter() {
+ eprintln!("Binary file: {path:?}");
+ }
+ if !results.binary_files.is_empty() {
+ eprintln!("Consider adding binary files to the ignore list in src/licence.rs.");
+ }
+
+ if results.has_failure() {
+ Err(anyhow::anyhow!("License header check failed"))
+ } else {
+ Ok(())
+ }
+}
+
+pub(crate) fn add_license_headers(root: &path::Path) -> anyhow::Result<()> {
+ let ignore = license_ignore()?;
+ for p in file_header::add_headers_recursively(
+ root,
+ |p| !ignore.is_match(p),
+ file_header::license::apache_2("Google LLC"),
+ )? {
+ println!("Added header: {:?}", p);
+ }
+
+ Ok(())
+}
+
+fn license_ignore() -> Result<globset::GlobSet, globset::Error> {
+ let mut builder = globset::GlobSetBuilder::new();
+ for lic in license_ignore_dirs() {
+ builder.add(globset::Glob::new(lic)?);
+ }
+ builder.build()
+}
+
+fn license_ignore_dirs() -> Vec<&'static str> {
+ vec![
+ "**/android/build/**",
+ "target/**",
+ "**/target/**",
+ "**/.idea/**",
+ "**/cmake-build/**",
+ "**/java/build/**",
+ "**/java/*/build/**",
+ "**/ukey2_c_ffi/cpp/build/**",
+ "**/*.toml",
+ "**/*.md",
+ "**/*.lock",
+ "**/*.json",
+ "**/*.rsp",
+ "**/*.patch",
+ "**/*.dockerignore",
+ "**/*.apk",
+ "**/gradle/*",
+ "**/.gradle/*",
+ "**/.git*",
+ "**/*test*vectors.txt",
+ "**/auth_token.txt",
+ "**/*.mdb",
+ "**/.DS_Store",
+ "**/fuzz/corpus/**",
+ "**/.*.swp",
+ "**/Session.vim",
+ "**/*.properties",
+ "**/third_party/**",
+ "**/*.png",
+ "**/*.ico",
+ "**/node_modules/**",
+ "**/.angular/**",
+ "**/.editorconfig",
+ ]
+}
diff --git a/nearby/src/main.rs b/nearby/src/main.rs
new file mode 100644
index 0000000..ab55b32
--- /dev/null
+++ b/nearby/src/main.rs
@@ -0,0 +1,178 @@
+// 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 core;
+
+use clap::Parser as _;
+use env_logger::Env;
+use std::{env, path};
+use support::*;
+
+mod crypto_ffi;
+mod ffi;
+mod file_header;
+mod fuzzers;
+mod jni;
+mod license;
+mod support;
+mod ukey2;
+
+fn main() -> anyhow::Result<()> {
+ env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
+ let cli: Cli = Cli::parse();
+
+ let root_dir = path::PathBuf::from(
+ env::var("CARGO_MANIFEST_DIR").expect("Must be run via Cargo to establish root directory"),
+ );
+
+ 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)?
+ }
+ Subcommand::CheckBoringssl(ref bssl_options) => {
+ crypto_ffi::check_boringssl(&root_dir, bssl_options)?
+ }
+ Subcommand::PrepareRustOpenssl => crypto_ffi::prepare_patched_rust_openssl(&root_dir)?,
+ Subcommand::CheckOpenssl => crypto_ffi::check_openssl(&root_dir)?,
+ Subcommand::RunRustFuzzers => fuzzers::run_rust_fuzzers(&root_dir)?,
+ 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::CheckLdtFfi => ffi::check_ldt_ffi(&root_dir)?,
+ 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(())
+}
+
+pub fn check_workspace(root: &path::Path, options: &CheckOptions) -> anyhow::Result<()> {
+ log::info!("Running cargo checks on workspace");
+
+ let fmt_command = if options.reformat { "cargo fmt" } else { "cargo fmt --check" };
+
+ for cargo_cmd in [
+ // ensure formatting is correct (Check for it first because it is fast compared to running tests)
+ fmt_command,
+ // make sure everything compiles
+ "cargo check --workspace --all-targets --quiet",
+ // run all the tests
+ //TODO: re-enable the openssl tests, this was potentially failing due to UB code in the
+ // upstream rust-openssl crate's handling of empty slices. This repros consistently when
+ // using the rust-openssl crate backed by openssl-sys on Ubuntu 20.04.
+ "cargo test --workspace --quiet --exclude crypto_provider_openssl -- --color=always",
+ // ensure the docs are valid (cross-references to other code, etc)
+ concat!(
+ "RUSTDOCFLAGS='--deny warnings -Z unstable-options --enable-index-page --generate-link-to-definition' ",
+ "cargo +nightly doc --quiet --workspace --no-deps --document-private-items ",
+ "--target-dir target/dist_docs",
+ ),
+ "cargo clippy --all-targets --workspace -- --deny warnings",
+ "cargo deny --workspace check",
+ ] {
+ run_cmd_shell(root, cargo_cmd)?;
+ }
+
+ Ok(())
+}
+pub fn check_everything(
+ root: &path::Path,
+ check_options: &CheckOptions,
+ bssl_options: &BuildBoringSslOptions,
+) -> anyhow::Result<()> {
+ license::check_license_headers(root)?;
+ check_workspace(root, check_options)?;
+ crypto_ffi::check_boringssl(root, bssl_options)?;
+ crypto_ffi::check_openssl(root)?;
+ ffi::check_everything(root)?;
+ jni::check_ldt_jni(root)?;
+ ukey2::check_ukey2_ffi(root)?;
+ fuzzers::run_rust_fuzzers(root)?;
+ fuzzers::build_ffi_fuzzers(root)?;
+
+ Ok(())
+}
+
+#[derive(clap::Parser)]
+struct Cli {
+ #[clap(subcommand)]
+ subcommand: Subcommand,
+}
+
+#[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
+ CheckBoringssl(BuildBoringSslOptions),
+ /// Applies AOSP specific patches to the 3p `openssl` crate so that it can use a boringssl
+ /// backend
+ PrepareRustOpenssl,
+ /// Run crypto provider tests using openssl crate with boringssl backend
+ CheckOpenssl,
+ /// Build and run pure Rust fuzzers for 10000 runs
+ RunRustFuzzers,
+ /// Build FFI fuzzers
+ BuildFfiFuzzers,
+ /// 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,
+ /// 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
+ CheckLdtJni,
+}
+
+#[derive(clap::Args, Debug, Clone, Default)]
+pub struct CheckOptions {
+ #[arg(long, help = "reformat files with cargo fmt")]
+ reformat: bool,
+}
+
+#[derive(clap::Args, Debug, Clone, Default)]
+pub struct BuildBoringSslOptions {
+ #[arg(
+ long,
+ // the commit after this one causes failures in rust-openssl
+ default_value = "d995d82ad53133017e34b009e9c6912b2ef6aeb7",
+ help = "Commit hash to use when checking out boringssl"
+ )]
+ commit_hash: String,
+}
diff --git a/nearby/src/support.rs b/nearby/src/support.rs
new file mode 100644
index 0000000..cc81352
--- /dev/null
+++ b/nearby/src/support.rs
@@ -0,0 +1,195 @@
+// 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 anyhow::{anyhow, Context as _};
+use owo_colors::OwoColorize as _;
+use std::{collections, env, ffi, io, io::BufRead, path, process, thread};
+
+pub fn run_cmd_shell(
+ dir: &path::Path,
+ cmd: impl AsRef<ffi::OsStr>,
+) -> anyhow::Result<SuccessOutput> {
+ run_cmd_shell_with_color::<DefaultColors>(dir, cmd)
+}
+
+/// Run a shell command using shell arg parsing.
+///
+/// Removes all `*CARGO*` and `*RUSTUP*` env vars in case this was run with
+/// `cargo run`. If they are left in, they confuse nested `cargo` invocations.
+///
+/// Return Ok if the process completed normally.
+pub fn run_cmd_shell_with_color<C: TermColors>(
+ dir: &path::Path,
+ cmd: impl AsRef<ffi::OsStr>,
+) -> anyhow::Result<SuccessOutput> {
+ run::<C>(dir, process::Command::new("sh").current_dir(dir).args(["-c".as_ref(), cmd.as_ref()]))
+}
+
+/// Run a cmd with explicit args directly without a shell.
+///
+/// Removes all `*CARGO*` and `*RUSTUP*` env vars in case this was run with
+/// `cargo run`.
+///
+/// Return Ok if the process completed normally.
+#[allow(dead_code)]
+pub fn run_cmd<C: TermColors, P, A, S>(
+ dir: &path::Path,
+ cmd: &P,
+ args: A,
+) -> anyhow::Result<SuccessOutput>
+where
+ P: AsRef<path::Path> + ?Sized,
+ A: Clone + IntoIterator<Item = S>,
+ S: AsRef<ffi::OsStr>,
+{
+ run::<C>(dir, process::Command::new(cmd.as_ref()).current_dir(dir).args(args))
+}
+
+/// Run the specified command.
+///
+/// `cmd_with_args` is used
+fn run<C: TermColors>(
+ dir: &path::Path,
+ command: &mut process::Command,
+) -> Result<SuccessOutput, anyhow::Error> {
+ // approximately human readable version of the invocation for logging
+ let cmd_with_args = command.get_args().fold(
+ command.get_program().to_os_string(),
+ |mut acc: ffi::OsString, s| {
+ acc.push(" ");
+ acc.push(shell_escape::escape(s.to_string_lossy()).as_ref());
+ acc
+ },
+ );
+
+ let context = format!("{} [{}]", cmd_with_args.to_string_lossy(), dir.to_string_lossy(),);
+ println!("[{}] [{}]", cmd_with_args.to_string_lossy().green(), dir.to_string_lossy().blue());
+
+ let mut child = command
+ .env_clear()
+ .envs(modified_cmd_env())
+ .stdin(process::Stdio::null())
+ .stdout(process::Stdio::piped())
+ .stderr(process::Stdio::piped())
+ .spawn()
+ .context(context.clone())?;
+
+ // If thread creation overhead becomes a problem, we could always use a shared context
+ // that holds on to some channels.
+ let stdout_thread = spawn_print_thread::<C::StdoutColor, _, _>(
+ child.stdout.take().expect("stdout must be present"),
+ io::stdout(),
+ );
+ let stderr_thread = spawn_print_thread::<C::StderrColor, _, _>(
+ child.stderr.take().expect("stderr must be present"),
+ io::stderr(),
+ );
+
+ let status = child.wait()?;
+
+ let stdout = stdout_thread.join().expect("stdout thread panicked");
+ stderr_thread.join().expect("stderr thread panicked");
+
+ match status.code() {
+ None => {
+ eprintln!("Process terminated by signal");
+ Err(anyhow!("Process terminated by signal"))
+ }
+ Some(0) => Ok(SuccessOutput { stdout }),
+ Some(n) => {
+ eprintln!("Exit code: {n}");
+ Err(anyhow!("Exit code: {n}"))
+ }
+ }
+ .context(context)
+}
+
+pub struct SuccessOutput {
+ stdout: String,
+}
+
+impl SuccessOutput {
+ pub fn stdout(&self) -> &str {
+ &self.stdout
+ }
+}
+
+/// Returns modified env vars that are suitable for use in child invocations.
+fn modified_cmd_env() -> collections::HashMap<String, String> {
+ env::vars()
+ // Filter out `*CARGO*` or `*RUSTUP*` vars as those will confuse child invocations of `cargo`.
+ .filter(|(k, _)| !(k.contains("CARGO") || k.contains("RUSTUP")))
+ // We want colors in our cargo invocations
+ .chain([(String::from("CARGO_TERM_COLOR"), String::from("always"))])
+ .collect()
+}
+
+/// Trait for specifying the terminal text colors of the command output.
+pub trait TermColors {
+ /// Color for stdout. Use `owo_colors::colors::Default` to keep color codes from the command.
+ type StdoutColor: owo_colors::Color;
+ /// Color for stderr. Use `owo_colors::colors::Default` to keep color codes from the command.
+ type StderrColor: owo_colors::Color;
+}
+
+/// Override only the stderr color to yellow.
+#[non_exhaustive]
+pub struct YellowStderr;
+
+impl TermColors for YellowStderr {
+ type StdoutColor = owo_colors::colors::Default;
+ type StderrColor = owo_colors::colors::Yellow;
+}
+
+/// Keep the default colors from the command output. Typically used with `--color=always` or
+/// equivalent env vars like `CARGO_TERM_COLOR` to keep the colors even though the output is not a
+/// tty.
+#[non_exhaustive]
+pub struct DefaultColors;
+impl TermColors for DefaultColors {
+ type StdoutColor = owo_colors::colors::Default;
+ type StderrColor = owo_colors::colors::Default;
+}
+
+/// Spawn a thread that will print any lines read from the input using the specified color on
+/// the provided writer (intended to be `stdin`/`stdout`.
+///
+/// The thread accumulates all output lines and returns it
+fn spawn_print_thread<C, R, W>(input: R, mut output: W) -> thread::JoinHandle<String>
+where
+ C: owo_colors::Color,
+ R: io::Read + Send + 'static,
+ W: io::Write + Send + 'static,
+{
+ thread::spawn(move || {
+ let mut line = String::new();
+ let mut all_output = String::new();
+ let mut buf_read = io::BufReader::new(input);
+
+ loop {
+ line.clear();
+ match buf_read.read_line(&mut line) {
+ Ok(0) => break,
+ Ok(_) => {
+ all_output.push_str(&line);
+ write!(output, "{}", line.fg::<C>()).expect("write to stdio failed");
+ }
+ // TODO do something smarter for non-UTF8 output
+ Err(e) => eprintln!("{}: {:?}", "Could not read line".red(), e),
+ }
+ }
+
+ all_output
+ })
+}
diff --git a/nearby/src/ukey2.rs b/nearby/src/ukey2.rs
new file mode 100644
index 0000000..e2547e7
--- /dev/null
+++ b/nearby/src/ukey2.rs
@@ -0,0 +1,41 @@
+// 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::{run_cmd_shell, run_cmd_shell_with_color, YellowStderr};
+use std::{fs, path};
+
+pub(crate) fn check_ukey2_ffi(root: &path::Path) -> anyhow::Result<()> {
+ log::info!("Checking Ukey2 ffi");
+ let mut ffi_dir = root.to_path_buf();
+ ffi_dir.push("connections/ukey2/ukey2_c_ffi");
+
+ // Default build, RustCrypto
+ run_cmd_shell(&ffi_dir, "cargo build --quiet --release --lib")?;
+ // OpenSSL
+ run_cmd_shell(&ffi_dir, "cargo build --quiet --no-default-features --features=openssl")?;
+
+ run_cmd_shell(&ffi_dir, "cargo doc --quiet --no-deps")?;
+ run_cmd_shell(&ffi_dir, "cargo clippy --no-default-features --features=openssl")?;
+
+ run_cmd_shell(&ffi_dir, "cargo deny check")?;
+
+ let mut ffi_build_dir = ffi_dir.to_path_buf();
+ 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, "cmake --build .")?;
+ run_cmd_shell_with_color::<YellowStderr>(&ffi_build_dir, "ctest")?;
+
+ Ok(())
+}
diff --git a/remoteauth/Cargo.lock b/remoteauth/Cargo.lock
new file mode 100644
index 0000000..91b8fa0
--- /dev/null
+++ b/remoteauth/Cargo.lock
@@ -0,0 +1,202 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "anyhow"
+version = "1.0.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
+
+[[package]]
+name = "async-trait"
+version = "0.1.72"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "ctap_protocol"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+]
+
+[[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",
+]
+
+[[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-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 = "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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "platform"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "futures",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "remote_auth_protool"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "futures",
+]
+
+[[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 = "2.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
diff --git a/remoteauth/Cargo.toml b/remoteauth/Cargo.toml
new file mode 100644
index 0000000..ca3213b
--- /dev/null
+++ b/remoteauth/Cargo.toml
@@ -0,0 +1,16 @@
+[workspace]
+members = [
+ "ctap_protocol",
+ "platform",
+ "remote_auth_protool",
+]
+
+[workspace.package]
+version = "0.1.0"
+edition = "2021"
+publish = false
+
+[workspace.dependencies]
+anyhow = "1.0.72"
+async-trait = "0.1.72"
+futures = "0.3.28"
diff --git a/remoteauth/ctap_protocol/Cargo.toml b/remoteauth/ctap_protocol/Cargo.toml
new file mode 100644
index 0000000..8a06840
--- /dev/null
+++ b/remoteauth/ctap_protocol/Cargo.toml
@@ -0,0 +1,10 @@
+[package]
+name = "ctap_protocol"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+anyhow.workspace = true
diff --git a/remoteauth/ctap_protocol/src/lib.rs b/remoteauth/ctap_protocol/src/lib.rs
new file mode 100644
index 0000000..9b7eef2
--- /dev/null
+++ b/remoteauth/ctap_protocol/src/lib.rs
@@ -0,0 +1,90 @@
+// 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.
+
+//! # CTAP Protocol
+//!
+//! This crate represents CTAP messages and turns them into a binary representation to be sent to a
+//! remote device.
+
+use anyhow::anyhow;
+
+/// The Rust representation of CTAP messages.
+#[derive(Debug, PartialEq)]
+pub enum CtapMessage {
+ AuthenticatorReset,
+}
+
+impl CtapMessage {
+ /// Converts the given CTAP message into its binary representation.
+ pub fn to_bytes(&self) -> Vec<u8> {
+ match self {
+ CtapMessage::AuthenticatorReset => vec![0x07],
+ }
+ }
+
+ /// Convert a binary message to its Rust representation.
+ pub fn from_bytes(bytes: Vec<u8>) -> anyhow::Result<CtapMessage> {
+ if bytes.len() == 0 {
+ Err(anyhow!("Binary message was empty."))
+ } else {
+ match bytes[0] {
+ 0x07 => Ok(CtapMessage::AuthenticatorReset),
+ _ => Err(anyhow!("Unknown message type.")),
+ }
+ }
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn translate_message_to_bytes() {
+ let message = CtapMessage::AuthenticatorReset;
+ let bytes = message.to_bytes();
+
+ assert_eq!(bytes, vec![0x07]);
+ }
+
+ #[test]
+ fn translate_bytes_to_message() {
+ let bytes = vec![0x07];
+ let message = CtapMessage::from_bytes(bytes);
+
+ assert_eq!(message.is_ok(), true);
+ assert_eq!(message.unwrap(), CtapMessage::AuthenticatorReset);
+ }
+
+ #[test]
+ fn translate_empty_bytes() {
+ let bytes = vec![];
+ let message = CtapMessage::from_bytes(bytes);
+
+ assert_eq!(message.is_err(), true);
+ assert_eq!(
+ message.unwrap_err().to_string(),
+ "Binary message was empty."
+ );
+ }
+
+ #[test]
+ fn translate_unknown_message() {
+ let bytes = vec![0x01];
+ let message = CtapMessage::from_bytes(bytes);
+
+ assert_eq!(message.is_err(), true);
+ assert_eq!(message.unwrap_err().to_string(), "Unknown message type.");
+ }
+}
diff --git a/remoteauth/platform/Cargo.toml b/remoteauth/platform/Cargo.toml
new file mode 100644
index 0000000..730f196
--- /dev/null
+++ b/remoteauth/platform/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "platform"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+anyhow.workspace = true
+async-trait.workspace = true
+futures.workspace = true
diff --git a/remoteauth/platform/src/lib.rs b/remoteauth/platform/src/lib.rs
new file mode 100644
index 0000000..286ca58
--- /dev/null
+++ b/remoteauth/platform/src/lib.rs
@@ -0,0 +1,25 @@
+// 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.
+
+//! # RemoteAuthPlatform
+//!
+//! This trait represents the capabilities that RemoteAuth requires from the platform.
+
+use async_trait::async_trait;
+
+#[async_trait]
+pub trait Platform {
+ /// Send a binary message to the remote with the given connection id and return the response.
+ async fn send_request(&self, connection_id: i32, request: &[u8]) -> anyhow::Result<Vec<u8>>;
+}
diff --git a/remoteauth/remote_auth_protool/Cargo.toml b/remoteauth/remote_auth_protool/Cargo.toml
new file mode 100644
index 0000000..f6c03c3
--- /dev/null
+++ b/remoteauth/remote_auth_protool/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "remote_auth_protool"
+version.workspace = true
+edition.workspace = true
+publish.workspace = true
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+anyhow.workspace = true
+async-trait.workspace = true
+futures.workspace = true
diff --git a/remoteauth/remote_auth_protool/src/lib.rs b/remoteauth/remote_auth_protool/src/lib.rs
new file mode 100644
index 0000000..f019785
--- /dev/null
+++ b/remoteauth/remote_auth_protool/src/lib.rs
@@ -0,0 +1,42 @@
+// 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.
+
+pub mod remote_auth_service;
+
+/// Struct representing the remote device.
+pub struct RemoteDevice {
+ id: i32,
+}
+
+/// Trait to be implemented by anything that wants to be notified when remote devices are discovered
+/// or lost.
+pub trait DeviceDiscoveryListener {
+ fn on_discovered(&mut self, remote_device: &RemoteDevice);
+ fn on_lost(&mut self, remote_device: &RemoteDevice);
+ fn on_timeout(&mut self);
+}
+
+/// Trait to be implemented by the struct responsible for scanning for remote devices.
+pub trait DiscoveryPublisher<'a, T: DeviceDiscoveryListener> {
+ /// Add a listener to the list and return a handle to that listener so it can be removed later.
+ fn add_listener(&mut self, listener: &'a mut T) -> i32;
+ /// Remove the listener with the given handle.
+ fn remove_listener(&mut self, listener_handle: i32);
+ /// Notify all listeners that a remote device has been discovered.
+ fn device_discovered(&mut self, remote_device: &RemoteDevice);
+ /// Notify all listeners that a previously discovered remote device has been lost.
+ fn device_lost(&mut self, remote_device: &RemoteDevice);
+ /// Notify all listeners that timeout has occurred.
+ fn timed_out(&mut self);
+}
diff --git a/remoteauth/remote_auth_protool/src/remote_auth_service.rs b/remoteauth/remote_auth_protool/src/remote_auth_service.rs
new file mode 100644
index 0000000..785976d
--- /dev/null
+++ b/remoteauth/remote_auth_protool/src/remote_auth_service.rs
@@ -0,0 +1,251 @@
+// 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::{DeviceDiscoveryListener, DiscoveryPublisher, RemoteDevice};
+
+pub struct RemoteAuthService<'a, T: DeviceDiscoveryListener> {
+ listeners: Vec<&'a mut T>,
+}
+
+impl<'a, T: DeviceDiscoveryListener + PartialEq> RemoteAuthService<'a, T> {
+ pub fn new() -> RemoteAuthService<'a, T> {
+ RemoteAuthService {
+ listeners: Vec::new(),
+ }
+ }
+
+ pub fn is_remote_auth_supported() -> bool {
+ true
+ }
+}
+
+impl<'a, T: DeviceDiscoveryListener + PartialEq> DiscoveryPublisher<'a, T>
+ for RemoteAuthService<'a, T>
+{
+ fn add_listener(&mut self, listener: &'a mut T) -> i32 {
+ self.listeners.push(listener);
+ (self.listeners.len() - 1) as i32
+ }
+
+ fn remove_listener(&mut self, listener_id: i32) {
+ let listener_index = listener_id as usize;
+ if self.listeners.len() > listener_index {
+ self.listeners.remove(listener_index);
+ }
+ }
+
+ fn device_discovered(&mut self, remote_device: &RemoteDevice) {
+ for listener in self.listeners.iter_mut() {
+ listener.on_discovered(&remote_device);
+ }
+ }
+
+ fn device_lost(&mut self, remote_device: &RemoteDevice) {
+ for listener in self.listeners.iter_mut() {
+ listener.on_lost(&remote_device);
+ }
+ }
+
+ fn timed_out(&mut self) {
+ for listener in self.listeners.iter_mut() {
+ listener.on_timeout();
+ }
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[derive(PartialEq)]
+ struct TestListener {
+ pub remote_ids: Vec<i32>,
+ pub got_timeout: bool,
+ }
+
+ impl TestListener {
+ pub fn new() -> TestListener {
+ TestListener {
+ remote_ids: vec![],
+ got_timeout: false,
+ }
+ }
+ }
+
+ impl DeviceDiscoveryListener for TestListener {
+ fn on_discovered(&mut self, remote_device: &RemoteDevice) {
+ self.remote_ids.push(remote_device.id);
+ }
+
+ fn on_lost(&mut self, remote_device: &RemoteDevice) {
+ if let Some(index) = self.remote_ids.iter().position(|i| *i == remote_device.id) {
+ self.remote_ids.remove(index);
+ }
+ }
+
+ fn on_timeout(&mut self) {
+ self.got_timeout = true;
+ }
+ }
+
+ #[test]
+ fn single_listener_discover_notification() {
+ let mut listener = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ ras.add_listener(&mut listener);
+ ras.device_discovered(&remote_device);
+
+ assert_eq!(listener.remote_ids.len(), 1);
+ assert_eq!(listener.remote_ids[0], 42);
+ }
+
+ #[test]
+ fn all_listeners_discover_notification() {
+ let mut listener1 = TestListener::new();
+ let mut listener2 = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ ras.add_listener(&mut listener1);
+ ras.add_listener(&mut listener2);
+ ras.device_discovered(&remote_device);
+
+ assert_eq!(listener1.remote_ids.len(), 1);
+ assert_eq!(listener2.remote_ids.len(), 1);
+ assert_eq!(listener1.remote_ids[0], 42);
+ assert_eq!(listener2.remote_ids[0], 42);
+ }
+
+ #[test]
+ fn listeners_discover_notification_for_all_devices() {
+ let mut listener = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device1 = RemoteDevice { id: 42 };
+ let remote_device2 = RemoteDevice { id: 13 };
+
+ ras.add_listener(&mut listener);
+ ras.device_discovered(&remote_device1);
+ ras.device_discovered(&remote_device2);
+
+ assert_eq!(listener.remote_ids.len(), 2);
+ assert_eq!(listener.remote_ids[0], 42);
+ assert_eq!(listener.remote_ids[1], 13);
+ }
+
+ #[test]
+ fn single_listener_lost_notification() {
+ let mut listener = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ ras.add_listener(&mut listener);
+ ras.device_discovered(&remote_device);
+ ras.device_lost(&remote_device);
+
+ assert_eq!(listener.remote_ids.len(), 0);
+ }
+
+ #[test]
+ fn all_listeners_lost_notification() {
+ let mut listener1 = TestListener::new();
+ let mut listener2 = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ ras.add_listener(&mut listener1);
+ ras.add_listener(&mut listener2);
+ ras.device_discovered(&remote_device);
+ ras.device_lost(&remote_device);
+
+ assert_eq!(listener1.remote_ids.len(), 0);
+ assert_eq!(listener2.remote_ids.len(), 0);
+ }
+
+ #[test]
+ fn listeners_lost_notification_for_all_devices() {
+ let mut listener = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device1 = RemoteDevice { id: 42 };
+ let remote_device2 = RemoteDevice { id: 13 };
+ let remote_device3 = RemoteDevice { id: 99 };
+
+ ras.add_listener(&mut listener);
+ ras.device_discovered(&remote_device1);
+ ras.device_discovered(&remote_device2);
+ ras.device_discovered(&remote_device3);
+
+ ras.device_lost(&remote_device2);
+ ras.device_lost(&remote_device3);
+
+ assert_eq!(listener.remote_ids.len(), 1);
+ assert_eq!(listener.remote_ids[0], 42);
+ }
+
+ #[test]
+ fn single_listener_timeout_notification() {
+ let mut listener = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ ras.add_listener(&mut listener);
+ ras.timed_out();
+
+ assert_eq!(listener.got_timeout, true);
+ }
+
+ #[test]
+ fn all_listeners_timeout_notification() {
+ let mut listener1 = TestListener::new();
+ let mut listener2 = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ ras.add_listener(&mut listener1);
+ ras.add_listener(&mut listener2);
+ ras.timed_out();
+
+ assert_eq!(listener1.got_timeout, true);
+ assert_eq!(listener2.got_timeout, true);
+ }
+
+ #[test]
+ fn listener_can_be_removed() {
+ let mut listener = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ let id = ras.add_listener(&mut listener);
+ ras.remove_listener(id);
+ ras.device_discovered(&remote_device);
+
+ assert_eq!(listener.remote_ids.len(), 0);
+ }
+
+ #[test]
+ fn listener_can_be_removed_after_notification() {
+ let mut listener = TestListener::new();
+ let mut ras = RemoteAuthService::new();
+ let remote_device = RemoteDevice { id: 42 };
+
+ let id = ras.add_listener(&mut listener);
+ ras.device_discovered(&remote_device);
+ ras.remove_listener(id);
+ ras.device_discovered(&remote_device);
+
+ assert_eq!(listener.remote_ids.len(), 1);
+ assert_eq!(listener.remote_ids[0], 42);
+ }
+}