]> git.ipfire.org Git - thirdparty/strongswan.git/blob - scripts/oid2der.c
ike: Don't reestablish IKE_SAs for which a deletion is queued
[thirdparty/strongswan.git] / scripts / oid2der.c
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 }