diff options
| author | jsing <> | 2022-03-20 13:27:23 +0000 |
|---|---|---|
| committer | jsing <> | 2022-03-20 13:27:23 +0000 |
| commit | df8e338b70b1220c112b187d623ced3ace339b90 (patch) | |
| tree | 3975ff2babf8de57a34c872f2e0c9d6c32fac0b6 /src | |
| parent | d647f1fd545f82a1547d6cf6dd3588381e22263c (diff) | |
| download | openbsd-df8e338b70b1220c112b187d623ced3ace339b90.tar.gz openbsd-df8e338b70b1220c112b187d623ced3ace339b90.tar.bz2 openbsd-df8e338b70b1220c112b187d623ced3ace339b90.zip | |
Move/group i2d_ASN1_OBJECT() and d2i_ASN1_OBJECT().
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/asn1/a_object.c | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/src/lib/libcrypto/asn1/a_object.c b/src/lib/libcrypto/asn1/a_object.c index 56a08a3cb4..1d94d49679 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.43 2022/03/19 17:49:32 jsing Exp $ */ | 1 | /* $OpenBSD: a_object.c,v 1.44 2022/03/20 13:27:23 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 | * |
| @@ -123,28 +123,6 @@ ASN1_OBJECT_create(int nid, unsigned char *data, int len, | |||
| 123 | return (OBJ_dup(&o)); | 123 | return (OBJ_dup(&o)); |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | int | ||
| 127 | i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp) | ||
| 128 | { | ||
| 129 | unsigned char *p; | ||
| 130 | int objsize; | ||
| 131 | |||
| 132 | if ((a == NULL) || (a->data == NULL)) | ||
| 133 | return (0); | ||
| 134 | |||
| 135 | objsize = ASN1_object_size(0, a->length, V_ASN1_OBJECT); | ||
| 136 | if (pp == NULL) | ||
| 137 | return objsize; | ||
| 138 | |||
| 139 | p = *pp; | ||
| 140 | ASN1_put_object(&p, 0, a->length, V_ASN1_OBJECT, V_ASN1_UNIVERSAL); | ||
| 141 | memcpy(p, a->data, a->length); | ||
| 142 | p += a->length; | ||
| 143 | |||
| 144 | *pp = p; | ||
| 145 | return (objsize); | ||
| 146 | } | ||
| 147 | |||
| 148 | static int | 126 | static int |
| 149 | oid_add_arc(CBB *cbb, uint64_t arc) | 127 | oid_add_arc(CBB *cbb, uint64_t arc) |
| 150 | { | 128 | { |
| @@ -542,36 +520,6 @@ i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *aobj) | |||
| 542 | } | 520 | } |
| 543 | 521 | ||
| 544 | ASN1_OBJECT * | 522 | ASN1_OBJECT * |
| 545 | d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long length) | ||
| 546 | { | ||
| 547 | const unsigned char *p; | ||
| 548 | long len; | ||
| 549 | int tag, xclass; | ||
| 550 | int inf, i; | ||
| 551 | ASN1_OBJECT *ret = NULL; | ||
| 552 | |||
| 553 | p = *pp; | ||
| 554 | inf = ASN1_get_object(&p, &len, &tag, &xclass, length); | ||
| 555 | if (inf & 0x80) { | ||
| 556 | i = ASN1_R_BAD_OBJECT_HEADER; | ||
| 557 | goto err; | ||
| 558 | } | ||
| 559 | |||
| 560 | if (tag != V_ASN1_OBJECT) { | ||
| 561 | i = ASN1_R_EXPECTING_AN_OBJECT; | ||
| 562 | goto err; | ||
| 563 | } | ||
| 564 | ret = c2i_ASN1_OBJECT(a, &p, len); | ||
| 565 | if (ret) | ||
| 566 | *pp = p; | ||
| 567 | return ret; | ||
| 568 | |||
| 569 | err: | ||
| 570 | ASN1error(i); | ||
| 571 | return (NULL); | ||
| 572 | } | ||
| 573 | |||
| 574 | ASN1_OBJECT * | ||
| 575 | c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len) | 523 | c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len) |
| 576 | { | 524 | { |
| 577 | ASN1_OBJECT *ret; | 525 | ASN1_OBJECT *ret; |
| @@ -646,3 +594,55 @@ c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len) | |||
| 646 | ASN1_OBJECT_free(ret); | 594 | ASN1_OBJECT_free(ret); |
| 647 | return (NULL); | 595 | return (NULL); |
| 648 | } | 596 | } |
| 597 | |||
| 598 | int | ||
| 599 | i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp) | ||
| 600 | { | ||
| 601 | unsigned char *p; | ||
| 602 | int objsize; | ||
| 603 | |||
| 604 | if ((a == NULL) || (a->data == NULL)) | ||
| 605 | return (0); | ||
| 606 | |||
| 607 | objsize = ASN1_object_size(0, a->length, V_ASN1_OBJECT); | ||
| 608 | if (pp == NULL) | ||
| 609 | return objsize; | ||
| 610 | |||
| 611 | p = *pp; | ||
| 612 | ASN1_put_object(&p, 0, a->length, V_ASN1_OBJECT, V_ASN1_UNIVERSAL); | ||
| 613 | memcpy(p, a->data, a->length); | ||
| 614 | p += a->length; | ||
| 615 | |||
| 616 | *pp = p; | ||
| 617 | return (objsize); | ||
| 618 | } | ||
| 619 | |||
| 620 | ASN1_OBJECT * | ||
| 621 | d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long length) | ||
| 622 | { | ||
| 623 | const unsigned char *p; | ||
| 624 | long len; | ||
| 625 | int tag, xclass; | ||
| 626 | int inf, i; | ||
| 627 | ASN1_OBJECT *ret = NULL; | ||
| 628 | |||
| 629 | p = *pp; | ||
| 630 | inf = ASN1_get_object(&p, &len, &tag, &xclass, length); | ||
| 631 | if (inf & 0x80) { | ||
| 632 | i = ASN1_R_BAD_OBJECT_HEADER; | ||
| 633 | goto err; | ||
| 634 | } | ||
| 635 | |||
| 636 | if (tag != V_ASN1_OBJECT) { | ||
| 637 | i = ASN1_R_EXPECTING_AN_OBJECT; | ||
| 638 | goto err; | ||
| 639 | } | ||
| 640 | ret = c2i_ASN1_OBJECT(a, &p, len); | ||
| 641 | if (ret) | ||
| 642 | *pp = p; | ||
| 643 | return ret; | ||
| 644 | |||
| 645 | err: | ||
| 646 | ASN1error(i); | ||
| 647 | return (NULL); | ||
| 648 | } | ||
