1c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh/* $NetBSD: oakley.h,v 1.5 2006/10/06 12:02:27 manu Exp $ */ 20a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 30a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* Id: oakley.h,v 1.13 2005/05/30 20:12:43 fredsen Exp */ 40a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 50a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* 60a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 70a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * All rights reserved. 80a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 90a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * Redistribution and use in source and binary forms, with or without 100a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * modification, are permitted provided that the following conditions 110a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * are met: 120a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 1. Redistributions of source code must retain the above copyright 130a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * notice, this list of conditions and the following disclaimer. 140a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 2. Redistributions in binary form must reproduce the above copyright 150a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * notice, this list of conditions and the following disclaimer in the 160a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * documentation and/or other materials provided with the distribution. 170a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 3. Neither the name of the project nor the names of its contributors 180a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * may be used to endorse or promote products derived from this software 190a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * without specific prior written permission. 200a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 210a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 220a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 230a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 240a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 250a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 260a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 270a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 280a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 290a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 300a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 310a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * SUCH DAMAGE. 320a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang */ 330a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 340a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifndef _OAKLEY_H 350a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define _OAKLEY_H 360a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 370a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#include "vmbuf.h" 380a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 390a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* refer to RFC 2409 */ 400a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 410a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* Attribute Classes */ 420a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG 1 /* B */ 430a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_DES 1 440a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_IDEA 2 450a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_BLOWFISH 3 460a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_RC5 4 470a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_3DES 5 480a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_CAST 6 490a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_AES 7 500a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_ENC_ALG_CAMELLIA 8 510a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 65001 - 65535 Private Use */ 520a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_HASH_ALG 2 /* B */ 530a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_HASH_ALG_MD5 1 540a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_HASH_ALG_SHA 2 550a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_HASH_ALG_TIGER 3 560a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#if defined(WITH_SHA2) 570a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_HASH_ALG_SHA2_256 4 580a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_HASH_ALG_SHA2_384 5 590a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_HASH_ALG_SHA2_512 6 600a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 610a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 65001 - 65535 Private Use */ 620a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD 3 /* B */ 630a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_PSKEY 1 640a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_DSSSIG 2 650a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_RSASIG 3 660a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_RSAENC 4 670a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_RSAREV 5 680a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_EGENC 6 690a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_EGREV 7 700a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* Hybrid Auth */ 710a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifdef ENABLE_HYBRID 720a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_HYBRID_RSA_I 64221 730a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_HYBRID_RSA_R 64222 740a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_HYBRID_DSS_I 64223 750a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_HYBRID_DSS_R 64224 760a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 770a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 65001 - 65535 Private Use */ 780a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 790a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* Plain Xauth */ 800a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_PSKEY_I 65001 810a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_PSKEY_R 65002 820a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_DSSSIG_I 65003 830a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_DSSSIG_R 65004 840a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSASIG_I 65005 850a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSASIG_R 65006 860a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSAENC_I 65007 870a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSAENC_R 65008 880a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSAREV_I 65009 890a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_AUTH_METHOD_XAUTH_RSAREV_R 65010 900a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 910a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 92c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh /* 65500 -> still private 93c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh * to avoid clash with GSSAPI_KRB below 94c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh */ 95c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#define FICTIVE_AUTH_METHOD_XAUTH_PSKEY_I 65500 960a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 970a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 98c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh /* 99c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh * The following are valid when the Vendor ID is one of 100c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh * the following: 101c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh * 102c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh * MD5("A GSS-API Authentication Method for IKE") 103c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh * MD5("GSSAPI") (recognized by Windows 2000) 104c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh * MD5("MS NT5 ISAKMPOAKLEY") (sent by Windows 2000) 105c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh */ 106c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#define OAKLEY_ATTR_AUTH_METHOD_GSSAPI_KRB 65001 1070a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC 4 /* B */ 1080a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP768 1 1090a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP1024 2 1100a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_EC2N155 3 1110a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_EC2N185 4 1120a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP1536 5 1130a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP2048 14 1140a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP3072 15 1150a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP4096 16 1160a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP6144 17 1170a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_DESC_MODP8192 18 1180a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 32768 - 65535 Private Use */ 1190a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_TYPE 5 /* B */ 1200a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_TYPE_MODP 1 1210a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_TYPE_ECP 2 1220a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_TYPE_EC2N 3 1230a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 65001 - 65535 Private Use */ 1240a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_PI 6 /* V */ 1250a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_GEN_ONE 7 /* V */ 1260a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_GEN_TWO 8 /* V */ 1270a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_CURVE_A 9 /* V */ 1280a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_CURVE_B 10 /* V */ 1290a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_SA_LD_TYPE 11 /* B */ 1300a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_SA_LD_TYPE_DEFAULT 1 1310a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_SA_LD_TYPE_SEC 1 1320a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_SA_LD_TYPE_KB 2 1330a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_SA_LD_TYPE_MAX 3 1340a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 65001 - 65535 Private Use */ 1350a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_SA_LD 12 /* V */ 1360a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_SA_LD_SEC_DEFAULT 28800 /* 8 hours */ 1370a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_PRF 13 /* B */ 1380a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_KEY_LEN 14 /* B */ 1390a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_FIELD_SIZE 15 /* B */ 1400a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GRP_ORDER 16 /* V */ 1410a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_BLOCK_SIZE 17 /* B */ 1420a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 16384 - 32767 Private Use */ 1430a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1440a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang /* 1450a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * The following are valid when the Vendor ID is one of 1460a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * the following: 1470a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 1480a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * MD5("A GSS-API Authentication Method for IKE") 1490a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * MD5("GSSAPI") (recognized by Windows 2000) 1500a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * MD5("MS NT5 ISAKMPOAKLEY") (sent by Windows 2000) 1510a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang */ 1520a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define OAKLEY_ATTR_GSS_ID 16384 1530a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1540a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define MAXPADLWORD 20 1550a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1560a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangstruct dhgroup { 1570a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang int type; 1580a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t *prime; 1590a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang int gen1; 1600a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang int gen2; 1610a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t *curve_a; 1620a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t *curve_b; 1630a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t *order; 1640a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang}; 1650a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 166c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh/* certificate holder */ 167c91307af2622f6625525f3c1f9c954376df950adChia-chi Yehtypedef struct cert_t_tag { 168c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh u_int8_t type; /* type of CERT, must be same to pl->v[0]*/ 169c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh vchar_t cert; /* pointer to the CERT */ 170c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh vchar_t *pl; /* CERT payload minus isakmp general header */ 171c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh} cert_t; 172c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh 1730a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangstruct ph1handle; 1740a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangstruct ph2handle; 1750a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangstruct isakmp_ivm; 1760a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1770a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_get_defaultlifetime __P((void)); 1780a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1790a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_dhinit __P((void)); 1800a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern void oakley_dhgrp_free __P((struct dhgroup *)); 1810a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_dh_compute __P((const struct dhgroup *, 1820a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t *, vchar_t *, vchar_t *, vchar_t **)); 1830a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_dh_generate __P((const struct dhgroup *, 1840a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t **, vchar_t **)); 1850a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_setdhgroup __P((int, struct dhgroup **)); 1860a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1870a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_prf __P((vchar_t *, vchar_t *, struct ph1handle *)); 1880a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_hash __P((vchar_t *, struct ph1handle *)); 1890a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1900a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_compute_keymat __P((struct ph2handle *, int)); 1910a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 1920a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#if notyet 1930a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_compute_hashx __P((void)); 1940a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 1950a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_compute_hash3 __P((struct ph1handle *, 1960a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang u_int32_t, vchar_t *)); 1970a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_compute_hash1 __P((struct ph1handle *, 1980a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang u_int32_t, vchar_t *)); 1990a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_ph1hash_common __P((struct ph1handle *, int)); 2000a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_ph1hash_base_i __P((struct ph1handle *, int)); 2010a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_ph1hash_base_r __P((struct ph1handle *, int)); 2020a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 2030a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_validate_auth __P((struct ph1handle *)); 2040a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_getmycert __P((struct ph1handle *)); 2050a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_getsign __P((struct ph1handle *)); 2060a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_getcr __P((struct ph1handle *)); 2070a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_checkcr __P((struct ph1handle *)); 2080a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_needcr __P((int)); 2090a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangstruct isakmp_gen; 2100a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_savecert __P((struct ph1handle *, struct isakmp_gen *)); 2110a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_savecr __P((struct ph1handle *, struct isakmp_gen *)); 2120a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 2130a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_skeyid __P((struct ph1handle *)); 2140a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_skeyid_dae __P((struct ph1handle *)); 2150a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 2160a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_compute_enckey __P((struct ph1handle *)); 217c91307af2622f6625525f3c1f9c954376df950adChia-chi Yehextern cert_t *oakley_newcert __P((void)); 218c91307af2622f6625525f3c1f9c954376df950adChia-chi Yehextern void oakley_delcert __P((cert_t *)); 2190a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern int oakley_newiv __P((struct ph1handle *)); 2200a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern struct isakmp_ivm *oakley_newiv2 __P((struct ph1handle *, u_int32_t)); 2210a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern void oakley_delivm __P((struct isakmp_ivm *)); 2220a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_do_decrypt __P((struct ph1handle *, 2230a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t *, vchar_t *, vchar_t *)); 2240a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wangextern vchar_t *oakley_do_encrypt __P((struct ph1handle *, 2250a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang vchar_t *, vchar_t *, vchar_t *)); 2260a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 227c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#ifdef ENABLE_HYBRID 228c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#define AUTHMETHOD(iph1) \ 229c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh (((iph1)->rmconf->xauth && \ 230c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh (iph1)->approval->authmethod == OAKLEY_ATTR_AUTH_METHOD_XAUTH_PSKEY_I) ? \ 231c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh FICTIVE_AUTH_METHOD_XAUTH_PSKEY_I : (iph1)->approval->authmethod) 232c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#define RMAUTHMETHOD(iph1) \ 233c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh (((iph1)->rmconf->xauth && \ 234c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh (iph1)->rmconf->proposal->authmethod == \ 235c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh OAKLEY_ATTR_AUTH_METHOD_XAUTH_PSKEY_I) ? \ 236c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh FICTIVE_AUTH_METHOD_XAUTH_PSKEY_I : \ 237c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh (iph1)->rmconf->proposal->authmethod) 238c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#else 239c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#define AUTHMETHOD(iph1) (iph1)->approval->authmethod 240c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#define RMAUTHMETHOD(iph1) (iph1)->rmconf->proposal->authmethod 241c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh#endif /* ENABLE_HYBRID */ 242c91307af2622f6625525f3c1f9c954376df950adChia-chi Yeh 2430a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif /* _OAKLEY_H */ 244