| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/tasn_prn.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||
| 4 | - | |||||||||||||||||||||||||
| 5 | - | |||||||||||||||||||||||||
| 6 | - | |||||||||||||||||||||||||
| 7 | - | |||||||||||||||||||||||||
| 8 | - | |||||||||||||||||||||||||
| 9 | ASN1_PCTX default_pctx = { | - | ||||||||||||||||||||||||
| 10 | 0x001, | - | ||||||||||||||||||||||||
| 11 | 0, | - | ||||||||||||||||||||||||
| 12 | 0, | - | ||||||||||||||||||||||||
| 13 | 0, | - | ||||||||||||||||||||||||
| 14 | 0 | - | ||||||||||||||||||||||||
| 15 | }; | - | ||||||||||||||||||||||||
| 16 | - | |||||||||||||||||||||||||
| 17 | - | |||||||||||||||||||||||||
| 18 | ASN1_PCTX * | - | ||||||||||||||||||||||||
| 19 | ASN1_PCTX_new(void) | - | ||||||||||||||||||||||||
| 20 | { | - | ||||||||||||||||||||||||
| 21 | ASN1_PCTX *ret; | - | ||||||||||||||||||||||||
| 22 | ret = malloc(sizeof(ASN1_PCTX)); | - | ||||||||||||||||||||||||
| 23 | if (ret ==
| 0 | ||||||||||||||||||||||||
| 24 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 25 | ) { | - | ||||||||||||||||||||||||
| 26 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,90); | - | ||||||||||||||||||||||||
| 27 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 28 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 29 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 30 | } | - | ||||||||||||||||||||||||
| 31 | ret->flags = 0; | - | ||||||||||||||||||||||||
| 32 | ret->nm_flags = 0; | - | ||||||||||||||||||||||||
| 33 | ret->cert_flags = 0; | - | ||||||||||||||||||||||||
| 34 | ret->oid_flags = 0; | - | ||||||||||||||||||||||||
| 35 | ret->str_flags = 0; | - | ||||||||||||||||||||||||
| 36 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||||||||
| 37 | } | - | ||||||||||||||||||||||||
| 38 | - | |||||||||||||||||||||||||
| 39 | void | - | ||||||||||||||||||||||||
| 40 | ASN1_PCTX_free(ASN1_PCTX *p) | - | ||||||||||||||||||||||||
| 41 | { | - | ||||||||||||||||||||||||
| 42 | free(p); | - | ||||||||||||||||||||||||
| 43 | } executed 1 time by 1 test: end of blockExecuted by:
| 1 | ||||||||||||||||||||||||
| 44 | - | |||||||||||||||||||||||||
| 45 | unsigned long | - | ||||||||||||||||||||||||
| 46 | ASN1_PCTX_get_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
| 47 | { | - | ||||||||||||||||||||||||
| 48 | return never executed: p->flags;return p->flags;never executed: return p->flags; | 0 | ||||||||||||||||||||||||
| 49 | } | - | ||||||||||||||||||||||||
| 50 | - | |||||||||||||||||||||||||
| 51 | void | - | ||||||||||||||||||||||||
| 52 | ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
| 53 | { | - | ||||||||||||||||||||||||
| 54 | p->flags = flags; | - | ||||||||||||||||||||||||
| 55 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 56 | - | |||||||||||||||||||||||||
| 57 | unsigned long | - | ||||||||||||||||||||||||
| 58 | ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
| 59 | { | - | ||||||||||||||||||||||||
| 60 | return never executed: p->nm_flags;return p->nm_flags;never executed: return p->nm_flags; | 0 | ||||||||||||||||||||||||
| 61 | } | - | ||||||||||||||||||||||||
| 62 | - | |||||||||||||||||||||||||
| 63 | void | - | ||||||||||||||||||||||||
| 64 | ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
| 65 | { | - | ||||||||||||||||||||||||
| 66 | p->nm_flags = flags; | - | ||||||||||||||||||||||||
| 67 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 68 | - | |||||||||||||||||||||||||
| 69 | unsigned long | - | ||||||||||||||||||||||||
| 70 | ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
| 71 | { | - | ||||||||||||||||||||||||
| 72 | return never executed: p->cert_flags;return p->cert_flags;never executed: return p->cert_flags; | 0 | ||||||||||||||||||||||||
| 73 | } | - | ||||||||||||||||||||||||
| 74 | - | |||||||||||||||||||||||||
| 75 | void | - | ||||||||||||||||||||||||
| 76 | ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
| 77 | { | - | ||||||||||||||||||||||||
| 78 | p->cert_flags = flags; | - | ||||||||||||||||||||||||
| 79 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 80 | - | |||||||||||||||||||||||||
| 81 | unsigned long | - | ||||||||||||||||||||||||
| 82 | ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
| 83 | { | - | ||||||||||||||||||||||||
| 84 | return never executed: p->oid_flags;return p->oid_flags;never executed: return p->oid_flags; | 0 | ||||||||||||||||||||||||
| 85 | } | - | ||||||||||||||||||||||||
| 86 | - | |||||||||||||||||||||||||
| 87 | void | - | ||||||||||||||||||||||||
| 88 | ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
| 89 | { | - | ||||||||||||||||||||||||
| 90 | p->oid_flags = flags; | - | ||||||||||||||||||||||||
| 91 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 92 | - | |||||||||||||||||||||||||
| 93 | unsigned long | - | ||||||||||||||||||||||||
| 94 | ASN1_PCTX_get_str_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
| 95 | { | - | ||||||||||||||||||||||||
| 96 | return never executed: p->str_flags;return p->str_flags;never executed: return p->str_flags; | 0 | ||||||||||||||||||||||||
| 97 | } | - | ||||||||||||||||||||||||
| 98 | - | |||||||||||||||||||||||||
| 99 | void | - | ||||||||||||||||||||||||
| 100 | ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
| 101 | { | - | ||||||||||||||||||||||||
| 102 | p->str_flags = flags; | - | ||||||||||||||||||||||||
| 103 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 104 | - | |||||||||||||||||||||||||
| 105 | - | |||||||||||||||||||||||||
| 106 | - | |||||||||||||||||||||||||
| 107 | static int asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, | - | ||||||||||||||||||||||||
| 108 | const ASN1_ITEM *it, const char *fname, const char *sname, int nohdr, | - | ||||||||||||||||||||||||
| 109 | const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
| 110 | - | |||||||||||||||||||||||||
| 111 | int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, | - | ||||||||||||||||||||||||
| 112 | const ASN1_TEMPLATE *tt, const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
| 113 | - | |||||||||||||||||||||||||
| 114 | static int asn1_primitive_print(BIO *out, ASN1_VALUE **fld, | - | ||||||||||||||||||||||||
| 115 | const ASN1_ITEM *it, int indent, const char *fname, const char *sname, | - | ||||||||||||||||||||||||
| 116 | const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
| 117 | - | |||||||||||||||||||||||||
| 118 | static int asn1_print_fsname(BIO *out, int indent, const char *fname, | - | ||||||||||||||||||||||||
| 119 | const char *sname, const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
| 120 | - | |||||||||||||||||||||||||
| 121 | int | - | ||||||||||||||||||||||||
| 122 | ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, const ASN1_ITEM *it, | - | ||||||||||||||||||||||||
| 123 | const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 124 | { | - | ||||||||||||||||||||||||
| 125 | const char *sname; | - | ||||||||||||||||||||||||
| 126 | - | |||||||||||||||||||||||||
| 127 | if (pctx ==
| 0 | ||||||||||||||||||||||||
| 128 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 129 | ) | - | ||||||||||||||||||||||||
| 130 | pctx = &default_pctx; never executed: pctx = &default_pctx; | 0 | ||||||||||||||||||||||||
| 131 | if (pctx->flags & 0x100
| 0 | ||||||||||||||||||||||||
| 132 | sname = never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 133 | ((void *)0) never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 134 | ; never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 135 | else | - | ||||||||||||||||||||||||
| 136 | sname = it->sname; never executed: sname = it->sname; | 0 | ||||||||||||||||||||||||
| 137 | return never executed: asn1_item_print_ctx(out, &ifld, indent, it, return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx);never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
| 138 | ((void *)0) never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
| 139 | , sname, never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
| 140 | 0, pctx); never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
| 141 | } | - | ||||||||||||||||||||||||
| 142 | - | |||||||||||||||||||||||||
| 143 | static int | - | ||||||||||||||||||||||||
| 144 | asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, const ASN1_ITEM *it, | - | ||||||||||||||||||||||||
| 145 | const char *fname, const char *sname, int nohdr, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 146 | { | - | ||||||||||||||||||||||||
| 147 | const ASN1_TEMPLATE *tt; | - | ||||||||||||||||||||||||
| 148 | const ASN1_EXTERN_FUNCS *ef; | - | ||||||||||||||||||||||||
| 149 | ASN1_VALUE **tmpfld; | - | ||||||||||||||||||||||||
| 150 | const ASN1_AUX *aux = it->funcs; | - | ||||||||||||||||||||||||
| 151 | ASN1_aux_cb *asn1_cb; | - | ||||||||||||||||||||||||
| 152 | ASN1_PRINT_ARG parg; | - | ||||||||||||||||||||||||
| 153 | int i; | - | ||||||||||||||||||||||||
| 154 | - | |||||||||||||||||||||||||
| 155 | if (aux
| 0 | ||||||||||||||||||||||||
| 156 | parg.out = out; | - | ||||||||||||||||||||||||
| 157 | parg.indent = indent; | - | ||||||||||||||||||||||||
| 158 | parg.pctx = pctx; | - | ||||||||||||||||||||||||
| 159 | asn1_cb = aux->asn1_cb; | - | ||||||||||||||||||||||||
| 160 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
| 161 | asn1_cb = never executed: asn1_cb = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 162 | ((void *)0) never executed: asn1_cb = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 163 | ; never executed: asn1_cb = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 164 | - | |||||||||||||||||||||||||
| 165 | if (*
| 0 | ||||||||||||||||||||||||
| 166 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 167 | ) { | - | ||||||||||||||||||||||||
| 168 | if (pctx->flags & 0x001
| 0 | ||||||||||||||||||||||||
| 169 | if (!nohdr
| 0 | ||||||||||||||||||||||||
| 170 | !asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
| 171 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 172 | if (BIO_puts(out, "<ABSENT>\n") <= 0
| 0 | ||||||||||||||||||||||||
| 173 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 174 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 175 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 176 | } | - | ||||||||||||||||||||||||
| 177 | - | |||||||||||||||||||||||||
| 178 | switch (it->itype) { | - | ||||||||||||||||||||||||
| 179 | case never executed: 0x0:case 0x0:never executed: case 0x0: | 0 | ||||||||||||||||||||||||
| 180 | if (it->templates
| 0 | ||||||||||||||||||||||||
| 181 | if (!asn1_template_print_ctx(out, fld, indent,
| 0 | ||||||||||||||||||||||||
| 182 | it->templates, pctx)
| 0 | ||||||||||||||||||||||||
| 183 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 184 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 185 | - | |||||||||||||||||||||||||
| 186 | case never executed: 0x5:case 0x5:never executed: case 0x5:code before this statement never executed: case 0x5: | 0 | ||||||||||||||||||||||||
| 187 | if (!asn1_primitive_print(out, fld, it,
| 0 | ||||||||||||||||||||||||
| 188 | indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
| 189 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 190 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 191 | - | |||||||||||||||||||||||||
| 192 | case never executed: 0x4:case 0x4:never executed: case 0x4: | 0 | ||||||||||||||||||||||||
| 193 | if (!nohdr
| 0 | ||||||||||||||||||||||||
| 194 | !asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
| 195 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 196 | - | |||||||||||||||||||||||||
| 197 | ef = it->funcs; | - | ||||||||||||||||||||||||
| 198 | if (ef
| 0 | ||||||||||||||||||||||||
| 199 | i = ef->asn1_ex_print(out, fld, indent, "", pctx); | - | ||||||||||||||||||||||||
| 200 | if (!i
| 0 | ||||||||||||||||||||||||
| 201 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 202 | if ((
| 0 | ||||||||||||||||||||||||
| 203 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 204 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 205 | } else if (sname
| 0 | ||||||||||||||||||||||||
| 206 | BIO_printf(out, ":EXTERNAL TYPE %s\n", sname) <= 0
| 0 | ||||||||||||||||||||||||
| 207 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 208 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 209 | - | |||||||||||||||||||||||||
| 210 | case never executed: 0x2:case 0x2:never executed: case 0x2: | 0 | ||||||||||||||||||||||||
| 211 | - | |||||||||||||||||||||||||
| 212 | i = asn1_get_choice_selector(fld, it); | - | ||||||||||||||||||||||||
| 213 | - | |||||||||||||||||||||||||
| 214 | if ((
| 0 | ||||||||||||||||||||||||
| 215 | if (BIO_printf(out,
| 0 | ||||||||||||||||||||||||
| 216 | "ERROR: selector [%d] invalid\n", i) <= 0
| 0 | ||||||||||||||||||||||||
| 217 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 218 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 219 | } | - | ||||||||||||||||||||||||
| 220 | tt = it->templates + i; | - | ||||||||||||||||||||||||
| 221 | tmpfld = asn1_get_field_ptr(fld, tt); | - | ||||||||||||||||||||||||
| 222 | if (!asn1_template_print_ctx(out, tmpfld, indent, tt, pctx)
| 0 | ||||||||||||||||||||||||
| 223 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 224 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 225 | - | |||||||||||||||||||||||||
| 226 | case never executed: 0x1:case 0x1:never executed: case 0x1: | 0 | ||||||||||||||||||||||||
| 227 | case never executed: 0x6:case 0x6:never executed: case 0x6: | 0 | ||||||||||||||||||||||||
| 228 | if (!nohdr
| 0 | ||||||||||||||||||||||||
| 229 | !asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
| 230 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 231 | if (fname
| 0 | ||||||||||||||||||||||||
| 232 | if (pctx->flags & 0x002
| 0 | ||||||||||||||||||||||||
| 233 | if (BIO_puts(out, " {\n") <= 0
| 0 | ||||||||||||||||||||||||
| 234 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 235 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 236 | if (BIO_puts(out, "\n") <= 0
| 0 | ||||||||||||||||||||||||
| 237 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 238 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 239 | } | - | ||||||||||||||||||||||||
| 240 | - | |||||||||||||||||||||||||
| 241 | if (asn1_cb
| 0 | ||||||||||||||||||||||||
| 242 | i = asn1_cb(8, fld, it, &parg); | - | ||||||||||||||||||||||||
| 243 | if (i == 0
| 0 | ||||||||||||||||||||||||
| 244 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 245 | if (i == 2
| 0 | ||||||||||||||||||||||||
| 246 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 247 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 248 | - | |||||||||||||||||||||||||
| 249 | - | |||||||||||||||||||||||||
| 250 | for (i = 0, tt = it->templates; i < it->tcount
| 0 | ||||||||||||||||||||||||
| 251 | const ASN1_TEMPLATE *seqtt; | - | ||||||||||||||||||||||||
| 252 | - | |||||||||||||||||||||||||
| 253 | seqtt = asn1_do_adb(fld, tt, 1); | - | ||||||||||||||||||||||||
| 254 | if (seqtt ==
| 0 | ||||||||||||||||||||||||
| 255 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 256 | ) | - | ||||||||||||||||||||||||
| 257 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 258 | tmpfld = asn1_get_field_ptr(fld, seqtt); | - | ||||||||||||||||||||||||
| 259 | if (!asn1_template_print_ctx(out, tmpfld, indent + 2,
| 0 | ||||||||||||||||||||||||
| 260 | seqtt, pctx)
| 0 | ||||||||||||||||||||||||
| 261 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 262 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 263 | if (pctx->flags & 0x002
| 0 | ||||||||||||||||||||||||
| 264 | if (BIO_printf(out, "%*s}\n", indent, "") < 0
| 0 | ||||||||||||||||||||||||
| 265 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 266 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 267 | - | |||||||||||||||||||||||||
| 268 | if (asn1_cb
| 0 | ||||||||||||||||||||||||
| 269 | i = asn1_cb(9, fld, it, &parg); | - | ||||||||||||||||||||||||
| 270 | if (i == 0
| 0 | ||||||||||||||||||||||||
| 271 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 272 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 273 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 274 | - | |||||||||||||||||||||||||
| 275 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 276 | BIO_printf(out, "Unprocessed type %d\n", it->itype); | - | ||||||||||||||||||||||||
| 277 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 278 | } | - | ||||||||||||||||||||||||
| 279 | - | |||||||||||||||||||||||||
| 280 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 281 | } | - | ||||||||||||||||||||||||
| 282 | - | |||||||||||||||||||||||||
| 283 | int | - | ||||||||||||||||||||||||
| 284 | asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, | - | ||||||||||||||||||||||||
| 285 | const ASN1_TEMPLATE *tt, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 286 | { | - | ||||||||||||||||||||||||
| 287 | int i, flags; | - | ||||||||||||||||||||||||
| 288 | const char *sname, *fname; | - | ||||||||||||||||||||||||
| 289 | - | |||||||||||||||||||||||||
| 290 | flags = tt->flags; | - | ||||||||||||||||||||||||
| 291 | if (pctx->flags & 0x080
| 0 | ||||||||||||||||||||||||
| 292 | sname = tt->item->sname; never executed: sname = tt->item->sname; | 0 | ||||||||||||||||||||||||
| 293 | else | - | ||||||||||||||||||||||||
| 294 | sname = never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 295 | ((void *)0) never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 296 | ; never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 297 | if (pctx->flags & 0x040
| 0 | ||||||||||||||||||||||||
| 298 | fname = never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 299 | ((void *)0) never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 300 | ; never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 301 | else | - | ||||||||||||||||||||||||
| 302 | fname = tt->field_name; never executed: fname = tt->field_name; | 0 | ||||||||||||||||||||||||
| 303 | if (flags & (0x3 << 1)
| 0 | ||||||||||||||||||||||||
| 304 | char *tname; | - | ||||||||||||||||||||||||
| 305 | ASN1_VALUE *skitem; | - | ||||||||||||||||||||||||
| 306 | struct stack_st_ASN1_VALUE *stack; | - | ||||||||||||||||||||||||
| 307 | - | |||||||||||||||||||||||||
| 308 | - | |||||||||||||||||||||||||
| 309 | if (fname
| 0 | ||||||||||||||||||||||||
| 310 | if (pctx->flags & 0x004
| 0 | ||||||||||||||||||||||||
| 311 | if (flags & (0x1 << 1)
| 0 | ||||||||||||||||||||||||
| 312 | tname = "SET"; never executed: tname = "SET"; | 0 | ||||||||||||||||||||||||
| 313 | else | - | ||||||||||||||||||||||||
| 314 | tname = "SEQUENCE"; never executed: tname = "SEQUENCE"; | 0 | ||||||||||||||||||||||||
| 315 | if (BIO_printf(out, "%*s%s OF %s {\n",
| 0 | ||||||||||||||||||||||||
| 316 | indent, "", tname, tt->field_name) <= 0
| 0 | ||||||||||||||||||||||||
| 317 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 318 | } never executed: else if (BIO_printf(out, "%*s%s:\n", indent, "",end of block
| 0 | ||||||||||||||||||||||||
| 319 | fname) <= 0
| 0 | ||||||||||||||||||||||||
| 320 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 321 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 322 | stack = (struct stack_st_ASN1_VALUE *)*fld; | - | ||||||||||||||||||||||||
| 323 | for (i = 0; i < sk_num(((_STACK*) (1 ? (stack) : (struct stack_st_ASN1_VALUE*)0)))
| 0 | ||||||||||||||||||||||||
| 324 | if ((
| 0 | ||||||||||||||||||||||||
| 325 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 326 | skitem = ((ASN1_VALUE *)sk_value(((_STACK*) (1 ? (stack) : (struct stack_st_ASN1_VALUE*)0)), (i))); | - | ||||||||||||||||||||||||
| 327 | if (!asn1_item_print_ctx(out, &skitem, indent + 2,
| 0 | ||||||||||||||||||||||||
| 328 | tt->item,
| 0 | ||||||||||||||||||||||||
| 329 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 330 | ,
| 0 | ||||||||||||||||||||||||
| 331 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 332 | , 1, pctx)
| 0 | ||||||||||||||||||||||||
| 333 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 334 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 335 | if (!i
| 0 | ||||||||||||||||||||||||
| 336 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 337 | if (pctx->flags & 0x002
| 0 | ||||||||||||||||||||||||
| 338 | if (BIO_printf(out, "%*s}\n", indent, "") <= 0
| 0 | ||||||||||||||||||||||||
| 339 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 340 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 341 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 342 | } | - | ||||||||||||||||||||||||
| 343 | return never executed: asn1_item_print_ctx(out, fld, indent, tt->item,return asn1_item_print_ctx(out, fld, indent, tt->item, fname, sname, 0, pctx);never executed: return asn1_item_print_ctx(out, fld, indent, tt->item, fname, sname, 0, pctx); | 0 | ||||||||||||||||||||||||
| 344 | fname, sname, 0, pctx); never executed: return asn1_item_print_ctx(out, fld, indent, tt->item, fname, sname, 0, pctx); | 0 | ||||||||||||||||||||||||
| 345 | } | - | ||||||||||||||||||||||||
| 346 | - | |||||||||||||||||||||||||
| 347 | static int | - | ||||||||||||||||||||||||
| 348 | asn1_print_fsname(BIO *out, int indent, const char *fname, const char *sname, | - | ||||||||||||||||||||||||
| 349 | const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 350 | { | - | ||||||||||||||||||||||||
| 351 | static char spaces[] = " "; | - | ||||||||||||||||||||||||
| 352 | const int nspaces = sizeof(spaces) - 1; | - | ||||||||||||||||||||||||
| 353 | - | |||||||||||||||||||||||||
| 354 | while (indent > nspaces
| 0 | ||||||||||||||||||||||||
| 355 | if (BIO_write(out, spaces, nspaces) != nspaces
| 0 | ||||||||||||||||||||||||
| 356 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 357 | indent -= nspaces; | - | ||||||||||||||||||||||||
| 358 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 359 | if (BIO_write(out, spaces, indent) != indent
| 0 | ||||||||||||||||||||||||
| 360 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 361 | if (pctx->flags & 0x100
| 0 | ||||||||||||||||||||||||
| 362 | sname = never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 363 | ((void *)0) never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 364 | ; never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 365 | if (pctx->flags & 0x040
| 0 | ||||||||||||||||||||||||
| 366 | fname = never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 367 | ((void *)0) never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 368 | ; never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 369 | if (!sname
| 0 | ||||||||||||||||||||||||
| 370 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 371 | if (fname
| 0 | ||||||||||||||||||||||||
| 372 | if (BIO_puts(out, fname) <= 0
| 0 | ||||||||||||||||||||||||
| 373 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 374 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 375 | if (sname
| 0 | ||||||||||||||||||||||||
| 376 | if (fname
| 0 | ||||||||||||||||||||||||
| 377 | if (BIO_printf(out, " (%s)", sname) <= 0
| 0 | ||||||||||||||||||||||||
| 378 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 379 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 380 | if (BIO_puts(out, sname) <= 0
| 0 | ||||||||||||||||||||||||
| 381 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 382 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 383 | } | - | ||||||||||||||||||||||||
| 384 | if (BIO_write(out, ": ", 2) != 2
| 0 | ||||||||||||||||||||||||
| 385 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 386 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 387 | } | - | ||||||||||||||||||||||||
| 388 | - | |||||||||||||||||||||||||
| 389 | static int | - | ||||||||||||||||||||||||
| 390 | asn1_print_boolean_ctx(BIO *out, int boolval, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 391 | { | - | ||||||||||||||||||||||||
| 392 | const char *str; | - | ||||||||||||||||||||||||
| 393 | switch (boolval) { | - | ||||||||||||||||||||||||
| 394 | case never executed: -1:case -1:never executed: case -1: | 0 | ||||||||||||||||||||||||
| 395 | str = "BOOL ABSENT"; | - | ||||||||||||||||||||||||
| 396 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 397 | - | |||||||||||||||||||||||||
| 398 | case never executed: 0:case 0:never executed: case 0: | 0 | ||||||||||||||||||||||||
| 399 | str = "FALSE"; | - | ||||||||||||||||||||||||
| 400 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 401 | - | |||||||||||||||||||||||||
| 402 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 403 | str = "TRUE"; | - | ||||||||||||||||||||||||
| 404 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 405 | - | |||||||||||||||||||||||||
| 406 | } | - | ||||||||||||||||||||||||
| 407 | - | |||||||||||||||||||||||||
| 408 | if (BIO_puts(out, str) <= 0
| 0 | ||||||||||||||||||||||||
| 409 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 410 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 411 | - | |||||||||||||||||||||||||
| 412 | } | - | ||||||||||||||||||||||||
| 413 | - | |||||||||||||||||||||||||
| 414 | static int | - | ||||||||||||||||||||||||
| 415 | asn1_print_integer_ctx(BIO *out, ASN1_INTEGER *str, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 416 | { | - | ||||||||||||||||||||||||
| 417 | char *s; | - | ||||||||||||||||||||||||
| 418 | int ret = 1; | - | ||||||||||||||||||||||||
| 419 | s = i2s_ASN1_INTEGER( | - | ||||||||||||||||||||||||
| 420 | ((void *)0) | - | ||||||||||||||||||||||||
| 421 | , str); | - | ||||||||||||||||||||||||
| 422 | if (BIO_puts(out, s) <= 0
| 0 | ||||||||||||||||||||||||
| 423 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||||||||
| 424 | free(s); | - | ||||||||||||||||||||||||
| 425 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||||||||
| 426 | } | - | ||||||||||||||||||||||||
| 427 | - | |||||||||||||||||||||||||
| 428 | static int | - | ||||||||||||||||||||||||
| 429 | asn1_print_oid_ctx(BIO *out, const ASN1_OBJECT *oid, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 430 | { | - | ||||||||||||||||||||||||
| 431 | char objbuf[80]; | - | ||||||||||||||||||||||||
| 432 | const char *ln; | - | ||||||||||||||||||||||||
| 433 | ln = OBJ_nid2ln(OBJ_obj2nid(oid)); | - | ||||||||||||||||||||||||
| 434 | if (!ln
| 0 | ||||||||||||||||||||||||
| 435 | ln = ""; never executed: ln = ""; | 0 | ||||||||||||||||||||||||
| 436 | OBJ_obj2txt(objbuf, sizeof objbuf, oid, 1); | - | ||||||||||||||||||||||||
| 437 | if (BIO_printf(out, "%s (%s)", ln, objbuf) <= 0
| 0 | ||||||||||||||||||||||||
| 438 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 439 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 440 | } | - | ||||||||||||||||||||||||
| 441 | - | |||||||||||||||||||||||||
| 442 | static int | - | ||||||||||||||||||||||||
| 443 | asn1_print_obstring_ctx(BIO *out, ASN1_STRING *str, int indent, | - | ||||||||||||||||||||||||
| 444 | const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 445 | { | - | ||||||||||||||||||||||||
| 446 | if (str->type == 3
| 0 | ||||||||||||||||||||||||
| 447 | if (BIO_printf(out, " (%ld unused bits)\n",
| 0 | ||||||||||||||||||||||||
| 448 | str->flags & 0x7) <= 0
| 0 | ||||||||||||||||||||||||
| 449 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 450 | } never executed: else if (BIO_puts(out, "\n") <= 0end of block
| 0 | ||||||||||||||||||||||||
| 451 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 452 | if ((
| 0 | ||||||||||||||||||||||||
| 453 | BIO_dump_indent(out, (char *)str->data, str->length,
| 0 | ||||||||||||||||||||||||
| 454 | indent + 2) <= 0
| 0 | ||||||||||||||||||||||||
| 455 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 456 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 457 | } | - | ||||||||||||||||||||||||
| 458 | - | |||||||||||||||||||||||||
| 459 | static int | - | ||||||||||||||||||||||||
| 460 | asn1_primitive_print(BIO *out, ASN1_VALUE **fld, const ASN1_ITEM *it, | - | ||||||||||||||||||||||||
| 461 | int indent, const char *fname, const char *sname, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
| 462 | { | - | ||||||||||||||||||||||||
| 463 | long utype; | - | ||||||||||||||||||||||||
| 464 | ASN1_STRING *str; | - | ||||||||||||||||||||||||
| 465 | int ret = 1, needlf = 1; | - | ||||||||||||||||||||||||
| 466 | const char *pname; | - | ||||||||||||||||||||||||
| 467 | const ASN1_PRIMITIVE_FUNCS *pf; | - | ||||||||||||||||||||||||
| 468 | - | |||||||||||||||||||||||||
| 469 | pf = it->funcs; | - | ||||||||||||||||||||||||
| 470 | if (!asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
| 471 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 472 | if (pf
| 0 | ||||||||||||||||||||||||
| 473 | return never executed: pf->prim_print(out, fld, it, indent, pctx);return pf->prim_print(out, fld, it, indent, pctx);never executed: return pf->prim_print(out, fld, it, indent, pctx); | 0 | ||||||||||||||||||||||||
| 474 | str = (ASN1_STRING *)*fld; | - | ||||||||||||||||||||||||
| 475 | if (it->itype == 0x5
| 0 | ||||||||||||||||||||||||
| 476 | utype = str->type & ~0x100; never executed: utype = str->type & ~0x100; | 0 | ||||||||||||||||||||||||
| 477 | else | - | ||||||||||||||||||||||||
| 478 | utype = it->utype; never executed: utype = it->utype; | 0 | ||||||||||||||||||||||||
| 479 | if (utype == -4
| 0 | ||||||||||||||||||||||||
| 480 | ASN1_TYPE *atype = (ASN1_TYPE *)*fld; | - | ||||||||||||||||||||||||
| 481 | utype = atype->type; | - | ||||||||||||||||||||||||
| 482 | fld = &atype->value.asn1_value; | - | ||||||||||||||||||||||||
| 483 | str = (ASN1_STRING *)*fld; | - | ||||||||||||||||||||||||
| 484 | if (pctx->flags & 0x010
| 0 | ||||||||||||||||||||||||
| 485 | pname = never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 486 | ((void *)0) never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 487 | ; never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 488 | else | - | ||||||||||||||||||||||||
| 489 | pname = ASN1_tag2str(utype); never executed: pname = ASN1_tag2str(utype); | 0 | ||||||||||||||||||||||||
| 490 | } else { | - | ||||||||||||||||||||||||
| 491 | if (pctx->flags & 0x008
| 0 | ||||||||||||||||||||||||
| 492 | pname = ASN1_tag2str(utype); never executed: pname = ASN1_tag2str(utype); | 0 | ||||||||||||||||||||||||
| 493 | else | - | ||||||||||||||||||||||||
| 494 | pname = never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 495 | ((void *)0) never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 496 | ; never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 497 | } | - | ||||||||||||||||||||||||
| 498 | - | |||||||||||||||||||||||||
| 499 | if (utype == 5
| 0 | ||||||||||||||||||||||||
| 500 | if (BIO_puts(out, "NULL\n") <= 0
| 0 | ||||||||||||||||||||||||
| 501 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 502 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 503 | } | - | ||||||||||||||||||||||||
| 504 | - | |||||||||||||||||||||||||
| 505 | if (pname
| 0 | ||||||||||||||||||||||||
| 506 | if (BIO_puts(out, pname) <= 0
| 0 | ||||||||||||||||||||||||
| 507 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 508 | if (BIO_puts(out, ":") <= 0
| 0 | ||||||||||||||||||||||||
| 509 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 510 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 511 | - | |||||||||||||||||||||||||
| 512 | switch (utype) { | - | ||||||||||||||||||||||||
| 513 | case never executed: 1:case 1:never executed: case 1: | 0 | ||||||||||||||||||||||||
| 514 | { | - | ||||||||||||||||||||||||
| 515 | int boolval = *(int *)fld; | - | ||||||||||||||||||||||||
| 516 | if (boolval == -1
| 0 | ||||||||||||||||||||||||
| 517 | boolval = it->size; never executed: boolval = it->size; | 0 | ||||||||||||||||||||||||
| 518 | ret = asn1_print_boolean_ctx(out, boolval, pctx); | - | ||||||||||||||||||||||||
| 519 | } | - | ||||||||||||||||||||||||
| 520 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 521 | - | |||||||||||||||||||||||||
| 522 | case never executed: 2:case 2:never executed: case 2: | 0 | ||||||||||||||||||||||||
| 523 | case never executed: 10:case 10:never executed: case 10: | 0 | ||||||||||||||||||||||||
| 524 | ret = asn1_print_integer_ctx(out, str, pctx); | - | ||||||||||||||||||||||||
| 525 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 526 | - | |||||||||||||||||||||||||
| 527 | case never executed: 23:case 23:never executed: case 23: | 0 | ||||||||||||||||||||||||
| 528 | ret = ASN1_UTCTIME_print(out, str); | - | ||||||||||||||||||||||||
| 529 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 530 | - | |||||||||||||||||||||||||
| 531 | case never executed: 24:case 24:never executed: case 24: | 0 | ||||||||||||||||||||||||
| 532 | ret = ASN1_GENERALIZEDTIME_print(out, str); | - | ||||||||||||||||||||||||
| 533 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 534 | - | |||||||||||||||||||||||||
| 535 | case never executed: 6:case 6:never executed: case 6: | 0 | ||||||||||||||||||||||||
| 536 | ret = asn1_print_oid_ctx(out, (const ASN1_OBJECT *)*fld, pctx); | - | ||||||||||||||||||||||||
| 537 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 538 | - | |||||||||||||||||||||||||
| 539 | case never executed: 4:case 4:never executed: case 4: | 0 | ||||||||||||||||||||||||
| 540 | case never executed: 3:case 3:never executed: case 3: | 0 | ||||||||||||||||||||||||
| 541 | ret = asn1_print_obstring_ctx(out, str, indent, pctx); | - | ||||||||||||||||||||||||
| 542 | needlf = 0; | - | ||||||||||||||||||||||||
| 543 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 544 | - | |||||||||||||||||||||||||
| 545 | case never executed: 16:case 16:never executed: case 16: | 0 | ||||||||||||||||||||||||
| 546 | case never executed: 17:case 17:never executed: case 17: | 0 | ||||||||||||||||||||||||
| 547 | case never executed: -3:case -3:never executed: case -3: | 0 | ||||||||||||||||||||||||
| 548 | if (BIO_puts(out, "\n") <= 0
| 0 | ||||||||||||||||||||||||
| 549 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 550 | if (ASN1_parse_dump(out, str->data, str->length,
| 0 | ||||||||||||||||||||||||
| 551 | indent, 0) <= 0
| 0 | ||||||||||||||||||||||||
| 552 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||||||||
| 553 | needlf = 0; | - | ||||||||||||||||||||||||
| 554 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 555 | - | |||||||||||||||||||||||||
| 556 | default never executed: :default:never executed: default: | 0 | ||||||||||||||||||||||||
| 557 | ret = ASN1_STRING_print_ex(out, str, pctx->str_flags); | - | ||||||||||||||||||||||||
| 558 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 559 | if (!ret
| 0 | ||||||||||||||||||||||||
| 560 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 561 | if (needlf
| 0 | ||||||||||||||||||||||||
| 562 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 563 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 564 | } | - | ||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |