66 * Based on mbed TLS, https://tls.mbed.org.
77 *
88 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
9- * Copyright (C) 2015-2020 Tempesta Technologies, Inc.
9+ * Copyright (C) 2015-2024 Tempesta Technologies, Inc.
1010 *
1111 * This program is free software; you can redistribute it and/or modify
1212 * it under the terms of the GNU General Public License as published by
3939 * @len - The variable that will receive the value
4040 */
4141int
42- ttls_asn1_get_len (unsigned char * * p , const unsigned char * end , size_t * len )
42+ ttls_asn1_get_len (const unsigned char * * p , const unsigned char * end , size_t * len )
4343{
4444 if ((end - * p ) < 1 )
4545 return (TTLS_ERR_ASN1_OUT_OF_DATA );
@@ -92,7 +92,7 @@ ttls_asn1_get_len(unsigned char **p, const unsigned char *end, size_t *len)
9292 * @tag - The expected tag
9393 */
9494int
95- ttls_asn1_get_tag (unsigned char * * p , const unsigned char * end , size_t * len ,
95+ ttls_asn1_get_tag (const unsigned char * * p , const unsigned char * end , size_t * len ,
9696 int tag )
9797{
9898 if ((end - * p ) < 1 )
@@ -115,7 +115,7 @@ ttls_asn1_get_tag(unsigned char **p, const unsigned char *end, size_t *len,
115115 * @val - The variable that will receive the value
116116 */
117117int
118- ttls_asn1_get_bool (unsigned char * * p , const unsigned char * end , int * val )
118+ ttls_asn1_get_bool (const unsigned char * * p , const unsigned char * end , int * val )
119119{
120120 int r ;
121121 size_t len ;
@@ -141,7 +141,7 @@ ttls_asn1_get_bool(unsigned char **p, const unsigned char *end, int *val)
141141 * @val - The variable that will receive the value
142142 */
143143int
144- ttls_asn1_get_int (unsigned char * * p , const unsigned char * end , int * val )
144+ ttls_asn1_get_int (const unsigned char * * p , const unsigned char * end , int * val )
145145{
146146 int r ;
147147 size_t len ;
@@ -171,7 +171,7 @@ ttls_asn1_get_int(unsigned char **p, const unsigned char *end, int *val)
171171 * @X - The MPI that will receive the value
172172 */
173173int
174- ttls_asn1_get_mpi (unsigned char * * p , const unsigned char * end , TlsMpi * X )
174+ ttls_asn1_get_mpi (const unsigned char * * p , const unsigned char * end , TlsMpi * X )
175175{
176176 int r ;
177177 size_t len ;
@@ -187,7 +187,7 @@ ttls_asn1_get_mpi(unsigned char **p, const unsigned char *end, TlsMpi *X)
187187}
188188
189189int
190- ttls_asn1_get_bitstring (unsigned char * * p , const unsigned char * end ,
190+ ttls_asn1_get_bitstring (const unsigned char * * p , const unsigned char * end ,
191191 ttls_asn1_bitstring * bs )
192192{
193193 int r ;
@@ -201,9 +201,8 @@ ttls_asn1_get_bitstring(unsigned char **p, const unsigned char *end,
201201 return TTLS_ERR_ASN1_OUT_OF_DATA ;
202202 bs -> len -= 1 ;
203203
204- /* Get number of unused bits, ensure unused bits <= 7 */
205- bs -> unused_bits = * * p ;
206- if (bs -> unused_bits > 7 )
204+ /* Ensure unused bits is <= 7. */
205+ if (* * p > 7 )
207206 return TTLS_ERR_ASN1_INVALID_LENGTH ;
208207 ++ * p ;
209208
@@ -218,22 +217,26 @@ ttls_asn1_get_bitstring(unsigned char **p, const unsigned char *end,
218217 * Retrieve a bitstring ASN.1 tag without unused bits and its value.
219218 */
220219int
221- ttls_asn1_get_bitstring_null (unsigned char * * p , const unsigned char * end ,
220+ ttls_asn1_get_bitstring_null (const unsigned char * * p , const unsigned char * end ,
222221 size_t * len )
223222{
224223 int r ;
225224
226225 if ((r = ttls_asn1_get_tag (p , end , len , TTLS_ASN1_BIT_STRING )))
227226 return r ;
228227
229- return ((* len )-- < 2 || * (* p )++ != 0 ) ? - EINVAL : 0 ;
228+ if (!* len )
229+ return - EINVAL ;
230+ -- * len ;
231+
232+ return * (* p )++ ? - EINVAL : 0 ;
230233}
231234
232235/*
233236 * Parses and splits an ASN.1 "SEQUENCE OF <tag>"
234237 */
235238int
236- ttls_asn1_get_sequence_of (unsigned char * * p , const unsigned char * end ,
239+ ttls_asn1_get_sequence_of (const unsigned char * * p , const unsigned char * end ,
237240 ttls_asn1_sequence * cur , int tag )
238241{
239242 int r ;
@@ -249,7 +252,7 @@ ttls_asn1_get_sequence_of(unsigned char **p, const unsigned char *end,
249252 return TTLS_ERR_ASN1_LENGTH_MISMATCH ;
250253
251254 while (* p < end ) {
252- buf = & ( cur -> buf ) ;
255+ buf = & cur -> buf ;
253256 buf -> tag = * * p ;
254257
255258 if ((r = ttls_asn1_get_tag (p , end , & buf -> len , tag )))
@@ -284,7 +287,7 @@ ttls_asn1_get_sequence_of(unsigned char **p, const unsigned char *end,
284287 * @params - The buffer to receive the params (if any)
285288 */
286289int
287- ttls_asn1_get_alg (unsigned char * * p , const unsigned char * end ,
290+ ttls_asn1_get_alg (const unsigned char * * p , const unsigned char * end ,
288291 ttls_asn1_buf * alg , ttls_asn1_buf * params )
289292{
290293 int r ;
@@ -324,7 +327,7 @@ ttls_asn1_get_alg(unsigned char **p, const unsigned char *end,
324327}
325328
326329int
327- ttls_asn1_get_alg_null (unsigned char * * p , const unsigned char * end ,
330+ ttls_asn1_get_alg_null (const unsigned char * * p , const unsigned char * end ,
328331 ttls_asn1_buf * alg )
329332{
330333 int r ;
@@ -356,15 +359,15 @@ ttls_asn1_write_len(unsigned char **p, unsigned char *start, size_t len)
356359 if (len < 0x80 ) {
357360 if (* p - start < 1 )
358361 return - ENOSPC ;
359- * -- (* p ) = (unsigned char ) len ;
362+ * -- (* p ) = (unsigned char )len ;
360363 return 1 ;
361364 }
362365
363366 if (len <= 0xFF ) {
364367 if (* p - start < 2 )
365368 return - ENOSPC ;
366369
367- * -- (* p ) = (unsigned char ) len ;
370+ * -- (* p ) = (unsigned char )len ;
368371 * -- (* p ) = 0x81 ;
369372 return 2 ;
370373 }
0 commit comments