xref: /openbsd/usr.bin/dig/lib/dns/dst_result.c (revision 1fb015a8)
15185a700Sflorian /*
25185a700Sflorian  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
35185a700Sflorian  *
45185a700Sflorian  * Permission to use, copy, modify, and/or distribute this software for any
55185a700Sflorian  * purpose with or without fee is hereby granted, provided that the above
65185a700Sflorian  * copyright notice and this permission notice appear in all copies.
75185a700Sflorian  *
85185a700Sflorian  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
95185a700Sflorian  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
105185a700Sflorian  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
115185a700Sflorian  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
125185a700Sflorian  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
135185a700Sflorian  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
145185a700Sflorian  * PERFORMANCE OF THIS SOFTWARE.
155185a700Sflorian  */
165185a700Sflorian 
175185a700Sflorian /*%
185185a700Sflorian  * Principal Author: Brian Wellington
19*1fb015a8Sflorian  * $Id: dst_result.c,v 1.3 2020/09/14 08:40:43 florian Exp $
205185a700Sflorian  */
215185a700Sflorian 
225185a700Sflorian #include <isc/util.h>
235185a700Sflorian #include <dst/result.h>
245185a700Sflorian 
255185a700Sflorian static const char *text[DST_R_NRESULTS] = {
265185a700Sflorian 	"algorithm is unsupported",		/*%< 0 */
275185a700Sflorian 	"crypto failure",			/*%< 1 */
285185a700Sflorian 	"built with no crypto support",		/*%< 2 */
295185a700Sflorian 	"illegal operation for a null key",	/*%< 3 */
305185a700Sflorian 	"public key is invalid",		/*%< 4 */
315185a700Sflorian 	"private key is invalid",		/*%< 5 */
325185a700Sflorian 	"external key",				/*%< 6 */
335185a700Sflorian 	"error occurred writing key to disk",	/*%< 7 */
345185a700Sflorian 	"invalid algorithm specific parameter",	/*%< 8 */
355185a700Sflorian 	"UNUSED9",				/*%< 9 */
365185a700Sflorian 	"UNUSED10",				/*%< 10 */
375185a700Sflorian 	"sign failure",				/*%< 11 */
385185a700Sflorian 	"UNUSED12",				/*%< 12 */
395185a700Sflorian 	"UNUSED13",				/*%< 13 */
405185a700Sflorian 	"verify failure",			/*%< 14 */
415185a700Sflorian 	"not a public key",			/*%< 15 */
425185a700Sflorian 	"not a private key",			/*%< 16 */
435185a700Sflorian 	"not a key that can compute a secret",	/*%< 17 */
445185a700Sflorian 	"failure computing a shared secret",	/*%< 18 */
455185a700Sflorian 	"no randomness available",		/*%< 19 */
465185a700Sflorian 	"bad key type",				/*%< 20 */
475185a700Sflorian 	"no engine",				/*%< 21 */
485185a700Sflorian 	"illegal operation for an external key",/*%< 22 */
495185a700Sflorian };
505185a700Sflorian 
515185a700Sflorian #define DST_RESULT_RESULTSET			2
525185a700Sflorian 
53*1fb015a8Sflorian static int		once = 0;
545185a700Sflorian 
555185a700Sflorian static void
initialize_action(void)565185a700Sflorian initialize_action(void) {
575185a700Sflorian 	isc_result_t result;
585185a700Sflorian 
595185a700Sflorian 	result = isc_result_register(ISC_RESULTCLASS_DST, DST_R_NRESULTS,
605185a700Sflorian 				     text, DST_RESULT_RESULTSET);
615185a700Sflorian 	if (result != ISC_R_SUCCESS)
625185a700Sflorian 		UNEXPECTED_ERROR(__FILE__, __LINE__,
635185a700Sflorian 				 "isc_result_register() failed: %u", result);
645185a700Sflorian }
655185a700Sflorian 
665185a700Sflorian static void
initialize(void)675185a700Sflorian initialize(void) {
685185a700Sflorian 	if (!once) {
69*1fb015a8Sflorian 		once = 1;
705185a700Sflorian 		initialize_action();
715185a700Sflorian 	}
725185a700Sflorian }
735185a700Sflorian 
745185a700Sflorian void
dst_result_register(void)755185a700Sflorian dst_result_register(void) {
765185a700Sflorian 	initialize();
775185a700Sflorian }
785185a700Sflorian 
795185a700Sflorian /*! \file */
80