Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/a_enum.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | - | |||||||||||||
7 | - | |||||||||||||
8 | - | |||||||||||||
9 | int | - | ||||||||||||
10 | ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v) | - | ||||||||||||
11 | { | - | ||||||||||||
12 | int j, k; | - | ||||||||||||
13 | unsigned int i; | - | ||||||||||||
14 | unsigned char buf[sizeof(long) + 1]; | - | ||||||||||||
15 | long d; | - | ||||||||||||
16 | - | |||||||||||||
17 | a->type = 10; | - | ||||||||||||
18 | if (a->length < (int)(sizeof(long) + 1)
| 0 | ||||||||||||
19 | free(a->data); | - | ||||||||||||
20 | a->data = calloc(1, sizeof(long) + 1); | - | ||||||||||||
21 | } never executed: end of block | 0 | ||||||||||||
22 | if (a->data ==
| 0 | ||||||||||||
23 | ((void *)0)
| 0 | ||||||||||||
24 | ) { | - | ||||||||||||
25 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,84); | - | ||||||||||||
26 | return never executed: (0);return (0); never executed: return (0); | 0 | ||||||||||||
27 | } | - | ||||||||||||
28 | d = v; | - | ||||||||||||
29 | if (d < 0
| 0 | ||||||||||||
30 | d = -d; | - | ||||||||||||
31 | a->type = (10 | 0x100); | - | ||||||||||||
32 | } never executed: end of block | 0 | ||||||||||||
33 | - | |||||||||||||
34 | for (i = 0; i < sizeof(long)
| 0 | ||||||||||||
35 | if (d == 0
| 0 | ||||||||||||
36 | break; never executed: break; | 0 | ||||||||||||
37 | buf[i] = (int)d & 0xff; | - | ||||||||||||
38 | d >>= 8; | - | ||||||||||||
39 | } never executed: end of block | 0 | ||||||||||||
40 | j = 0; | - | ||||||||||||
41 | for (k = i - 1; k >= 0
| 0 | ||||||||||||
42 | a->data[j++] = buf[k]; never executed: a->data[j++] = buf[k]; | 0 | ||||||||||||
43 | a->length = j; | - | ||||||||||||
44 | return never executed: (1);return (1); never executed: return (1); | 0 | ||||||||||||
45 | } | - | ||||||||||||
46 | - | |||||||||||||
47 | long | - | ||||||||||||
48 | ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a) | - | ||||||||||||
49 | { | - | ||||||||||||
50 | int neg = 0, i; | - | ||||||||||||
51 | long r = 0; | - | ||||||||||||
52 | - | |||||||||||||
53 | if (a ==
| 0 | ||||||||||||
54 | ((void *)0)
| 0 | ||||||||||||
55 | ) | - | ||||||||||||
56 | return never executed: (0L);return (0L); never executed: return (0L); | 0 | ||||||||||||
57 | i = a->type; | - | ||||||||||||
58 | if (i == (10 | 0x100)
| 0 | ||||||||||||
59 | neg = 1; never executed: neg = 1; | 0 | ||||||||||||
60 | else if (i != 10
| 0 | ||||||||||||
61 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||
62 | - | |||||||||||||
63 | if (a->length > (int)sizeof(long)
| 0 | ||||||||||||
64 | - | |||||||||||||
65 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||
66 | } | - | ||||||||||||
67 | if (a->data ==
| 0 | ||||||||||||
68 | ((void *)0)
| 0 | ||||||||||||
69 | ) | - | ||||||||||||
70 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
71 | - | |||||||||||||
72 | for (i = 0; i < a->length
| 0 | ||||||||||||
73 | r <<= 8; | - | ||||||||||||
74 | r |= (unsigned char)a->data[i]; | - | ||||||||||||
75 | } never executed: end of block | 0 | ||||||||||||
76 | if (neg
| 0 | ||||||||||||
77 | r = -r; never executed: r = -r; | 0 | ||||||||||||
78 | return never executed: (r);return (r); never executed: return (r); | 0 | ||||||||||||
79 | } | - | ||||||||||||
80 | - | |||||||||||||
81 | ASN1_ENUMERATED * | - | ||||||||||||
82 | BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai) | - | ||||||||||||
83 | { | - | ||||||||||||
84 | ASN1_ENUMERATED *ret; | - | ||||||||||||
85 | int len, j; | - | ||||||||||||
86 | - | |||||||||||||
87 | if (ai ==
| 0 | ||||||||||||
88 | ((void *)0)
| 0 | ||||||||||||
89 | ) | - | ||||||||||||
90 | ret = ASN1_ENUMERATED_new(); never executed: ret = ASN1_ENUMERATED_new(); | 0 | ||||||||||||
91 | else | - | ||||||||||||
92 | ret = ai; never executed: ret = ai; | 0 | ||||||||||||
93 | if (ret ==
| 0 | ||||||||||||
94 | ((void *)0)
| 0 | ||||||||||||
95 | ) { | - | ||||||||||||
96 | ERR_put_error(13,(0xfff),(58),__FILE__,147); | - | ||||||||||||
97 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
98 | } | - | ||||||||||||
99 | if (((
| 0 | ||||||||||||
100 | ret->type = (10 | 0x100); never executed: ret->type = (10 | 0x100); | 0 | ||||||||||||
101 | else | - | ||||||||||||
102 | ret->type = 10; never executed: ret->type = 10; | 0 | ||||||||||||
103 | j = BN_num_bits(bn); | - | ||||||||||||
104 | len = ((
| 0 | ||||||||||||
105 | if (ret->length < len + 4
| 0 | ||||||||||||
106 | unsigned char *new_data = realloc(ret->data, len + 4); | - | ||||||||||||
107 | if (!new_data
| 0 | ||||||||||||
108 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,159); | - | ||||||||||||
109 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
110 | } | - | ||||||||||||
111 | ret->data = new_data; | - | ||||||||||||
112 | } never executed: end of block | 0 | ||||||||||||
113 | ret->length = BN_bn2bin(bn, ret->data); | - | ||||||||||||
114 | - | |||||||||||||
115 | - | |||||||||||||
116 | if (!ret->length
| 0 | ||||||||||||
117 | ret->data[0] = 0; | - | ||||||||||||
118 | ret->length = 1; | - | ||||||||||||
119 | } never executed: end of block | 0 | ||||||||||||
120 | return never executed: (ret);return (ret); never executed: return (ret); | 0 | ||||||||||||
121 | - | |||||||||||||
122 | err: | - | ||||||||||||
123 | if (ret != ai
| 0 | ||||||||||||
124 | ASN1_ENUMERATED_free(ret); never executed: ASN1_ENUMERATED_free(ret); | 0 | ||||||||||||
125 | return never executed: (return ( ((void *)0) ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
126 | ((void *)0) never executed: return ( ((void *)0) ); | 0 | ||||||||||||
127 | ); never executed: return ( ((void *)0) ); | 0 | ||||||||||||
128 | } | - | ||||||||||||
129 | - | |||||||||||||
130 | BIGNUM * | - | ||||||||||||
131 | ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn) | - | ||||||||||||
132 | { | - | ||||||||||||
133 | BIGNUM *ret; | - | ||||||||||||
134 | - | |||||||||||||
135 | if ((
| 0 | ||||||||||||
136 | ((void *)0)
| 0 | ||||||||||||
137 | ) | - | ||||||||||||
138 | ERR_put_error(13,(0xfff),(105),__FILE__,185); never executed: ERR_put_error(13,(0xfff),(105),__FILE__,185); | 0 | ||||||||||||
139 | else if (ai->type == (10 | 0x100)
| 0 | ||||||||||||
140 | BN_set_negative(ret, 1); never executed: BN_set_negative(ret, 1); | 0 | ||||||||||||
141 | return never executed: (ret);return (ret); never executed: return (ret); | 0 | ||||||||||||
142 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |