#ifdef AUTOKEY
#include "global.h"
#include "md5.h"
#ifdef RSAREF
#include "rsaref.h"
#include "rsa.h"
#define EVP_SignInit(a, b) R_SignInit(a, b)
#define EVP_SignUpdate(a, b, c) R_SignUpdate(a, b, c);
#define EVP_SignFinal(a, b, c, d) R_SignFinal(a, b, c, d);
#define EVP_VerifyInit(a, b) R_VerifyInit(a, b)
#define EVP_VerifyUpdate(a, b, c) R_VerifyUpdate(a, b, c);
#define EVP_VerifyFinal(a, b, c, d) R_VerifyFinal(a, b, c, d);
#endif
#define CRYPTO_FLAG_ENAB 0x01
#define CRYPTO_FLAG_RSA 0x02
#define CRYPTO_FLAG_CERT 0x04
#define CRYPTO_FLAG_DH 0x08
#define CRYPTO_FLAG_TAI 0x10
#define CRYPTO_VN 1
#define CRYPTO_NULL ((CRYPTO_VN << 8) | 0)
#define CRYPTO_STAT ((CRYPTO_VN << 8) | 1)
#define CRYPTO_ASSOC ((CRYPTO_VN << 8) | 2)
#define CRYPTO_AUTO ((CRYPTO_VN << 8) | 3)
#define CRYPTO_PRIV ((CRYPTO_VN << 8) | 4)
#define CRYPTO_DHPAR ((CRYPTO_VN << 8) | 5)
#define CRYPTO_DH ((CRYPTO_VN << 8) | 6)
#define CRYPTO_NAME ((CRYPTO_VN << 8) | 7)
#define CRYPTO_CERT ((CRYPTO_VN << 8) | 8)
#define CRYPTO_TAI ((CRYPTO_VN << 8) | 9)
#define CRYPTO_RESP 0x8000
#define CRYPTO_ERROR 0x4000
#ifdef PUBKEY
#define CRYPTO_CONF_NONE 0
#define CRYPTO_CONF_FLAGS 1
#define CRYPTO_CONF_PRIV 2
#define CRYPTO_CONF_PUBL 3
#define CRYPTO_CONF_DH 4
#define CRYPTO_CONF_LEAP 5
#define CRYPTO_CONF_KEYS 6
#define CRYPTO_CONF_CERT 7
#endif
extern void crypto_recv P((struct peer *, struct recvbuf *));
extern int crypto_xmit P((u_int32 *, int, u_int, keyid_t,
u_int));
extern keyid_t session_key P((struct sockaddr_in *, struct
sockaddr_in *, keyid_t, keyid_t,
u_long));
extern void make_keylist P((struct peer *, struct interface *));
extern void key_expire P((struct peer *));
extern void crypto_agree P((void));
#ifdef PUBKEY
extern void crypto_config P((int, char *));
extern void crypto_setup P((void));
extern int crypto_public P((struct peer *, u_char *, u_int));
#endif
extern u_int crypto_flags;
#ifdef PUBKEY
extern R_DH_PARAMS dh_params;
extern struct value host;
extern struct value certif;
extern struct value dhparam;
extern struct value dhpub;
extern struct value tai_leap;
extern u_int crypto_flags;
extern u_int sys_tai;
#endif
#endif