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>