Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | int | - |
6 | i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a) | - |
7 | { | - |
8 | int i, n = 0; | - |
9 | static const char h[] = "0123456789ABCDEF"; | - |
10 | char buf[2]; | - |
11 | | - |
12 | if (a == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
13 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
14 | ) | - |
15 | return never executed: return (0); (0);never executed: return (0); | 0 |
16 | | - |
17 | if (a->length == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
18 | if (BIO_write(bp, "00", 2) != 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
19 | goto never executed: goto err; err;never executed: goto err; | 0 |
20 | n = 2; | - |
21 | } never executed: end of block else { | 0 |
22 | for (i = 0; i < a->lengthTRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
23 | if ((TRUE | never evaluated | FALSE | never evaluated |
i != 0)TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
i % 35 == 0)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
24 | if (BIO_write(bp, "\\\n", 2) != 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
25 | goto never executed: goto err; err;never executed: goto err; | 0 |
26 | n += 2; | - |
27 | } never executed: end of block | 0 |
28 | buf[0] = h[((unsigned char)a->data[i] >> 4) & 0x0f]; | - |
29 | buf[1] = h[((unsigned char)a->data[i]) & 0x0f]; | - |
30 | if (BIO_write(bp, buf, 2) != 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
31 | goto never executed: goto err; err;never executed: goto err; | 0 |
32 | n += 2; | - |
33 | } never executed: end of block | 0 |
34 | } never executed: end of block | 0 |
35 | return never executed: return (n); (n);never executed: return (n); | 0 |
36 | | - |
37 | err: | - |
38 | return never executed: return (-1); (-1);never executed: return (-1); | 0 |
39 | } | - |
40 | | - |
41 | int | - |
42 | a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size) | - |
43 | { | - |
44 | int ret = 0; | - |
45 | int i, j,k, m,n, again, bufsize; | - |
46 | unsigned char *s = | - |
47 | ((void *)0) | - |
48 | , *sp; | - |
49 | unsigned char *bufp; | - |
50 | int first = 1; | - |
51 | size_t num = 0, slen = 0; | - |
52 | | - |
53 | bs->type = 10; | - |
54 | | - |
55 | bufsize = BIO_gets(bp, buf, size); | - |
56 | for (;;) { | - |
57 | if (bufsize < 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
58 | goto never executed: goto err_sl; err_sl;never executed: goto err_sl; | 0 |
59 | i = bufsize; | - |
60 | if (buf[i-1] == '\n'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
61 | buf[--i] = '\0'; never executed: buf[--i] = '\0'; | 0 |
62 | if (i == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
63 | goto never executed: goto err_sl; err_sl;never executed: goto err_sl; | 0 |
64 | if (buf[i-1] == '\r'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
65 | buf[--i] = '\0'; never executed: buf[--i] = '\0'; | 0 |
66 | if (i == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
67 | goto never executed: goto err_sl; err_sl;never executed: goto err_sl; | 0 |
68 | again = (buf[i - 1] == '\\'); | - |
69 | | - |
70 | for (j = 0; j < iTRUE | never evaluated | FALSE | never evaluated |
; j++) { | 0 |
71 | if (!(((TRUE | never evaluated | FALSE | never evaluated |
buf[j] >= '0')TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
buf[j] <= '9')TRUE | never evaluated | FALSE | never evaluated |
) || | 0 |
72 | ((TRUE | never evaluated | FALSE | never evaluated |
buf[j] >= 'a')TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
buf[j] <= 'f')TRUE | never evaluated | FALSE | never evaluated |
) || | 0 |
73 | ((TRUE | never evaluated | FALSE | never evaluated |
buf[j] >= 'A')TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
buf[j] <= 'F')TRUE | never evaluated | FALSE | never evaluated |
))) { | 0 |
74 | i = j; | - |
75 | break; never executed: break; | 0 |
76 | } | - |
77 | } never executed: end of block | 0 |
78 | buf[i] = '\0'; | - |
79 | | - |
80 | | - |
81 | if (i < 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
82 | goto never executed: goto err_sl; err_sl;never executed: goto err_sl; | 0 |
83 | | - |
84 | bufp = (unsigned char *)buf; | - |
85 | if (firstTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
86 | first = 0; | - |
87 | if ((TRUE | never evaluated | FALSE | never evaluated |
bufp[0] == '0')TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
buf[1] == '0')TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
88 | bufp += 2; | - |
89 | i -= 2; | - |
90 | } never executed: end of block | 0 |
91 | } never executed: end of block | 0 |
92 | k = 0; | - |
93 | i -= again; | - |
94 | if (i % 2 != 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
95 | ERR_put_error(13,(0xfff),(145),__FILE__,153); | - |
96 | goto never executed: goto err; err;never executed: goto err; | 0 |
97 | } | - |
98 | i /= 2; | - |
99 | if (num + i > slenTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
100 | sp = realloc(s, num + i); | - |
101 | if (sp == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
102 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
103 | ) { | - |
104 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,160); | - |
105 | goto never executed: goto err; err;never executed: goto err; | 0 |
106 | } | - |
107 | s = sp; | - |
108 | slen = num + i; | - |
109 | } never executed: end of block | 0 |
110 | for (j = 0; j < iTRUE | never evaluated | FALSE | never evaluated |
; j++, k += 2) { | 0 |
111 | for (n = 0; n < 2TRUE | never evaluated | FALSE | never evaluated |
; n++) { | 0 |
112 | m = bufp[k + n]; | - |
113 | if ((TRUE | never evaluated | FALSE | never evaluated |
m >= '0')TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
m <= '9')TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
114 | m -= '0'; never executed: m -= '0'; | 0 |
115 | else if ((TRUE | never evaluated | FALSE | never evaluated |
m >= 'a')TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
m <= 'f')TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
116 | m = m - 'a' + 10; never executed: m = m - 'a' + 10; | 0 |
117 | else if ((TRUE | never evaluated | FALSE | never evaluated |
m >= 'A')TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
m <= 'F')TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
118 | m = m - 'A' + 10; never executed: m = m - 'A' + 10; | 0 |
119 | else { | - |
120 | ERR_put_error(13,(0xfff),(141),__FILE__,176); | - |
121 | goto never executed: goto err; err;never executed: goto err; | 0 |
122 | } | - |
123 | s[num + j] <<= 4; | - |
124 | s[num + j] |= m; | - |
125 | } never executed: end of block | 0 |
126 | } never executed: end of block | 0 |
127 | num += i; | - |
128 | if (againTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
129 | bufsize = BIO_gets(bp, buf, size); never executed: bufsize = BIO_gets(bp, buf, size); | 0 |
130 | else | - |
131 | break; never executed: break; | 0 |
132 | } | - |
133 | bs->length = num; | - |
134 | bs->data = s; | - |
135 | return never executed: return (1); (1);never executed: return (1); | 0 |
136 | | - |
137 | err_sl: | - |
138 | ERR_put_error(13,(0xfff),(150),__FILE__,194); | - |
139 | err: code before this statement never executed: err: | 0 |
140 | free(s); | - |
141 | return never executed: return (ret); (ret);never executed: return (ret); | 0 |
142 | } | - |
| | |