Annotation of embedaddon/strongswan/scripts/oid2der.c, revision 1.1.1.1

1.1       misho       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>