File: ssh.h

package info (click to toggle)
dsniff 2.4b1+debian-29
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 2,020 kB
  • sloc: ansic: 10,803; sh: 152; makefile: 126
file content (73 lines) | stat: -rw-r--r-- 1,434 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 * ssh.h
 *
 * Minimal SSH-1 protocol implementation.
 *
 * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
 *
 * $Id: ssh.h,v 1.3 2001/03/15 08:33:06 dugsong Exp $
 */

#ifndef SSH_H
#define SSH_H

#define SSH_MAX_PADLEN		8
#define SSH_MAX_PKTLEN		262144

/* Authentication types. */
#define SSH_AUTH_PASSWORD	3

/* Cipher types. */
#define SSH_CIPHER_NONE		0
#define SSH_CIPHER_3DES		3
#define SSH_CIPHER_BLOWFISH	6

/* Message types. */
#define SSH_MSG_DISCONNECT	1
#define SSH_SMSG_PUBLIC_KEY	2
#define SSH_CMSG_SESSION_KEY	3
#define SSH_CMSG_USER		4
#define SSH_CMSG_AUTH_PASSWORD	9
#define SSH_SMSG_SUCCESS	14
#define SSH_SMSG_FAILURE	15
#define SSH_CMSG_STDIN_DATA	16
#define SSH_SMSG_STDOUT_DATA	17
#define SSH_SMSG_STDERR_DATA	18
#define SSH_SMSG_EXITSTATUS	20

typedef struct ssh_ctx {
	int	 authmask;
	int	 encmask;
	RSA	*servkey;
	RSA	*hostkey;
} SSH_CTX;

typedef struct ssh {
	int	 fd;
	SSH_CTX *ctx;
	u_char	 sesskey[32];
	void	*estate;
	void	*dstate;
	void   (*encrypt)(u_char *src, u_char *dst, int len, void *state);
	void   (*decrypt)(u_char *src, u_char *dst, int len, void *state);
} SSH;

void	 SSH_init(void);

SSH_CTX	*SSH_CTX_new(void);

SSH	*SSH_new(SSH_CTX *ctx);

void	 SSH_set_fd(SSH *ssh, int fd);

int	 SSH_accept(SSH *ssh);

int	 SSH_connect(SSH *ssh);

int	 SSH_recv(SSH *ssh, u_char *buf, int size);

int	 SSH_send(SSH *ssh, u_char *buf, int len);

void	 SSH_close(SSH *ssh);

#endif /* SSH_H */