xref: /onnv-gate/usr/src/common/net/wanboot/wanboot_conf.h (revision 0:68f95e015346)
1*0Sstevel@tonic-gate /*
2*0Sstevel@tonic-gate  * CDDL HEADER START
3*0Sstevel@tonic-gate  *
4*0Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*0Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*0Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*0Sstevel@tonic-gate  * with the License.
8*0Sstevel@tonic-gate  *
9*0Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*0Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*0Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*0Sstevel@tonic-gate  * and limitations under the License.
13*0Sstevel@tonic-gate  *
14*0Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*0Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*0Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*0Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*0Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*0Sstevel@tonic-gate  *
20*0Sstevel@tonic-gate  * CDDL HEADER END
21*0Sstevel@tonic-gate  */
22*0Sstevel@tonic-gate /*
23*0Sstevel@tonic-gate  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
24*0Sstevel@tonic-gate  * Use is subject to license terms.
25*0Sstevel@tonic-gate  */
26*0Sstevel@tonic-gate 
27*0Sstevel@tonic-gate #ifndef	_WANBOOT_CONF_H
28*0Sstevel@tonic-gate #define	_WANBOOT_CONF_H
29*0Sstevel@tonic-gate 
30*0Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*0Sstevel@tonic-gate 
32*0Sstevel@tonic-gate #include <sys/time.h>
33*0Sstevel@tonic-gate #include <sys/nvpair.h>
34*0Sstevel@tonic-gate 
35*0Sstevel@tonic-gate #ifdef	__cplusplus
36*0Sstevel@tonic-gate extern "C" {
37*0Sstevel@tonic-gate #endif
38*0Sstevel@tonic-gate 
39*0Sstevel@tonic-gate /*
40*0Sstevel@tonic-gate  * Valid wanboot.conf(4) names
41*0Sstevel@tonic-gate  */
42*0Sstevel@tonic-gate #define	BC_BOOT_FILE			"boot_file"
43*0Sstevel@tonic-gate #define	BC_ROOT_SERVER			"root_server"
44*0Sstevel@tonic-gate #define	BC_ROOT_FILE			"root_file"
45*0Sstevel@tonic-gate #define	BC_ENCRYPTION_TYPE		"encryption_type"
46*0Sstevel@tonic-gate #define	BC_SIGNATURE_TYPE		"signature_type"
47*0Sstevel@tonic-gate #define	BC_CLIENT_AUTHENTICATION	"client_authentication"
48*0Sstevel@tonic-gate #define	BC_SERVER_AUTHENTICATION	"server_authentication"
49*0Sstevel@tonic-gate #define	BC_BOOT_LOGGER			"boot_logger"
50*0Sstevel@tonic-gate #define	BC_RESOLVE_HOSTS		"resolve_hosts"
51*0Sstevel@tonic-gate #define	BC_SYSTEM_CONF			"system_conf"
52*0Sstevel@tonic-gate 
53*0Sstevel@tonic-gate /*
54*0Sstevel@tonic-gate  * Valid encryption types
55*0Sstevel@tonic-gate  */
56*0Sstevel@tonic-gate #define	BC_ENCRYPTION_3DES		"3des"
57*0Sstevel@tonic-gate #define	BC_ENCRYPTION_AES		"aes"
58*0Sstevel@tonic-gate 
59*0Sstevel@tonic-gate /*
60*0Sstevel@tonic-gate  * Valid signature types
61*0Sstevel@tonic-gate  */
62*0Sstevel@tonic-gate #define	BC_SIGNATURE_SHA1		"sha1"
63*0Sstevel@tonic-gate 
64*0Sstevel@tonic-gate /*
65*0Sstevel@tonic-gate  * Valid yes/no options
66*0Sstevel@tonic-gate  */
67*0Sstevel@tonic-gate #define	BC_YES				"yes"
68*0Sstevel@tonic-gate #define	BC_NO				"no"
69*0Sstevel@tonic-gate 
70*0Sstevel@tonic-gate /*
71*0Sstevel@tonic-gate  * Define some maximum length for a line in wanboot.conf(4):
72*0Sstevel@tonic-gate  */
73*0Sstevel@tonic-gate #define	BC_MAX_LINE_LENGTH		4096
74*0Sstevel@tonic-gate 
75*0Sstevel@tonic-gate /*
76*0Sstevel@tonic-gate  * Return codes from init_bootconf(); if BC_FAILURE, the 'bc_error_code'
77*0Sstevel@tonic-gate  * field below gives the reason:
78*0Sstevel@tonic-gate  */
79*0Sstevel@tonic-gate #define	BC_SUCCESS			0
80*0Sstevel@tonic-gate #define	BC_FAILURE			1
81*0Sstevel@tonic-gate 
82*0Sstevel@tonic-gate /*
83*0Sstevel@tonic-gate  * Possible values of the 'bc_error_code' field below; refer to
84*0Sstevel@tonic-gate  * bootconf_errmsg.c for a description of these codes:
85*0Sstevel@tonic-gate  */
86*0Sstevel@tonic-gate typedef enum {
87*0Sstevel@tonic-gate 	BC_E_NOERROR,
88*0Sstevel@tonic-gate 	BC_E_ACCESS,
89*0Sstevel@tonic-gate 	BC_E_NVLIST,
90*0Sstevel@tonic-gate 	BC_E_IOERR,
91*0Sstevel@tonic-gate 	BC_E_TOO_LONG,
92*0Sstevel@tonic-gate 	BC_E_SYNTAX,
93*0Sstevel@tonic-gate 	BC_E_UNKNOWN_NAME,
94*0Sstevel@tonic-gate 	BC_E_ENCRYPTION_ILLEGAL,
95*0Sstevel@tonic-gate 	BC_E_SIGNATURE_ILLEGAL,
96*0Sstevel@tonic-gate 	BC_E_CLIENT_AUTH_ILLEGAL,
97*0Sstevel@tonic-gate 	BC_E_SERVER_AUTH_ILLEGAL,
98*0Sstevel@tonic-gate 	BC_E_ROOT_SERVER_BAD,
99*0Sstevel@tonic-gate 	BC_E_ROOT_SERVER_ABSENT,
100*0Sstevel@tonic-gate 	BC_E_ROOT_FILE_ABSENT,
101*0Sstevel@tonic-gate 	BC_E_BOOT_LOGGER_BAD,
102*0Sstevel@tonic-gate 	BC_E_ENCRYPTED_NOT_SIGNED,
103*0Sstevel@tonic-gate 	BC_E_CLIENT_AUTH_NOT_ENCRYPTED,
104*0Sstevel@tonic-gate 	BC_E_CLIENT_AUTH_NOT_SERVER,
105*0Sstevel@tonic-gate 	BC_E_SERVER_AUTH_NOT_SIGNED,
106*0Sstevel@tonic-gate 	BC_E_SERVER_AUTH_NOT_HTTPS,
107*0Sstevel@tonic-gate 	BC_E_SERVER_AUTH_NOT_HTTP,
108*0Sstevel@tonic-gate 	BC_E_BOOTLOGGER_AUTH_NOT_HTTP
109*0Sstevel@tonic-gate } bc_errcode_t;
110*0Sstevel@tonic-gate 
111*0Sstevel@tonic-gate /*
112*0Sstevel@tonic-gate  * Structure defining the bootconf context:
113*0Sstevel@tonic-gate  */
114*0Sstevel@tonic-gate typedef struct bc_handle {
115*0Sstevel@tonic-gate 	nvlist_t	*bc_nvl;	/* The nvpair list representation */
116*0Sstevel@tonic-gate 	bc_errcode_t	bc_error_code;	/* On error, one of the above codes */
117*0Sstevel@tonic-gate 	int		bc_error_pos;	/* Line in error in wanboot.conf */
118*0Sstevel@tonic-gate } bc_handle_t;
119*0Sstevel@tonic-gate 
120*0Sstevel@tonic-gate /*
121*0Sstevel@tonic-gate  * The interfaces to be used when accessing the wanboot.conf file:
122*0Sstevel@tonic-gate  */
123*0Sstevel@tonic-gate extern int	bootconf_init(bc_handle_t *handle, const char *bootconf);
124*0Sstevel@tonic-gate extern char	*bootconf_get(bc_handle_t *handle, const char *name);
125*0Sstevel@tonic-gate extern void	bootconf_end(bc_handle_t *handle);
126*0Sstevel@tonic-gate #if	!defined(_BOOT)
127*0Sstevel@tonic-gate extern char	*bootconf_errmsg(bc_handle_t *handle);
128*0Sstevel@tonic-gate #endif	/* !defined(_BOOT) */
129*0Sstevel@tonic-gate 
130*0Sstevel@tonic-gate #ifdef	__cplusplus
131*0Sstevel@tonic-gate }
132*0Sstevel@tonic-gate #endif
133*0Sstevel@tonic-gate 
134*0Sstevel@tonic-gate #endif	/* _WANBOOT_CONF_H */
135