xref: /openbsd-src/usr.sbin/ikectl/parser.h (revision b41cc0c801858fe3ff012a866515bd2e80dfe6af)
1*b41cc0c8Stobhe /*	$OpenBSD: parser.h,v 1.18 2022/09/19 20:54:02 tobhe Exp $	*/
2901ee4f0Sreyk 
3901ee4f0Sreyk /*
4fcebd35dSreyk  * Copyright (c) 2007-2013 Reyk Floeter <reyk@openbsd.org>
5901ee4f0Sreyk  *
6901ee4f0Sreyk  * Permission to use, copy, modify, and distribute this software for any
7901ee4f0Sreyk  * purpose with or without fee is hereby granted, provided that the above
8901ee4f0Sreyk  * copyright notice and this permission notice appear in all copies.
9901ee4f0Sreyk  *
10901ee4f0Sreyk  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11901ee4f0Sreyk  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12901ee4f0Sreyk  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13901ee4f0Sreyk  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14901ee4f0Sreyk  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15901ee4f0Sreyk  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16901ee4f0Sreyk  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17901ee4f0Sreyk  */
18901ee4f0Sreyk 
19a3e464c5Sreyk #ifndef IKECTL_PARSER_H
20a3e464c5Sreyk #define IKECTL_PARSER_H
21cfd26ebdSreyk 
22901ee4f0Sreyk enum actions {
23901ee4f0Sreyk 	NONE,
24901ee4f0Sreyk 	LOAD,
25901ee4f0Sreyk 	RELOAD,
26901ee4f0Sreyk 	MONITOR,
27901ee4f0Sreyk 	LOG_VERBOSE,
28901ee4f0Sreyk 	LOG_BRIEF,
29fc20f985Sreyk 	COUPLE,
30fc20f985Sreyk 	DECOUPLE,
31fc20f985Sreyk 	ACTIVE,
32fc20f985Sreyk 	PASSIVE,
33901ee4f0Sreyk 	RESETALL,
34901ee4f0Sreyk 	RESETCA,
35901ee4f0Sreyk 	RESETPOLICY,
36901ee4f0Sreyk 	RESETSA,
37901ee4f0Sreyk 	RESETUSER,
38901ee4f0Sreyk 	CA,
39901ee4f0Sreyk 	CA_CREATE,
40901ee4f0Sreyk 	CA_DELETE,
41901ee4f0Sreyk 	CA_INSTALL,
420dd4c7c3Sjsg 	CA_EXPORT,
43901ee4f0Sreyk 	CA_CERTIFICATE,
44901ee4f0Sreyk 	CA_CERT_CREATE,
45cfd26ebdSreyk 	CA_SERVER,
46cfd26ebdSreyk 	CA_CLIENT,
47ab7171b1Sjsg 	CA_OCSP,
48901ee4f0Sreyk 	CA_CERT_DELETE,
49901ee4f0Sreyk 	CA_CERT_INSTALL,
50901ee4f0Sreyk 	CA_CERT_EXPORT,
51c3cc2c5eSjsg 	CA_CERT_REVOKE,
521dbb1d4aSjsg 	CA_KEY_CREATE,
531dbb1d4aSjsg 	CA_KEY_DELETE,
541dbb1d4aSjsg 	CA_KEY_INSTALL,
551dbb1d4aSjsg 	CA_KEY_IMPORT,
56901ee4f0Sreyk 	SHOW_CA,
578c502e93Stobhe 	SHOW_CA_CERTIFICATES,
58969a8793Stobhe 	SHOW_SA,
596cf0fa19Stobhe 	RESET_ID,
60*b41cc0c8Stobhe 	SHOW_CERTSTORE,
61*b41cc0c8Stobhe 	SHOW_STATS
62901ee4f0Sreyk };
63901ee4f0Sreyk 
64901ee4f0Sreyk struct parse_result {
65901ee4f0Sreyk 	enum actions	 action;
66901ee4f0Sreyk 	struct imsgbuf	*ibuf;
677638a50cSjsg 	char		*path;
68901ee4f0Sreyk 	char		*caname;
69cfd26ebdSreyk 	char		*pass;
70901ee4f0Sreyk 	char		*host;
710dd4c7c3Sjsg 	char		*peer;
728c502e93Stobhe 	char		*id;
73901ee4f0Sreyk 	int		 htype;
74cfd26ebdSreyk 	int		 quiet;
75901ee4f0Sreyk };
76901ee4f0Sreyk 
77901ee4f0Sreyk #define HOST_IPADDR	1
78901ee4f0Sreyk #define HOST_FQDN	2
79901ee4f0Sreyk 
80901ee4f0Sreyk struct parse_result	*parse(int, char *[]);
81cfd26ebdSreyk 
82cfd26ebdSreyk struct ca	*ca_setup(char *, int, int, char *);
83cfd26ebdSreyk int		 ca_create(struct ca *);
84cfd26ebdSreyk int		 ca_certificate(struct ca *, char *, int, int);
85cfe372e4Sreyk int		 ca_export(struct ca *, char *, char *, char *);
86cfd26ebdSreyk int		 ca_revoke(struct ca *, char *);
87cfd26ebdSreyk int		 ca_delete(struct ca *);
88cfd26ebdSreyk int		 ca_delkey(struct ca *, char *);
897638a50cSjsg int		 ca_install(struct ca *, char *);
907638a50cSjsg int		 ca_cert_install(struct ca *, char *, char *);
9169ffd282Sreyk int		 ca_show_certs(struct ca *, char *);
92cfd26ebdSreyk int		 ca_key_create(struct ca *, char *);
93cfd26ebdSreyk int		 ca_key_delete(struct ca *, char *);
947638a50cSjsg int		 ca_key_install(struct ca *, char *, char *);
95cfd26ebdSreyk int		 ca_key_import(struct ca *, char *, char *);
96cfd26ebdSreyk 
97a3e464c5Sreyk #endif /* IKECTL_PARSER_H */
98