1/*	$NetBSD: netdb_dnssec.h,v 1.4 2006/09/09 16:22:09 manu Exp $	*/
2
3/* Id: netdb_dnssec.h,v 1.3 2004/06/11 16:00:17 ludvigm Exp */
4
5/*
6 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 *    notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in the
16 *    documentation and/or other materials provided with the distribution.
17 * 3. Neither the name of the project nor the names of its contributors
18 *    may be used to endorse or promote products derived from this software
19 *    without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33
34#ifndef _NETDB_DNSSEC_H
35#define _NETDB_DNSSEC_H
36
37#ifndef T_CERT
38#define T_CERT	37		/* defined by RFC2538 section 2 */
39#endif
40
41/* RFC2538 section 2.1 */
42#define DNSSEC_TYPE_PKIX	1
43#define DNSSEC_TYPE_SPKI	2
44#define DNSSEC_TYPE_PGP		3
45#define DNSSEC_TYPE_URI		4
46#define DNSSEC_TYPE_OID		5
47
48/* RFC2535 section 3.2 */
49#define DNSSEC_ALG_RSAMD5	1
50#define DNSSEC_ALG_DH		2
51#define DNSSEC_ALG_DSA		3
52#define DNSSEC_ALG_ECC		4
53#define DNSSEC_ALG_PRIVATEDNS	5
54#define DNSSEC_ALG_PRIVATEOID	6
55
56/*
57 * Structures returned by network data base library.  All addresses are
58 * supplied in host order, and returned in network order (suitable for
59 * use in system calls).
60 */
61struct certinfo {
62	int ci_type;			/* certificate type */
63	int ci_keytag;			/* keytag */
64	int ci_algorithm;		/* algorithm */
65	int ci_flags;			/* currently, 1:valid or 0:uncertain */
66	size_t ci_certlen;		/* length of certificate */
67	char *ci_cert;			/* certificate */
68	struct certinfo *ci_next;	/* next structure */
69};
70
71extern void freecertinfo __P((struct certinfo *));
72extern int getcertsbyname __P((char *, struct certinfo **));
73
74#endif /* _NETDB_DNSSEC_H */
75