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/lib | |
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/lib')
-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 | } | ||