1 /*
2 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14 * PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 /*%
18 * Principal Author: Brian Wellington
19 * $Id: dst_result.c,v 1.3 2020/09/14 08:40:43 florian Exp $
20 */
21
22 #include <isc/util.h>
23 #include <dst/result.h>
24
25 static const char *text[DST_R_NRESULTS] = {
26 "algorithm is unsupported", /*%< 0 */
27 "crypto failure", /*%< 1 */
28 "built with no crypto support", /*%< 2 */
29 "illegal operation for a null key", /*%< 3 */
30 "public key is invalid", /*%< 4 */
31 "private key is invalid", /*%< 5 */
32 "external key", /*%< 6 */
33 "error occurred writing key to disk", /*%< 7 */
34 "invalid algorithm specific parameter", /*%< 8 */
35 "UNUSED9", /*%< 9 */
36 "UNUSED10", /*%< 10 */
37 "sign failure", /*%< 11 */
38 "UNUSED12", /*%< 12 */
39 "UNUSED13", /*%< 13 */
40 "verify failure", /*%< 14 */
41 "not a public key", /*%< 15 */
42 "not a private key", /*%< 16 */
43 "not a key that can compute a secret", /*%< 17 */
44 "failure computing a shared secret", /*%< 18 */
45 "no randomness available", /*%< 19 */
46 "bad key type", /*%< 20 */
47 "no engine", /*%< 21 */
48 "illegal operation for an external key",/*%< 22 */
49 };
50
51 #define DST_RESULT_RESULTSET 2
52
53 static int once = 0;
54
55 static void
initialize_action(void)56 initialize_action(void) {
57 isc_result_t result;
58
59 result = isc_result_register(ISC_RESULTCLASS_DST, DST_R_NRESULTS,
60 text, DST_RESULT_RESULTSET);
61 if (result != ISC_R_SUCCESS)
62 UNEXPECTED_ERROR(__FILE__, __LINE__,
63 "isc_result_register() failed: %u", result);
64 }
65
66 static void
initialize(void)67 initialize(void) {
68 if (!once) {
69 once = 1;
70 initialize_action();
71 }
72 }
73
74 void
dst_result_register(void)75 dst_result_register(void) {
76 initialize();
77 }
78
79 /*! \file */
80