File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / scripts / oid2der.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 3 09:46:49 2020 UTC (4 years, 3 months ago) by misho
Branches: strongswan, MAIN
CVS tags: v5_9_2p0, v5_8_4p7, HEAD
Strongswan

    1: /*
    2:  * Copyright (C) 2010 Martin Willi
    3:  * Copyright (C) 2010 revosec AG
    4:  *
    5:  * This program is free software; you can redistribute it and/or modify it
    6:  * under the terms of the GNU General Public License as published by the
    7:  * Free Software Foundation; either version 2 of the License, or (at your
    8:  * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
    9:  *
   10:  * This program is distributed in the hope that it will be useful, but
   11:  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   12:  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   13:  * for more details.
   14:  */
   15: 
   16: #include <stdio.h>
   17: #include <asn1/asn1.h>
   18: 
   19: /**
   20:  * convert string OID to DER encoding
   21:  */
   22: int main(int argc, char *argv[])
   23: {
   24: 	int i, nr = 0;
   25: 	chunk_t oid;
   26: 	char *decoded;
   27: 	bool decode = FALSE;
   28: 
   29: 	if (streq(argv[1], "-d"))
   30: 	{
   31: 		decode = TRUE;
   32: 		nr++;
   33: 	}
   34: 
   35: 	while (argc > ++nr)
   36: 	{
   37: 		if (decode)
   38: 		{
   39: 			oid = chunk_from_hex(chunk_from_str(argv[nr]), NULL);
   40: 			decoded = asn1_oid_to_string(oid);
   41: 			printf("%s\n", decoded);
   42: 			free(decoded);
   43: 			free(oid.ptr);
   44: 			continue;
   45: 		}
   46: 		oid = asn1_oid_from_string(argv[nr]);
   47: 		if (oid.len)
   48: 		{
   49: 			for (i = 0; i < oid.len; i++)
   50: 			{
   51: 				printf("0x%02x,", oid.ptr[i]);
   52: 			}
   53: 			printf("\n");
   54: 			free(oid.ptr);
   55: 		}
   56: 		else
   57: 		{
   58: 			return 1;
   59: 		}
   60: 	}
   61: 	return 0;
   62: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>