1/* $OpenBSD: types.h,v 1.54 2024/02/15 20:10:45 tobhe Exp $ */ 2 3/* 4 * Copyright (c) 2019 Tobias Heider <tobias.heider@stusta.de> 5 * Copyright (c) 2010-2013 Reyk Floeter <reyk@openbsd.org> 6 * 7 * Permission to use, copy, modify, and distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above 9 * copyright notice and this permission notice appear in all copies. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20#ifndef IKED_TYPES_H 21#define IKED_TYPES_H 22 23#ifndef IKED_USER 24#define IKED_USER "_iked" 25#endif 26 27#ifndef IKED_CONFIG 28#define IKED_CONFIG "/etc/iked.conf" 29#endif 30 31#define IKED_SOCKET "/var/run/iked.sock" 32 33#ifndef IKED_CA 34#define IKED_CA "/etc/iked/" 35#endif 36 37#define IKED_CA_DIR "ca/" 38#define IKED_CRL_DIR "crls/" 39#define IKED_CERT_DIR "certs/" 40#define IKED_PUBKEY_DIR "pubkeys/" 41#define IKED_PRIVKEY IKED_CA "private/local.key" 42#define IKED_PUBKEY "local.pub" 43 44#define IKED_VENDOR_ID "OpenIKED-" 45 46#define IKED_OCSP_RESPCERT "ocsp/responder.crt" 47 48#define IKED_OPT_VERBOSE 0x00000001 49#define IKED_OPT_NOACTION 0x00000002 50#define IKED_OPT_PASSIVE 0x00000004 51 52#define IKED_IKE_PORT 500 53#define IKED_NATT_PORT 4500 54 55#define IKED_NONCE_MIN 16 /* XXX 128 bits */ 56#define IKED_NONCE_SIZE 32 /* XXX 256 bits */ 57 58#define IKED_COOKIE_MIN 1 /* min 1 bytes */ 59#define IKED_COOKIE_MAX 64 /* max 64 bytes */ 60 61#define IKED_COOKIE2_MIN 8 /* min 8 bytes */ 62#define IKED_COOKIE2_MAX 64 /* max 64 bytes */ 63 64#define IKED_ID_SIZE 1024 /* XXX should be dynamic */ 65#define IKED_PSK_SIZE 1024 /* XXX should be dynamic */ 66#define IKED_MSGBUF_MAX 8192 67#define IKED_CFG_MAX 16 /* maximum CP attributes */ 68#define IKED_IPPROTO_MAX 16 69#define IKED_TAG_SIZE 64 70#define IKED_CYCLE_BUFFERS 8 /* # of static buffers for mapping */ 71#define IKED_PASSWORD_SIZE 256 /* limited by most EAP types */ 72 73#define IKED_LIFETIME_BYTES 4294967296ULL /* 4 GB */ 74#define IKED_LIFETIME_SECONDS 10800 /* 3 hours */ 75 76#define IKED_E 0x1000 /* Decrypted flag */ 77 78struct iked_constmap { 79 unsigned int cm_type; 80 const char *cm_name; 81 const char *cm_descr; 82}; 83 84struct iked_transform { 85 uint8_t xform_type; 86 uint16_t xform_id; 87 uint16_t xform_length; 88 uint16_t xform_keylength; 89 unsigned int xform_score; 90 struct iked_constmap *xform_map; 91}; 92 93enum imsg_type { 94 IMSG_NONE, 95 IMSG_CTL_OK, 96 IMSG_CTL_FAIL, 97 IMSG_CTL_VERBOSE, 98 IMSG_CTL_NOTIFY, 99 IMSG_CTL_RELOAD, 100 IMSG_CTL_RESET, 101 IMSG_CTL_COUPLE, 102 IMSG_CTL_DECOUPLE, 103 IMSG_CTL_ACTIVE, 104 IMSG_CTL_PASSIVE, 105 IMSG_CTL_RESET_ID, 106 IMSG_CTL_SHOW_SA, 107 IMSG_CTL_STATIC, 108 IMSG_COMPILE, 109 IMSG_UDP_SOCKET, 110 IMSG_PFKEY_SOCKET, 111 IMSG_IKE_MESSAGE, 112 IMSG_CFG_POLICY, 113 IMSG_CFG_FLOW, 114 IMSG_CFG_USER, 115 IMSG_CERTREQ, 116 IMSG_CERT, 117 IMSG_CERTVALID, 118 IMSG_CERTINVALID, 119 IMSG_SCERT, 120 IMSG_IF_ADDADDR, 121 IMSG_IF_DELADDR, 122 IMSG_VROUTE_ADD, 123 IMSG_VROUTE_DEL, 124 IMSG_VROUTE_CLONE, 125 IMSG_VDNS_ADD, 126 IMSG_VDNS_DEL, 127 IMSG_OCSP_FD, 128 IMSG_OCSP_CFG, 129 IMSG_AUTH, 130 IMSG_PRIVKEY, 131 IMSG_PUBKEY, 132 IMSG_CTL_SHOW_CERTSTORE, 133 IMSG_CTL_SHOW_STATS, 134 IMSG_CTL_PROCFD, 135 IMSG_CTL_PROCREADY, 136}; 137 138enum privsep_procid { 139 PROC_PARENT = 0, 140 PROC_CONTROL, 141 PROC_CERT, 142 PROC_IKEV2, 143 PROC_MAX 144}; 145 146enum flushmode { 147 RESET_RELOAD = 0, 148 RESET_ALL, 149 RESET_CA, 150 RESET_POLICY, 151 RESET_SA, 152 RESET_USER, 153}; 154 155#ifndef nitems 156#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) 157#endif 158 159#endif /* IKED_TYPES_H */ 160