1*ba1276acSMatthew Dillon /* $OpenBSD: dns.h,v 1.20 2023/02/10 04:56:30 djm Exp $ */ 218de8d7fSPeter Avalos 318de8d7fSPeter Avalos /* 418de8d7fSPeter Avalos * Copyright (c) 2003 Wesley Griffin. All rights reserved. 518de8d7fSPeter Avalos * Copyright (c) 2003 Jakob Schlyter. All rights reserved. 618de8d7fSPeter Avalos * 718de8d7fSPeter Avalos * Redistribution and use in source and binary forms, with or without 818de8d7fSPeter Avalos * modification, are permitted provided that the following conditions 918de8d7fSPeter Avalos * are met: 1018de8d7fSPeter Avalos * 1. Redistributions of source code must retain the above copyright 1118de8d7fSPeter Avalos * notice, this list of conditions and the following disclaimer. 1218de8d7fSPeter Avalos * 2. Redistributions in binary form must reproduce the above copyright 1318de8d7fSPeter Avalos * notice, this list of conditions and the following disclaimer in the 1418de8d7fSPeter Avalos * documentation and/or other materials provided with the distribution. 1518de8d7fSPeter Avalos * 1618de8d7fSPeter Avalos * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1718de8d7fSPeter Avalos * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1818de8d7fSPeter Avalos * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1918de8d7fSPeter Avalos * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2018de8d7fSPeter Avalos * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2118de8d7fSPeter Avalos * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2218de8d7fSPeter Avalos * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2318de8d7fSPeter Avalos * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2418de8d7fSPeter Avalos * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2518de8d7fSPeter Avalos * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2618de8d7fSPeter Avalos */ 2718de8d7fSPeter Avalos 2818de8d7fSPeter Avalos #ifndef DNS_H 2918de8d7fSPeter Avalos #define DNS_H 3018de8d7fSPeter Avalos 3118de8d7fSPeter Avalos enum sshfp_types { 3299e85e0dSPeter Avalos SSHFP_KEY_RESERVED = 0, 3399e85e0dSPeter Avalos SSHFP_KEY_RSA = 1, 3499e85e0dSPeter Avalos SSHFP_KEY_DSA = 2, 3536e94dc5SPeter Avalos SSHFP_KEY_ECDSA = 3, 36664f4763Szrj SSHFP_KEY_ED25519 = 4, 37664f4763Szrj SSHFP_KEY_XMSS = 5 3818de8d7fSPeter Avalos }; 3918de8d7fSPeter Avalos 4018de8d7fSPeter Avalos enum sshfp_hashes { 4199e85e0dSPeter Avalos SSHFP_HASH_RESERVED = 0, 4299e85e0dSPeter Avalos SSHFP_HASH_SHA1 = 1, 4399e85e0dSPeter Avalos SSHFP_HASH_SHA256 = 2, 4499e85e0dSPeter Avalos SSHFP_HASH_MAX = 3 4518de8d7fSPeter Avalos }; 4618de8d7fSPeter Avalos 4718de8d7fSPeter Avalos #define DNS_RDATACLASS_IN 1 4818de8d7fSPeter Avalos #define DNS_RDATATYPE_SSHFP 44 4918de8d7fSPeter Avalos 5018de8d7fSPeter Avalos #define DNS_VERIFY_FOUND 0x00000001 5118de8d7fSPeter Avalos #define DNS_VERIFY_MATCH 0x00000002 5218de8d7fSPeter Avalos #define DNS_VERIFY_SECURE 0x00000004 5350a69bb5SSascha Wildner #define DNS_VERIFY_FAILED 0x00000008 5418de8d7fSPeter Avalos 55e9778795SPeter Avalos int verify_host_key_dns(const char *, struct sockaddr *, 56e9778795SPeter Avalos struct sshkey *, int *); 57*ba1276acSMatthew Dillon int export_dns_rr(const char *, struct sshkey *, FILE *, int, int); 5818de8d7fSPeter Avalos 5918de8d7fSPeter Avalos #endif /* DNS_H */ 60