swanctl: Load pubkeys with load-creds
[strongswan.git] / src / libcharon / plugins / vici / vici_cert_info.c
1 /*
2 * Copyright (C) 2015 Andreas Steffen
3 * HSR Hochschule fuer Technik Rapperswil
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 "vici_cert_info.h"
17
18 /**
19 * Legacy vici certificate types and directories created by swanctl
20 */
21 typedef struct {
22
23 /** Certificate type string used in legacy vici messages */
24 char *type_str;
25 /** Base certificate type */
26 certificate_type_t type;
27 /** X.509 flag */
28 x509_flag_t flag;
29 } cert_type_t;
30
31 static cert_type_t cert_types[] = {
32 { "x509", CERT_X509, X509_NONE },
33 { "x509ca", CERT_X509, X509_CA },
34 { "x509ocsp", CERT_X509, X509_OCSP_SIGNER },
35 { "x509aa", CERT_X509, X509_AA },
36 { "x509ac", CERT_X509_AC, X509_NONE },
37 { "x509crl", CERT_X509_CRL, X509_NONE },
38 { "pubkey", CERT_TRUSTED_PUBKEY, X509_NONE },
39 };
40
41 bool vici_cert_info_from_str(char *type_str, certificate_type_t *type,
42 x509_flag_t *flag)
43 {
44 int i;
45
46 for (i = 0; i < countof(cert_types); i++)
47 {
48 if (strcaseeq(type_str, cert_types[i].type_str))
49 {
50 *type = cert_types[i].type;
51 *flag = cert_types[i].flag;
52 return TRUE;
53 }
54 }
55 return FALSE;
56 }
57