From c5fe0a618874ecf31bf46def2bb6e81664e3ee80 Mon Sep 17 00:00:00 2001
From: Martin/Geno <geno+dev@fireorbit.de>
Date: Mon, 19 Aug 2019 01:28:48 +0200
Subject: [PATCH] ble: card10 svc - need permissions everywhere

---
 epicardium/ble/card10.c | 61 +++++++++++++++++++++++------------------
 1 file changed, 34 insertions(+), 27 deletions(-)

diff --git a/epicardium/ble/card10.c b/epicardium/ble/card10.c
index ea5d7aed..3f60b747 100644
--- a/epicardium/ble/card10.c
+++ b/epicardium/ble/card10.c
@@ -262,8 +262,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			sizeof(uint64_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// VIBRA
 
@@ -283,8 +283,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			sizeof(uint16_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// ROCKETS
 
@@ -304,8 +304,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// BG LED Bottom left
 
@@ -325,8 +325,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// BG LED Bottom right
 
@@ -346,8 +346,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// BG LED top right
 
@@ -367,8 +367,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// BG LED top left
 
@@ -388,8 +388,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// Dim bottom module
 
@@ -409,8 +409,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// Dim top module
 
@@ -430,8 +430,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// ABOVE LEDS
 
@@ -451,8 +451,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			11 * 3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// SINGLE LED
 
@@ -472,8 +472,8 @@ static void *addCard10GroupDyn(void)
 			0,
 			sizeof(uint16_t) + 3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
-			ATTS_PERMIT_WRITE
-		);
+			ATTS_PERMIT_WRITE | ATTS_PERMIT_WRITE_ENC |
+				ATTS_PERMIT_WRITE_AUTH);
 
 		// LIGHT_SENSOR
 
@@ -493,8 +493,8 @@ static void *addCard10GroupDyn(void)
 			sizeof(uint8_t),
 			sizeof(uint8_t),
 			ATTS_SET_READ_CBACK,
-			ATTS_PERMIT_READ
-		);
+			ATTS_PERMIT_READ | ATTS_PERMIT_READ_ENC |
+				ATTS_PERMIT_READ_AUTH);
 
 		APP_TRACE_INFO0("ble-card10: services bound\n");
 	}
@@ -534,9 +534,10 @@ static uint8_t writeCard10CB(
 	attsAttr_t *pAttr
 ) {
 	uint16_t ui16 = 0;
-	uint8_t ui8 = 0;
+	uint8_t ui8   = 0;
 
 	switch (handle) {
+	// time
 	case CARD10_TIME_UPDATE_VAL_HDL:
 		if (operation == ATT_PDU_PREP_WRITE_REQ) {
 			if (len < sizeof(uint64_t)) {
@@ -545,11 +546,13 @@ static uint8_t writeCard10CB(
 			return ATT_SUCCESS;
 		}
 		return setTime(pValue, len);
+	// vibra
 	case CARD10_VIBRA_VAL_HDL:
 		BYTES_TO_UINT16(ui16, pValue);
 		epic_vibra_vibrate(ui16);
 		APP_TRACE_INFO1("ble-card10: set vibra for %dms\n", ui16);
 		return ATT_SUCCESS;
+	// rockets
 	case CARD10_ROCKETS_VAL_HDL:
 		epic_leds_set_rocket(0, pValue[0]);
 		epic_leds_set_rocket(1, pValue[1]);
@@ -561,6 +564,7 @@ static uint8_t writeCard10CB(
 			pValue[2]
 		);
 		return ATT_SUCCESS;
+	// bg leds
 	case CARD10_LED_BG_BOTTOM_LEFT_VAL_HDL:
 		epic_leds_set(11, pValue[0], pValue[1], pValue[2]);
 		APP_TRACE_INFO3(
@@ -597,9 +601,10 @@ static uint8_t writeCard10CB(
 			pValue[2]
 		);
 		return ATT_SUCCESS;
+	// dim
 	case CARD10_LEDS_BOTTOM_DIM_VAL_HDL:
 		ui8 = pValue[0];
-		if(ui8 >= 1 && ui8 <= 8) {
+		if (ui8 >= 1 && ui8 <= 8) {
 			epic_leds_dim_bottom(pValue[0]);
 			APP_TRACE_INFO1("dim bottom to: %d\n", pValue[0]);
 			return ATT_SUCCESS;
@@ -608,13 +613,14 @@ static uint8_t writeCard10CB(
 		return ATT_ERR_RANGE;
 	case CARD10_LEDS_TOP_DIM_VAL_HDL:
 		ui8 = pValue[0];
-		if(ui8 >= 1 && ui8 <= 8) {
+		if (ui8 >= 1 && ui8 <= 8) {
 			epic_leds_dim_top(ui8);
 			APP_TRACE_INFO1("dim top to: %d\n", ui8);
 			return ATT_SUCCESS;
 		}
 		APP_TRACE_INFO1("dim top invalid value (1-8): %d\n", ui8);
 		return ATT_ERR_RANGE;
+	// leds above
 	case CARD10_LEDS_ABOVE_VAL_HDL:
 		for (ui16 = 0; ui16 < 11; ui16++) {
 			epic_leds_set(
@@ -631,6 +637,7 @@ static uint8_t writeCard10CB(
 				pValue[ui16 * 3 + 2]
 			);
 		}
+	// single led
 	case CARD10_LED_S_VAL_HDL:
 		BYTES_TO_UINT16(ui16, pValue);
 		epic_leds_set(ui16, pValue[2], pValue[3], pValue[4]);
-- 
GitLab