1*f36db9c4Syasuoka /* $OpenBSD: types.h,v 1.55 2024/07/13 12:22:46 yasuoka Exp $ */ 245ae9d61Sreyk 345ae9d61Sreyk /* 465c540d0Spatrick * Copyright (c) 2019 Tobias Heider <tobias.heider@stusta.de> 5fcebd35dSreyk * Copyright (c) 2010-2013 Reyk Floeter <reyk@openbsd.org> 645ae9d61Sreyk * 745ae9d61Sreyk * Permission to use, copy, modify, and distribute this software for any 845ae9d61Sreyk * purpose with or without fee is hereby granted, provided that the above 945ae9d61Sreyk * copyright notice and this permission notice appear in all copies. 1045ae9d61Sreyk * 1145ae9d61Sreyk * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1245ae9d61Sreyk * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1345ae9d61Sreyk * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1445ae9d61Sreyk * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1545ae9d61Sreyk * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1645ae9d61Sreyk * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1745ae9d61Sreyk * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1845ae9d61Sreyk */ 1945ae9d61Sreyk 20a3e464c5Sreyk #ifndef IKED_TYPES_H 21a3e464c5Sreyk #define IKED_TYPES_H 2245ae9d61Sreyk 23ddb14f44Sreyk #ifndef IKED_USER 249bab3272Sreyk #define IKED_USER "_iked" 25ddb14f44Sreyk #endif 2645ae9d61Sreyk 2745ae9d61Sreyk #ifndef IKED_CONFIG 2845ae9d61Sreyk #define IKED_CONFIG "/etc/iked.conf" 2945ae9d61Sreyk #endif 3072178c58Sreyk 3145ae9d61Sreyk #define IKED_SOCKET "/var/run/iked.sock" 3245ae9d61Sreyk 3345ae9d61Sreyk #ifndef IKED_CA 348d7c6f4cSjsg #define IKED_CA "/etc/iked/" 3545ae9d61Sreyk #endif 3672178c58Sreyk 3745ae9d61Sreyk #define IKED_CA_DIR "ca/" 3845ae9d61Sreyk #define IKED_CRL_DIR "crls/" 3945ae9d61Sreyk #define IKED_CERT_DIR "certs/" 409efaed12Sreyk #define IKED_PUBKEY_DIR "pubkeys/" 4145ae9d61Sreyk #define IKED_PRIVKEY IKED_CA "private/local.key" 4245ae9d61Sreyk #define IKED_PUBKEY "local.pub" 4345ae9d61Sreyk 4487148674Stobhe #define IKED_VENDOR_ID "OpenIKED-" 45*f36db9c4Syasuoka #define IKED_NAS_ID "OpenIKED" 4687148674Stobhe 476d3b905bSmarkus #define IKED_OCSP_RESPCERT "ocsp/responder.crt" 486d3b905bSmarkus 4945ae9d61Sreyk #define IKED_OPT_VERBOSE 0x00000001 5045ae9d61Sreyk #define IKED_OPT_NOACTION 0x00000002 511ae9ce49Stobhe #define IKED_OPT_PASSIVE 0x00000004 5245ae9d61Sreyk 5345ae9d61Sreyk #define IKED_IKE_PORT 500 5445ae9d61Sreyk #define IKED_NATT_PORT 4500 5545ae9d61Sreyk 5645ae9d61Sreyk #define IKED_NONCE_MIN 16 /* XXX 128 bits */ 5745ae9d61Sreyk #define IKED_NONCE_SIZE 32 /* XXX 256 bits */ 5845ae9d61Sreyk 59d4bcf9ebSreyk #define IKED_COOKIE_MIN 1 /* min 1 bytes */ 60d4bcf9ebSreyk #define IKED_COOKIE_MAX 64 /* max 64 bytes */ 61d4bcf9ebSreyk 62c0b327e6Spatrick #define IKED_COOKIE2_MIN 8 /* min 8 bytes */ 63c0b327e6Spatrick #define IKED_COOKIE2_MAX 64 /* max 64 bytes */ 64c0b327e6Spatrick 6578e2301dSgsoares #define IKED_ID_SIZE 1024 /* XXX should be dynamic */ 6645ae9d61Sreyk #define IKED_PSK_SIZE 1024 /* XXX should be dynamic */ 6745ae9d61Sreyk #define IKED_MSGBUF_MAX 8192 6845ae9d61Sreyk #define IKED_CFG_MAX 16 /* maximum CP attributes */ 69fc3e0ec8Stobhe #define IKED_IPPROTO_MAX 16 7045ae9d61Sreyk #define IKED_TAG_SIZE 64 710927abadSmikeb #define IKED_CYCLE_BUFFERS 8 /* # of static buffers for mapping */ 7245ae9d61Sreyk #define IKED_PASSWORD_SIZE 256 /* limited by most EAP types */ 7345ae9d61Sreyk 7438270304Sderaadt #define IKED_LIFETIME_BYTES 4294967296ULL /* 4 GB */ 75b0eeedd0Smikeb #define IKED_LIFETIME_SECONDS 10800 /* 3 hours */ 76b0eeedd0Smikeb 7745ae9d61Sreyk #define IKED_E 0x1000 /* Decrypted flag */ 7845ae9d61Sreyk 7945ae9d61Sreyk struct iked_constmap { 80d09d3a7dSreyk unsigned int cm_type; 8145ae9d61Sreyk const char *cm_name; 8245ae9d61Sreyk const char *cm_descr; 8345ae9d61Sreyk }; 8445ae9d61Sreyk 8545ae9d61Sreyk struct iked_transform { 86d09d3a7dSreyk uint8_t xform_type; 87d09d3a7dSreyk uint16_t xform_id; 88d09d3a7dSreyk uint16_t xform_length; 89d09d3a7dSreyk uint16_t xform_keylength; 90d09d3a7dSreyk unsigned int xform_score; 9145ae9d61Sreyk struct iked_constmap *xform_map; 9245ae9d61Sreyk }; 9345ae9d61Sreyk 9445ae9d61Sreyk enum imsg_type { 9545ae9d61Sreyk IMSG_NONE, 9645ae9d61Sreyk IMSG_CTL_OK, 9745ae9d61Sreyk IMSG_CTL_FAIL, 9845ae9d61Sreyk IMSG_CTL_VERBOSE, 9945ae9d61Sreyk IMSG_CTL_NOTIFY, 10045ae9d61Sreyk IMSG_CTL_RELOAD, 10145ae9d61Sreyk IMSG_CTL_RESET, 102fc20f985Sreyk IMSG_CTL_COUPLE, 103fc20f985Sreyk IMSG_CTL_DECOUPLE, 104fc20f985Sreyk IMSG_CTL_ACTIVE, 105fc20f985Sreyk IMSG_CTL_PASSIVE, 1068c502e93Stobhe IMSG_CTL_RESET_ID, 107969a8793Stobhe IMSG_CTL_SHOW_SA, 108421819b6Stobhe IMSG_CTL_STATIC, 109e2015428Sreyk IMSG_COMPILE, 11045ae9d61Sreyk IMSG_UDP_SOCKET, 11145ae9d61Sreyk IMSG_PFKEY_SOCKET, 11245ae9d61Sreyk IMSG_IKE_MESSAGE, 11345ae9d61Sreyk IMSG_CFG_POLICY, 114fb5e93d4Smikeb IMSG_CFG_FLOW, 11545ae9d61Sreyk IMSG_CFG_USER, 116*f36db9c4Syasuoka IMSG_CFG_RADAUTH, 117*f36db9c4Syasuoka IMSG_CFG_RADACCT, 118*f36db9c4Syasuoka IMSG_CFG_RADSERVER, 119*f36db9c4Syasuoka IMSG_CFG_RADCFGMAP, 120*f36db9c4Syasuoka IMSG_CFG_RADDAE, 121*f36db9c4Syasuoka IMSG_CFG_RADDAECLIENT, 12245ae9d61Sreyk IMSG_CERTREQ, 12345ae9d61Sreyk IMSG_CERT, 12445ae9d61Sreyk IMSG_CERTVALID, 12545ae9d61Sreyk IMSG_CERTINVALID, 126055943a1Stobhe IMSG_SCERT, 127264f8b22Stobhe IMSG_IF_ADDADDR, 128264f8b22Stobhe IMSG_IF_DELADDR, 129264f8b22Stobhe IMSG_VROUTE_ADD, 130264f8b22Stobhe IMSG_VROUTE_DEL, 131264f8b22Stobhe IMSG_VROUTE_CLONE, 1329ef39cf4Stobhe IMSG_VDNS_ADD, 1339ef39cf4Stobhe IMSG_VDNS_DEL, 1346d3b905bSmarkus IMSG_OCSP_FD, 135c973c574Stobhe IMSG_OCSP_CFG, 136e8b444cdSreyk IMSG_AUTH, 137e8b444cdSreyk IMSG_PRIVKEY, 1386cf0fa19Stobhe IMSG_PUBKEY, 139b41cc0c8Stobhe IMSG_CTL_SHOW_CERTSTORE, 140a7dbf4aeStobhe IMSG_CTL_SHOW_STATS, 141a7dbf4aeStobhe IMSG_CTL_PROCFD, 1428e8f56e9Stobhe IMSG_CTL_PROCREADY, 14345ae9d61Sreyk }; 14445ae9d61Sreyk 145f2f2a684Sreyk enum privsep_procid { 14645ae9d61Sreyk PROC_PARENT = 0, 147ebfc3693Sreyk PROC_CONTROL, 14845ae9d61Sreyk PROC_CERT, 149ebfc3693Sreyk PROC_IKEV2, 15045ae9d61Sreyk PROC_MAX 15145ae9d61Sreyk }; 15245ae9d61Sreyk 15345ae9d61Sreyk enum flushmode { 15445ae9d61Sreyk RESET_RELOAD = 0, 15545ae9d61Sreyk RESET_ALL, 15645ae9d61Sreyk RESET_CA, 15745ae9d61Sreyk RESET_POLICY, 15845ae9d61Sreyk RESET_SA, 159cd3f460fStobhe RESET_USER, 160*f36db9c4Syasuoka RESET_RADIUS, 16145ae9d61Sreyk }; 16245ae9d61Sreyk 163477ac106Sderaadt #ifndef nitems 164477ac106Sderaadt #define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) 165477ac106Sderaadt #endif 166477ac106Sderaadt 167a3e464c5Sreyk #endif /* IKED_TYPES_H */ 168