|
57 | 57 | * END_DEPENDENCIES
|
58 | 58 | */
|
59 | 59 |
|
| 60 | +/* BEGIN_CASE */ |
| 61 | +void mbedtls_asn1_write_null( data_t *expected ) |
| 62 | +{ |
| 63 | + generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; |
| 64 | + int ret; |
| 65 | + |
| 66 | + for( data.size = 0; data.size < expected->len + 1; data.size++ ) |
| 67 | + { |
| 68 | + if( ! generic_write_start_step( &data ) ) |
| 69 | + goto exit; |
| 70 | + ret = mbedtls_asn1_write_null( &data.p, data.start ); |
| 71 | + if( ! generic_write_finish_step( &data, expected, ret ) ) |
| 72 | + goto exit; |
| 73 | + } |
| 74 | + |
| 75 | +exit: |
| 76 | + mbedtls_free( data.output ); |
| 77 | +} |
| 78 | +/* END_CASE */ |
| 79 | + |
60 | 80 | /* BEGIN_CASE */
|
61 | 81 | void mbedtls_asn1_write_bool( int val, data_t *expected )
|
62 | 82 | {
|
@@ -140,6 +160,11 @@ void mbedtls_asn1_write_string( int tag, data_t *content, data_t *expected )
|
140 | 160 | ret = mbedtls_asn1_write_octet_string(
|
141 | 161 | &data.p, data.start, content->x, content->len );
|
142 | 162 | break;
|
| 163 | + case MBEDTLS_ASN1_OID: |
| 164 | + ret = mbedtls_asn1_write_oid( |
| 165 | + &data.p, data.start, |
| 166 | + (const char *) content->x, content->len ); |
| 167 | + break; |
143 | 168 | case MBEDTLS_ASN1_UTF8_STRING:
|
144 | 169 | ret = mbedtls_asn1_write_utf8_string(
|
145 | 170 | &data.p, data.start,
|
@@ -171,6 +196,36 @@ exit:
|
171 | 196 | }
|
172 | 197 | /* END_CASE */
|
173 | 198 |
|
| 199 | +/* BEGIN_CASE */ |
| 200 | +void mbedtls_asn1_write_algorithm_identifier( data_t *oid, |
| 201 | + int par_len, |
| 202 | + data_t *expected ) |
| 203 | +{ |
| 204 | + generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; |
| 205 | + int ret; |
| 206 | + |
| 207 | + for( data.size = 0; data.size < expected->len + 1; data.size++ ) |
| 208 | + { |
| 209 | + if( ! generic_write_start_step( &data ) ) |
| 210 | + goto exit; |
| 211 | + ret = mbedtls_asn1_write_algorithm_identifier( |
| 212 | + &data.p, data.start, |
| 213 | + (const char *) oid->x, oid->len, par_len ); |
| 214 | + /* If params_len != 0, mbedtls_asn1_write_algorithm_identifier() |
| 215 | + * assumes that the parameters are already present in the buffer |
| 216 | + * and returns a length that accounts for this, but our test |
| 217 | + * data omits the parameters. */ |
| 218 | + if( ret >= 0 ) |
| 219 | + ret -= par_len; |
| 220 | + if( ! generic_write_finish_step( &data, expected, ret ) ) |
| 221 | + goto exit; |
| 222 | + } |
| 223 | + |
| 224 | +exit: |
| 225 | + mbedtls_free( data.output ); |
| 226 | +} |
| 227 | +/* END_CASE */ |
| 228 | + |
174 | 229 | /* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */
|
175 | 230 | void mbedtls_asn1_write_len( int len, data_t * asn1, int buf_len,
|
176 | 231 | int result )
|
|
0 commit comments