diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/a_object.c')
-rw-r--r-- | src/lib/libcrypto/asn1/a_object.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/lib/libcrypto/asn1/a_object.c b/src/lib/libcrypto/asn1/a_object.c index 0061ccb880..56a08a3cb4 100644 --- a/src/lib/libcrypto/asn1/a_object.c +++ b/src/lib/libcrypto/asn1/a_object.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: a_object.c,v 1.42 2022/03/19 17:35:52 jsing Exp $ */ | 1 | /* $OpenBSD: a_object.c,v 1.43 2022/03/19 17:49:32 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -475,6 +475,43 @@ i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *aobj) | |||
475 | return i2t_ASN1_OBJECT_internal(aobj, buf, buf_len, 0); | 475 | return i2t_ASN1_OBJECT_internal(aobj, buf, buf_len, 0); |
476 | } | 476 | } |
477 | 477 | ||
478 | ASN1_OBJECT * | ||
479 | t2i_ASN1_OBJECT_internal(const char *oid) | ||
480 | { | ||
481 | ASN1_OBJECT *aobj = NULL; | ||
482 | uint8_t *data = NULL; | ||
483 | size_t data_len; | ||
484 | CBB cbb; | ||
485 | CBS cbs; | ||
486 | |||
487 | memset(&cbb, 0, sizeof(cbb)); | ||
488 | |||
489 | CBS_init(&cbs, oid, strlen(oid)); | ||
490 | |||
491 | if (!CBB_init(&cbb, 0)) | ||
492 | goto err; | ||
493 | if (!a2c_ASN1_OBJECT_internal(&cbb, &cbs)) | ||
494 | goto err; | ||
495 | if (!CBB_finish(&cbb, &data, &data_len)) | ||
496 | goto err; | ||
497 | |||
498 | if (data_len > INT_MAX) | ||
499 | goto err; | ||
500 | |||
501 | if ((aobj = ASN1_OBJECT_new()) == NULL) | ||
502 | goto err; | ||
503 | |||
504 | aobj->data = data; | ||
505 | aobj->length = (int)data_len; | ||
506 | data = NULL; | ||
507 | |||
508 | err: | ||
509 | CBB_cleanup(&cbb); | ||
510 | free(data); | ||
511 | |||
512 | return aobj; | ||
513 | } | ||
514 | |||
478 | int | 515 | int |
479 | i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *aobj) | 516 | i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *aobj) |
480 | { | 517 | { |