⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kex.h

📁 OpenSSL Source code for SFTP, SSH, and many others
💻 H
字号:
/*	$OpenBSD: kex.h,v 1.31 2002/05/16 22:02:50 markus Exp $	*//* * Copyright (c) 2000, 2001 Markus Friedl.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#ifndef KEX_H#define KEX_H#include <openssl/evp.h>#include "buffer.h"#include "cipher.h"#include "key.h"#define	KEX_DH1		"diffie-hellman-group1-sha1"#define	KEX_DHGEX	"diffie-hellman-group-exchange-sha1"enum kex_init_proposals {	PROPOSAL_KEX_ALGS,	PROPOSAL_SERVER_HOST_KEY_ALGS,	PROPOSAL_ENC_ALGS_CTOS,	PROPOSAL_ENC_ALGS_STOC,	PROPOSAL_MAC_ALGS_CTOS,	PROPOSAL_MAC_ALGS_STOC,	PROPOSAL_COMP_ALGS_CTOS,	PROPOSAL_COMP_ALGS_STOC,	PROPOSAL_LANG_CTOS,	PROPOSAL_LANG_STOC,	PROPOSAL_MAX};enum kex_modes {	MODE_IN,	MODE_OUT,	MODE_MAX};enum kex_exchange {	DH_GRP1_SHA1,	DH_GEX_SHA1};#define KEX_INIT_SENT	0x0001typedef struct Kex Kex;typedef struct Mac Mac;typedef struct Comp Comp;typedef struct Enc Enc;typedef struct Newkeys Newkeys;struct Enc {	char	*name;	Cipher	*cipher;	int	enabled;	u_int	key_len;	u_int	block_size;	u_char	*key;	u_char	*iv;};struct Mac {	char	*name;	int	enabled;	const EVP_MD	*md;	int	mac_len;	u_char	*key;	int	key_len;};struct Comp {	int	type;	int	enabled;	char	*name;};struct Newkeys {	Enc	enc;	Mac	mac;	Comp	comp;};struct Kex {	u_char	*session_id;	int	session_id_len;	Newkeys	*newkeys[MODE_MAX];	int	we_need;	int	server;	char	*name;	int	hostkey_type;	int	kex_type;	Buffer	my;	Buffer	peer;	int	done;	int	flags;	char	*client_version_string;	char	*server_version_string;	int	(*verify_host_key)(Key *);	Key	*(*load_host_key)(int);	int	(*host_key_index)(Key *);};Kex	*kex_setup(char *[PROPOSAL_MAX]);void	 kex_finish(Kex *);void	 kex_send_kexinit(Kex *);void	 kex_input_kexinit(int, u_int32_t, void *);void	 kex_derive_keys(Kex *, u_char *, BIGNUM *);void	 kexdh(Kex *);void	 kexgex(Kex *);Newkeys *kex_get_newkeys(int);#if defined(DEBUG_KEX) || defined(DEBUG_KEXDH)void	dump_digest(char *, u_char *, int);#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -