From 5f4456fa00e080d850f7e25aba2f1e12cab8adcf Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Mon, 27 Mar 1995 08:33:13 +0000 Subject: [PATCH] Added more OID utilities. --- odr/Makefile | 4 ++-- odr/odr_util.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 53 insertions(+), 3 deletions(-) diff --git a/odr/Makefile b/odr/Makefile index abb24d8..ec87fcc 100644 --- a/odr/Makefile +++ b/odr/Makefile @@ -1,10 +1,10 @@ # Copyright (C) 1994, Index Data I/S # All rights reserved. # Sebastian Hammer, Adam Dickmeiss -# $Id: Makefile,v 1.9 1995-03-20 09:45:59 quinn Exp $ +# $Id: Makefile,v 1.10 1995-03-27 08:33:13 quinn Exp $ SHELL=/bin/sh -INCLUDE=-I../include -I. +INCLUDE=-I../include -I. -I../util LIBDIR=../../lib LIBINCLUDE=-L$(LIBDIR) CFLAGS= -g -Wall -pedantic -ansi -DODR_DEBUG diff --git a/odr/odr_util.c b/odr/odr_util.c index fb4c7c0..0ea1c08 100644 --- a/odr/odr_util.c +++ b/odr/odr_util.c @@ -1,5 +1,5 @@ -#include #include +#include char *odr_indent(ODR o) { @@ -28,3 +28,53 @@ int odp_more_chunks(ODR o, unsigned char *base, int len) else return o->bp - base < len; } + +/* OID utilities */ + +void odr_oidcpy(Odr_oid *t, Odr_oid *s) +{ + while ((*(t++) = *(s++)) > -1); +} + +void odr_oidcat(Odr_oid *t, Odr_oid *s) +{ + while (*t > -1) + t++; + while ((*(t++) = *(s++)) > -1); +} + +int odr_oidcmp(Odr_oid *o1, Odr_oid *o2) +{ + while (*o1 == *o2 && *o1 > -1) + { + o1++; + o2++; + } + if (*o1 == *o2) + return 0; + else if (*o1 > *o2) + return 1; + else + return -1; +} + +int odr_oidlen(Odr_oid *o) +{ + int len = 0; + + while (*(o++) >= 0) + len++; + return len; +} + +Odr_oid *odr_oiddup(ODR odr, Odr_oid *o) +{ + Odr_oid *r; + + if (!o) + return 0; + if (!(r = odr_malloc(odr, (odr_oidlen(o) + 1) * sizeof(Odr_oid)))) + return 0; + odr_oidcpy(r, o); + return r; +} -- 1.7.10.4