@@ -126,19 +126,21 @@ int wh_MessageAuth_FlattenPermissions(whAuthPermissions* permissions,
126126 return WH_ERROR_BADARGS ;
127127 }
128128
129- /* Serialize groupPermissions (2 bytes) */
130- buffer [idx ++ ] = (uint8_t )(permissions -> groupPermissions & 0xFF );
131- buffer [idx ++ ] = (uint8_t )((permissions -> groupPermissions >> 8 ) & 0xFF );
129+ /* Serialize groupPermissions array (WH_NUMBER_OF_GROUPS bytes) */
130+ for (i = 0 ; i < WH_NUMBER_OF_GROUPS ; i ++ ) {
131+ buffer [idx ++ ] = permissions -> groupPermissions [i ];
132+ }
132133
133- /* Serialize actionPermissions array (4*WH_NUMBER_OF_GROUPS*WH_AUTH_ACTION_WORDS bytes) */
134+ /* Serialize actionPermissions array
135+ * (4*WH_NUMBER_OF_GROUPS*WH_AUTH_ACTION_WORDS bytes) */
134136 for (i = 0 ; i < WH_NUMBER_OF_GROUPS ; i ++ ) {
135137 int j ;
136138 for (j = 0 ; j < WH_AUTH_ACTION_WORDS ; j ++ ) {
137139 uint32_t actionPerm = permissions -> actionPermissions [i ][j ];
138- buffer [idx ++ ] = (uint8_t )(actionPerm & 0xFF );
139- buffer [idx ++ ] = (uint8_t )((actionPerm >> 8 ) & 0xFF );
140- buffer [idx ++ ] = (uint8_t )((actionPerm >> 16 ) & 0xFF );
141- buffer [idx ++ ] = (uint8_t )((actionPerm >> 24 ) & 0xFF );
140+ buffer [idx ++ ] = (uint8_t )(actionPerm & 0xFF );
141+ buffer [idx ++ ] = (uint8_t )((actionPerm >> 8 ) & 0xFF );
142+ buffer [idx ++ ] = (uint8_t )((actionPerm >> 16 ) & 0xFF );
143+ buffer [idx ++ ] = (uint8_t )((actionPerm >> 24 ) & 0xFF );
142144 }
143145 }
144146
@@ -179,25 +181,25 @@ int wh_MessageAuth_UnflattenPermissions(uint8_t* buffer, uint16_t buffer_len,
179181 return WH_ERROR_BADARGS ;
180182 }
181183
182- /* Deserialize groupPermissions (2 bytes) */
183- permissions -> groupPermissions = buffer [idx ] | (buffer [idx + 1 ] << 8 );
184- idx += 2 ;
184+ /* Deserialize groupPermissions array (WH_NUMBER_OF_GROUPS bytes) */
185+ for (i = 0 ; i < WH_NUMBER_OF_GROUPS ; i ++ ) {
186+ permissions -> groupPermissions [i ] = buffer [idx ++ ];
187+ }
185188
186- /* Deserialize actionPermissions array (4*WH_NUMBER_OF_GROUPS*WH_AUTH_ACTION_WORDS bytes) */
189+ /* Deserialize actionPermissions array
190+ * (4*WH_NUMBER_OF_GROUPS*WH_AUTH_ACTION_WORDS bytes) */
187191 for (i = 0 ; i < WH_NUMBER_OF_GROUPS ; i ++ ) {
188192 int j ;
189193 for (j = 0 ; j < WH_AUTH_ACTION_WORDS ; j ++ ) {
190194 permissions -> actionPermissions [i ][j ] =
191- buffer [idx ] |
192- (buffer [idx + 1 ] << 8 ) |
193- (buffer [idx + 2 ] << 16 ) |
194- (buffer [idx + 3 ] << 24 );
195+ (uint32_t )(buffer [idx ] | (buffer [idx + 1 ] << 8 ) |
196+ (buffer [idx + 2 ] << 16 ) | (buffer [idx + 3 ] << 24 ));
195197 idx += 4 ;
196198 }
197199 }
198200
199201 /* Deserialize keyIdCount (2 bytes) */
200- keyIdCount = buffer [idx ] | (buffer [idx + 1 ] << 8 );
202+ keyIdCount = ( uint16_t )( buffer [idx ] | (buffer [idx + 1 ] << 8 ) );
201203 idx += 2 ;
202204 if (keyIdCount > WH_AUTH_MAX_KEY_IDS ) {
203205 keyIdCount = WH_AUTH_MAX_KEY_IDS ;
@@ -206,10 +208,8 @@ int wh_MessageAuth_UnflattenPermissions(uint8_t* buffer, uint16_t buffer_len,
206208
207209 /* Deserialize keyIds array (4*WH_AUTH_MAX_KEY_IDS bytes) */
208210 for (i = 0 ; i < WH_AUTH_MAX_KEY_IDS ; i ++ ) {
209- keyId = buffer [idx ] |
210- (buffer [idx + 1 ] << 8 ) |
211- (buffer [idx + 2 ] << 16 ) |
212- (buffer [idx + 3 ] << 24 );
211+ keyId = (uint32_t )(buffer [idx ] | (buffer [idx + 1 ] << 8 ) |
212+ (buffer [idx + 2 ] << 16 ) | (buffer [idx + 3 ] << 24 ));
213213 permissions -> keyIds [i ] = keyId ;
214214 idx += 4 ;
215215 }
0 commit comments