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