From b51e3e5ae1de84ae6d16c933318689b6afcd1354 Mon Sep 17 00:00:00 2001
From: Martin Szulecki
Date: Tue, 17 Jul 2012 16:54:50 +0200
Subject: tss: Rearrange TSS request keys and add missing baseband hash keys

---
 src/tss.c | 35 +++++++++++++++++++++++++++--------
 1 file changed, 27 insertions(+), 8 deletions(-)

diff --git a/src/tss.c b/src/tss.c
index c876fca..bcd5a7d 100644
--- a/src/tss.c
+++ b/src/tss.c
@@ -232,14 +232,6 @@ plist_t tss_create_baseband_request(plist_t build_identity, uint64_t ecid, uint6
 	plist_dict_insert_item(tss_request, "ApProductionMode", plist_new_bool(1));
 	plist_dict_insert_item(tss_request, "ApSecurityDomain", plist_new_uint(security_domain));
 	plist_dict_insert_item(tss_request, "BasebandFirmware", plist_copy(bbfw_node));
-	plist_dict_insert_item(tss_request, "BbChipID", plist_new_uint(bb_chip_id));
-	plist_dict_insert_item(tss_request, "BbGoldCertId", plist_new_uint(bb_cert_id));
-	if (bb_nonce && (bb_nonce_size > 0)) {
-		plist_dict_insert_item(tss_request, "BbNonce", plist_new_data(bb_nonce, bb_nonce_size));
-	}
-	if (bb_snum && bb_snum_size > 0) {
-		plist_dict_insert_item(tss_request, "BbSNUM", plist_new_data(bb_snum, bb_snum_size));
-	}
 
 	/* Used by XMM 6180/GSM */
 	plist_t bb_node = NULL;
@@ -252,6 +244,29 @@ plist_t tss_create_baseband_request(plist_t build_identity, uint64_t ecid, uint6
 	bb_node = NULL;
 
 	/* Used by Qualcomm MDM6610 */
+	bb_node = plist_dict_get_item(build_identity, "BbActivationManifestKeyHash");
+	if (bb_node && plist_get_node_type(bb_node) == PLIST_DATA) {
+		plist_dict_insert_item(tss_request, "BbActivationManifestKeyHash", plist_copy(bb_node));
+	} else {
+		error("WARNING: Unable to find BbActivationManifestKeyHash node\n");
+	}
+	bb_node = NULL;
+
+	bb_node = plist_dict_get_item(build_identity, "BbCalibrationManifestKeyHash");
+	if (bb_node && plist_get_node_type(bb_node) == PLIST_DATA) {
+		plist_dict_insert_item(tss_request, "BbCalibrationManifestKeyHash", plist_copy(bb_node));
+	} else {
+		error("WARNING: Unable to find BbCalibrationManifestKeyHash node\n");
+	}
+	bb_node = NULL;
+
+	plist_dict_insert_item(tss_request, "BbChipID", plist_new_uint(bb_chip_id));
+	plist_dict_insert_item(tss_request, "BbGoldCertId", plist_new_uint(bb_cert_id));
+
+	if (bb_nonce && (bb_nonce_size > 0)) {
+		plist_dict_insert_item(tss_request, "BbNonce", plist_new_data(bb_nonce, bb_nonce_size));
+	}
+
 	bb_node = plist_dict_get_item(build_identity, "BbProvisioningManifestKeyHash");
 	if (bb_node && plist_get_node_type(bb_node) == PLIST_DATA) {
 		plist_dict_insert_item(tss_request, "BbProvisioningManifestKeyHash", plist_copy(bb_node));
@@ -260,6 +275,10 @@ plist_t tss_create_baseband_request(plist_t build_identity, uint64_t ecid, uint6
 	}
 	bb_node = NULL;
 
+	if (bb_snum && bb_snum_size > 0) {
+		plist_dict_insert_item(tss_request, "BbSNUM", plist_new_data(bb_snum, bb_snum_size));
+	}
+
 	plist_dict_insert_item(tss_request, "UniqueBuildID", plist_new_data(unique_build_data, unique_build_size));
 	free(unique_build_data);
 
-- 
cgit v1.1-32-gdbae