diff options
author | tedu <> | 2014-04-18 00:10:08 +0000 |
---|---|---|
committer | tedu <> | 2014-04-18 00:10:08 +0000 |
commit | 07f5c09b19f56c323fa22ebd5efb5a4df9f5dc4d (patch) | |
tree | 6327d50d69a1982f840dc68fe928ea459e2c41e0 /src/lib/libcrypto/asn1/a_int.c | |
parent | 288a9e368d9d4a72792b12a00ad69e3592d94073 (diff) | |
download | openbsd-07f5c09b19f56c323fa22ebd5efb5a4df9f5dc4d.tar.gz openbsd-07f5c09b19f56c323fa22ebd5efb5a4df9f5dc4d.tar.bz2 openbsd-07f5c09b19f56c323fa22ebd5efb5a4df9f5dc4d.zip |
putting most of the braces in the right column is the very least we can do.
Diffstat (limited to 'src/lib/libcrypto/asn1/a_int.c')
-rw-r--r-- | src/lib/libcrypto/asn1/a_int.c | 140 |
1 files changed, 70 insertions, 70 deletions
diff --git a/src/lib/libcrypto/asn1/a_int.c b/src/lib/libcrypto/asn1/a_int.c index 6c38ace8f9..f41d462ffe 100644 --- a/src/lib/libcrypto/asn1/a_int.c +++ b/src/lib/libcrypto/asn1/a_int.c | |||
@@ -65,17 +65,17 @@ ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x) | |||
65 | { return M_ASN1_INTEGER_dup(x);} | 65 | { return M_ASN1_INTEGER_dup(x);} |
66 | 66 | ||
67 | int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y) | 67 | int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y) |
68 | { | 68 | { |
69 | int neg, ret; | 69 | int neg, ret; |
70 | /* Compare signs */ | 70 | /* Compare signs */ |
71 | neg = x->type & V_ASN1_NEG; | 71 | neg = x->type & V_ASN1_NEG; |
72 | if (neg != (y->type & V_ASN1_NEG)) | 72 | if (neg != (y->type & V_ASN1_NEG)) |
73 | { | 73 | { |
74 | if (neg) | 74 | if (neg) |
75 | return -1; | 75 | return -1; |
76 | else | 76 | else |
77 | return 1; | 77 | return 1; |
78 | } | 78 | } |
79 | 79 | ||
80 | ret = ASN1_STRING_cmp(x, y); | 80 | ret = ASN1_STRING_cmp(x, y); |
81 | 81 | ||
@@ -83,7 +83,7 @@ int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y) | |||
83 | return -ret; | 83 | return -ret; |
84 | else | 84 | else |
85 | return ret; | 85 | return ret; |
86 | } | 86 | } |
87 | 87 | ||
88 | 88 | ||
89 | /* | 89 | /* |
@@ -112,7 +112,7 @@ int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y) | |||
112 | */ | 112 | */ |
113 | 113 | ||
114 | int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp) | 114 | int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp) |
115 | { | 115 | { |
116 | int pad=0,ret,i,neg; | 116 | int pad=0,ret,i,neg; |
117 | unsigned char *p,*n,pb=0; | 117 | unsigned char *p,*n,pb=0; |
118 | 118 | ||
@@ -121,17 +121,17 @@ int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp) | |||
121 | if (a->length == 0) | 121 | if (a->length == 0) |
122 | ret=1; | 122 | ret=1; |
123 | else | 123 | else |
124 | { | 124 | { |
125 | ret=a->length; | 125 | ret=a->length; |
126 | i=a->data[0]; | 126 | i=a->data[0]; |
127 | if (!neg && (i > 127)) { | 127 | if (!neg && (i > 127)) { |
128 | pad=1; | 128 | pad=1; |
129 | pb=0; | 129 | pb=0; |
130 | } else if(neg) { | 130 | } else if(neg) { |
131 | if(i>128) { | 131 | if(i>128) { |
132 | pad=1; | 132 | pad=1; |
133 | pb=0xFF; | 133 | pb=0xFF; |
134 | } else if(i == 128) { | 134 | } else if(i == 128) { |
135 | /* | 135 | /* |
136 | * Special case: if any other bytes non zero we pad: | 136 | * Special case: if any other bytes non zero we pad: |
137 | * otherwise we don't. | 137 | * otherwise we don't. |
@@ -140,11 +140,11 @@ int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp) | |||
140 | pad=1; | 140 | pad=1; |
141 | pb=0xFF; | 141 | pb=0xFF; |
142 | break; | 142 | break; |
143 | } | ||
144 | } | 143 | } |
145 | } | 144 | } |
145 | } | ||
146 | ret+=pad; | 146 | ret+=pad; |
147 | } | 147 | } |
148 | if (pp == NULL) return(ret); | 148 | if (pp == NULL) return(ret); |
149 | p= *pp; | 149 | p= *pp; |
150 | 150 | ||
@@ -161,33 +161,33 @@ int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp) | |||
161 | *(p--) = 0; | 161 | *(p--) = 0; |
162 | n--; | 162 | n--; |
163 | i--; | 163 | i--; |
164 | } | 164 | } |
165 | /* Complement and increment next octet */ | 165 | /* Complement and increment next octet */ |
166 | *(p--) = ((*(n--)) ^ 0xff) + 1; | 166 | *(p--) = ((*(n--)) ^ 0xff) + 1; |
167 | i--; | 167 | i--; |
168 | /* Complement any octets left */ | 168 | /* Complement any octets left */ |
169 | for(;i > 0; i--) *(p--) = *(n--) ^ 0xff; | 169 | for(;i > 0; i--) *(p--) = *(n--) ^ 0xff; |
170 | } | 170 | } |
171 | 171 | ||
172 | *pp+=ret; | 172 | *pp+=ret; |
173 | return(ret); | 173 | return(ret); |
174 | } | 174 | } |
175 | 175 | ||
176 | /* Convert just ASN1 INTEGER content octets to ASN1_INTEGER structure */ | 176 | /* Convert just ASN1 INTEGER content octets to ASN1_INTEGER structure */ |
177 | 177 | ||
178 | ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, | 178 | ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, |
179 | long len) | 179 | long len) |
180 | { | 180 | { |
181 | ASN1_INTEGER *ret=NULL; | 181 | ASN1_INTEGER *ret=NULL; |
182 | const unsigned char *p, *pend; | 182 | const unsigned char *p, *pend; |
183 | unsigned char *to,*s; | 183 | unsigned char *to,*s; |
184 | int i; | 184 | int i; |
185 | 185 | ||
186 | if ((a == NULL) || ((*a) == NULL)) | 186 | if ((a == NULL) || ((*a) == NULL)) |
187 | { | 187 | { |
188 | if ((ret=M_ASN1_INTEGER_new()) == NULL) return(NULL); | 188 | if ((ret=M_ASN1_INTEGER_new()) == NULL) return(NULL); |
189 | ret->type=V_ASN1_INTEGER; | 189 | ret->type=V_ASN1_INTEGER; |
190 | } | 190 | } |
191 | else | 191 | else |
192 | ret=(*a); | 192 | ret=(*a); |
193 | 193 | ||
@@ -198,23 +198,23 @@ ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, | |||
198 | * signifies a missing NULL parameter. */ | 198 | * signifies a missing NULL parameter. */ |
199 | s=(unsigned char *)malloc((int)len+1); | 199 | s=(unsigned char *)malloc((int)len+1); |
200 | if (s == NULL) | 200 | if (s == NULL) |
201 | { | 201 | { |
202 | i=ERR_R_MALLOC_FAILURE; | 202 | i=ERR_R_MALLOC_FAILURE; |
203 | goto err; | 203 | goto err; |
204 | } | 204 | } |
205 | to=s; | 205 | to=s; |
206 | if(!len) { | 206 | if(!len) { |
207 | /* Strictly speaking this is an illegal INTEGER but we | 207 | /* Strictly speaking this is an illegal INTEGER but we |
208 | * tolerate it. | 208 | * tolerate it. |
209 | */ | 209 | */ |
210 | ret->type=V_ASN1_INTEGER; | 210 | ret->type=V_ASN1_INTEGER; |
211 | } else if (*p & 0x80) /* a negative number */ | 211 | } else if (*p & 0x80) /* a negative number */ |
212 | { | 212 | { |
213 | ret->type=V_ASN1_NEG_INTEGER; | 213 | ret->type=V_ASN1_NEG_INTEGER; |
214 | if ((*p == 0xff) && (len != 1)) { | 214 | if ((*p == 0xff) && (len != 1)) { |
215 | p++; | 215 | p++; |
216 | len--; | 216 | len--; |
217 | } | 217 | } |
218 | i = len; | 218 | i = len; |
219 | p += i - 1; | 219 | p += i - 1; |
220 | to += i - 1; | 220 | to += i - 1; |
@@ -222,7 +222,7 @@ ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, | |||
222 | *(to--) = 0; | 222 | *(to--) = 0; |
223 | i--; | 223 | i--; |
224 | p--; | 224 | p--; |
225 | } | 225 | } |
226 | /* Special case: if all zeros then the number will be of | 226 | /* Special case: if all zeros then the number will be of |
227 | * the form FF followed by n zero bytes: this corresponds to | 227 | * the form FF followed by n zero bytes: this corresponds to |
228 | * 1 followed by n zero bytes. We've already written n zeros | 228 | * 1 followed by n zero bytes. We've already written n zeros |
@@ -234,20 +234,20 @@ ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, | |||
234 | *s = 1; | 234 | *s = 1; |
235 | s[len] = 0; | 235 | s[len] = 0; |
236 | len++; | 236 | len++; |
237 | } else { | 237 | } else { |
238 | *(to--) = (*(p--) ^ 0xff) + 1; | 238 | *(to--) = (*(p--) ^ 0xff) + 1; |
239 | i--; | 239 | i--; |
240 | for(;i > 0; i--) *(to--) = *(p--) ^ 0xff; | 240 | for(;i > 0; i--) *(to--) = *(p--) ^ 0xff; |
241 | } | 241 | } |
242 | } else { | 242 | } else { |
243 | ret->type=V_ASN1_INTEGER; | 243 | ret->type=V_ASN1_INTEGER; |
244 | if ((*p == 0) && (len != 1)) | 244 | if ((*p == 0) && (len != 1)) |
245 | { | 245 | { |
246 | p++; | 246 | p++; |
247 | len--; | 247 | len--; |
248 | } | 248 | } |
249 | memcpy(s,p,(int)len); | 249 | memcpy(s,p,(int)len); |
250 | } | 250 | } |
251 | 251 | ||
252 | if (ret->data != NULL) free(ret->data); | 252 | if (ret->data != NULL) free(ret->data); |
253 | ret->data=s; | 253 | ret->data=s; |
@@ -260,7 +260,7 @@ err: | |||
260 | if ((ret != NULL) && ((a == NULL) || (*a != ret))) | 260 | if ((ret != NULL) && ((a == NULL) || (*a != ret))) |
261 | M_ASN1_INTEGER_free(ret); | 261 | M_ASN1_INTEGER_free(ret); |
262 | return(NULL); | 262 | return(NULL); |
263 | } | 263 | } |
264 | 264 | ||
265 | 265 | ||
266 | /* This is a version of d2i_ASN1_INTEGER that ignores the sign bit of | 266 | /* This is a version of d2i_ASN1_INTEGER that ignores the sign bit of |
@@ -270,7 +270,7 @@ err: | |||
270 | 270 | ||
271 | ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, | 271 | ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, |
272 | long length) | 272 | long length) |
273 | { | 273 | { |
274 | ASN1_INTEGER *ret=NULL; | 274 | ASN1_INTEGER *ret=NULL; |
275 | const unsigned char *p; | 275 | const unsigned char *p; |
276 | unsigned char *s; | 276 | unsigned char *s; |
@@ -279,45 +279,45 @@ ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, | |||
279 | int i; | 279 | int i; |
280 | 280 | ||
281 | if ((a == NULL) || ((*a) == NULL)) | 281 | if ((a == NULL) || ((*a) == NULL)) |
282 | { | 282 | { |
283 | if ((ret=M_ASN1_INTEGER_new()) == NULL) return(NULL); | 283 | if ((ret=M_ASN1_INTEGER_new()) == NULL) return(NULL); |
284 | ret->type=V_ASN1_INTEGER; | 284 | ret->type=V_ASN1_INTEGER; |
285 | } | 285 | } |
286 | else | 286 | else |
287 | ret=(*a); | 287 | ret=(*a); |
288 | 288 | ||
289 | p= *pp; | 289 | p= *pp; |
290 | inf=ASN1_get_object(&p,&len,&tag,&xclass,length); | 290 | inf=ASN1_get_object(&p,&len,&tag,&xclass,length); |
291 | if (inf & 0x80) | 291 | if (inf & 0x80) |
292 | { | 292 | { |
293 | i=ASN1_R_BAD_OBJECT_HEADER; | 293 | i=ASN1_R_BAD_OBJECT_HEADER; |
294 | goto err; | 294 | goto err; |
295 | } | 295 | } |
296 | 296 | ||
297 | if (tag != V_ASN1_INTEGER) | 297 | if (tag != V_ASN1_INTEGER) |
298 | { | 298 | { |
299 | i=ASN1_R_EXPECTING_AN_INTEGER; | 299 | i=ASN1_R_EXPECTING_AN_INTEGER; |
300 | goto err; | 300 | goto err; |
301 | } | 301 | } |
302 | 302 | ||
303 | /* We must malloc stuff, even for 0 bytes otherwise it | 303 | /* We must malloc stuff, even for 0 bytes otherwise it |
304 | * signifies a missing NULL parameter. */ | 304 | * signifies a missing NULL parameter. */ |
305 | s=(unsigned char *)malloc((int)len+1); | 305 | s=(unsigned char *)malloc((int)len+1); |
306 | if (s == NULL) | 306 | if (s == NULL) |
307 | { | 307 | { |
308 | i=ERR_R_MALLOC_FAILURE; | 308 | i=ERR_R_MALLOC_FAILURE; |
309 | goto err; | 309 | goto err; |
310 | } | 310 | } |
311 | ret->type=V_ASN1_INTEGER; | 311 | ret->type=V_ASN1_INTEGER; |
312 | if(len) { | 312 | if(len) { |
313 | if ((*p == 0) && (len != 1)) | 313 | if ((*p == 0) && (len != 1)) |
314 | { | 314 | { |
315 | p++; | 315 | p++; |
316 | len--; | 316 | len--; |
317 | } | 317 | } |
318 | memcpy(s,p,(int)len); | 318 | memcpy(s,p,(int)len); |
319 | p+=len; | 319 | p+=len; |
320 | } | 320 | } |
321 | 321 | ||
322 | if (ret->data != NULL) free(ret->data); | 322 | if (ret->data != NULL) free(ret->data); |
323 | ret->data=s; | 323 | ret->data=s; |
@@ -330,10 +330,10 @@ err: | |||
330 | if ((ret != NULL) && ((a == NULL) || (*a != ret))) | 330 | if ((ret != NULL) && ((a == NULL) || (*a != ret))) |
331 | M_ASN1_INTEGER_free(ret); | 331 | M_ASN1_INTEGER_free(ret); |
332 | return(NULL); | 332 | return(NULL); |
333 | } | 333 | } |
334 | 334 | ||
335 | int ASN1_INTEGER_set(ASN1_INTEGER *a, long v) | 335 | int ASN1_INTEGER_set(ASN1_INTEGER *a, long v) |
336 | { | 336 | { |
337 | int j,k; | 337 | int j,k; |
338 | unsigned int i; | 338 | unsigned int i; |
339 | unsigned char buf[sizeof(long)+1]; | 339 | unsigned char buf[sizeof(long)+1]; |
@@ -341,39 +341,39 @@ int ASN1_INTEGER_set(ASN1_INTEGER *a, long v) | |||
341 | 341 | ||
342 | a->type=V_ASN1_INTEGER; | 342 | a->type=V_ASN1_INTEGER; |
343 | if (a->length < (int)(sizeof(long)+1)) | 343 | if (a->length < (int)(sizeof(long)+1)) |
344 | { | 344 | { |
345 | if (a->data != NULL) | 345 | if (a->data != NULL) |
346 | free(a->data); | 346 | free(a->data); |
347 | if ((a->data=(unsigned char *)malloc(sizeof(long)+1)) != NULL) | 347 | if ((a->data=(unsigned char *)malloc(sizeof(long)+1)) != NULL) |
348 | memset((char *)a->data,0,sizeof(long)+1); | 348 | memset((char *)a->data,0,sizeof(long)+1); |
349 | } | 349 | } |
350 | if (a->data == NULL) | 350 | if (a->data == NULL) |
351 | { | 351 | { |
352 | ASN1err(ASN1_F_ASN1_INTEGER_SET,ERR_R_MALLOC_FAILURE); | 352 | ASN1err(ASN1_F_ASN1_INTEGER_SET,ERR_R_MALLOC_FAILURE); |
353 | return(0); | 353 | return(0); |
354 | } | 354 | } |
355 | d=v; | 355 | d=v; |
356 | if (d < 0) | 356 | if (d < 0) |
357 | { | 357 | { |
358 | d= -d; | 358 | d= -d; |
359 | a->type=V_ASN1_NEG_INTEGER; | 359 | a->type=V_ASN1_NEG_INTEGER; |
360 | } | 360 | } |
361 | 361 | ||
362 | for (i=0; i<sizeof(long); i++) | 362 | for (i=0; i<sizeof(long); i++) |
363 | { | 363 | { |
364 | if (d == 0) break; | 364 | if (d == 0) break; |
365 | buf[i]=(int)d&0xff; | 365 | buf[i]=(int)d&0xff; |
366 | d>>=8; | 366 | d>>=8; |
367 | } | 367 | } |
368 | j=0; | 368 | j=0; |
369 | for (k=i-1; k >=0; k--) | 369 | for (k=i-1; k >=0; k--) |
370 | a->data[j++]=buf[k]; | 370 | a->data[j++]=buf[k]; |
371 | a->length=j; | 371 | a->length=j; |
372 | return(1); | 372 | return(1); |
373 | } | 373 | } |
374 | 374 | ||
375 | long ASN1_INTEGER_get(const ASN1_INTEGER *a) | 375 | long ASN1_INTEGER_get(const ASN1_INTEGER *a) |
376 | { | 376 | { |
377 | int neg=0,i; | 377 | int neg=0,i; |
378 | long r=0; | 378 | long r=0; |
379 | 379 | ||
@@ -385,24 +385,24 @@ long ASN1_INTEGER_get(const ASN1_INTEGER *a) | |||
385 | return -1; | 385 | return -1; |
386 | 386 | ||
387 | if (a->length > (int)sizeof(long)) | 387 | if (a->length > (int)sizeof(long)) |
388 | { | 388 | { |
389 | /* hmm... a bit ugly, return all ones */ | 389 | /* hmm... a bit ugly, return all ones */ |
390 | return -1; | 390 | return -1; |
391 | } | 391 | } |
392 | if (a->data == NULL) | 392 | if (a->data == NULL) |
393 | return 0; | 393 | return 0; |
394 | 394 | ||
395 | for (i=0; i<a->length; i++) | 395 | for (i=0; i<a->length; i++) |
396 | { | 396 | { |
397 | r<<=8; | 397 | r<<=8; |
398 | r|=(unsigned char)a->data[i]; | 398 | r|=(unsigned char)a->data[i]; |
399 | } | 399 | } |
400 | if (neg) r= -r; | 400 | if (neg) r= -r; |
401 | return(r); | 401 | return(r); |
402 | } | 402 | } |
403 | 403 | ||
404 | ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai) | 404 | ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai) |
405 | { | 405 | { |
406 | ASN1_INTEGER *ret; | 406 | ASN1_INTEGER *ret; |
407 | int len,j; | 407 | int len,j; |
408 | 408 | ||
@@ -411,40 +411,40 @@ ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai) | |||
411 | else | 411 | else |
412 | ret=ai; | 412 | ret=ai; |
413 | if (ret == NULL) | 413 | if (ret == NULL) |
414 | { | 414 | { |
415 | ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_NESTED_ASN1_ERROR); | 415 | ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_NESTED_ASN1_ERROR); |
416 | goto err; | 416 | goto err; |
417 | } | 417 | } |
418 | if (BN_is_negative(bn)) | 418 | if (BN_is_negative(bn)) |
419 | ret->type = V_ASN1_NEG_INTEGER; | 419 | ret->type = V_ASN1_NEG_INTEGER; |
420 | else ret->type=V_ASN1_INTEGER; | 420 | else ret->type=V_ASN1_INTEGER; |
421 | j=BN_num_bits(bn); | 421 | j=BN_num_bits(bn); |
422 | len=((j == 0)?0:((j/8)+1)); | 422 | len=((j == 0)?0:((j/8)+1)); |
423 | if (ret->length < len+4) | 423 | if (ret->length < len+4) |
424 | { | 424 | { |
425 | unsigned char *new_data=realloc(ret->data, len+4); | 425 | unsigned char *new_data=realloc(ret->data, len+4); |
426 | if (!new_data) | 426 | if (!new_data) |
427 | { | 427 | { |
428 | ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_MALLOC_FAILURE); | 428 | ASN1err(ASN1_F_BN_TO_ASN1_INTEGER,ERR_R_MALLOC_FAILURE); |
429 | goto err; | 429 | goto err; |
430 | } | ||
431 | ret->data=new_data; | ||
432 | } | 430 | } |
431 | ret->data=new_data; | ||
432 | } | ||
433 | ret->length=BN_bn2bin(bn,ret->data); | 433 | ret->length=BN_bn2bin(bn,ret->data); |
434 | /* Correct zero case */ | 434 | /* Correct zero case */ |
435 | if(!ret->length) | 435 | if(!ret->length) |
436 | { | 436 | { |
437 | ret->data[0] = 0; | 437 | ret->data[0] = 0; |
438 | ret->length = 1; | 438 | ret->length = 1; |
439 | } | 439 | } |
440 | return(ret); | 440 | return(ret); |
441 | err: | 441 | err: |
442 | if (ret != ai) M_ASN1_INTEGER_free(ret); | 442 | if (ret != ai) M_ASN1_INTEGER_free(ret); |
443 | return(NULL); | 443 | return(NULL); |
444 | } | 444 | } |
445 | 445 | ||
446 | BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn) | 446 | BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn) |
447 | { | 447 | { |
448 | BIGNUM *ret; | 448 | BIGNUM *ret; |
449 | 449 | ||
450 | if ((ret=BN_bin2bn(ai->data,ai->length,bn)) == NULL) | 450 | if ((ret=BN_bin2bn(ai->data,ai->length,bn)) == NULL) |
@@ -452,7 +452,7 @@ BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn) | |||
452 | else if(ai->type == V_ASN1_NEG_INTEGER) | 452 | else if(ai->type == V_ASN1_NEG_INTEGER) |
453 | BN_set_negative(ret, 1); | 453 | BN_set_negative(ret, 1); |
454 | return(ret); | 454 | return(ret); |
455 | } | 455 | } |
456 | 456 | ||
457 | IMPLEMENT_STACK_OF(ASN1_INTEGER) | 457 | IMPLEMENT_STACK_OF(ASN1_INTEGER) |
458 | IMPLEMENT_ASN1_SET_OF(ASN1_INTEGER) | 458 | IMPLEMENT_ASN1_SET_OF(ASN1_INTEGER) |