summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2022-03-20 13:27:23 +0000
committerjsing <>2022-03-20 13:27:23 +0000
commitdf8e338b70b1220c112b187d623ced3ace339b90 (patch)
tree3975ff2babf8de57a34c872f2e0c9d6c32fac0b6 /src/lib
parentd647f1fd545f82a1547d6cf6dd3588381e22263c (diff)
downloadopenbsd-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.c106
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
126int
127i2d_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
148static int 126static int
149oid_add_arc(CBB *cbb, uint64_t arc) 127oid_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
544ASN1_OBJECT * 522ASN1_OBJECT *
545d2i_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
574ASN1_OBJECT *
575c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len) 523c2i_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
598int
599i2d_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
620ASN1_OBJECT *
621d2i_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}