source: trunk/third/openssh/packet.h @ 18759

Revision 18759, 3.3 KB checked in by zacheiss, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18758, which included commits to RCS files with non-trunk default branches.
Line 
1/*      $OpenBSD: packet.h,v 1.35 2002/06/19 18:01:00 markus Exp $      */
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 *                    All rights reserved
7 * Interface for the packet protocol functions.
8 *
9 * As far as I am concerned, the code I have written for this software
10 * can be used freely for any purpose.  Any derived versions of this
11 * software must be clearly marked as such, and if the derived work is
12 * incompatible with the protocol description in the RFC file, it must be
13 * called by a name other than "ssh" or "Secure Shell".
14 */
15
16#ifndef PACKET_H
17#define PACKET_H
18
19#include <openssl/bn.h>
20
21void     packet_set_connection(int, int);
22void     packet_set_nonblocking(void);
23int      packet_get_connection_in(void);
24int      packet_get_connection_out(void);
25void     packet_close(void);
26void     packet_set_encryption_key(const u_char *, u_int, int);
27u_int    packet_get_encryption_key(u_char *);
28void     packet_set_protocol_flags(u_int);
29u_int    packet_get_protocol_flags(void);
30void     packet_start_compression(int);
31void     packet_set_interactive(int);
32int      packet_is_interactive(void);
33
34void     packet_start(u_char);
35void     packet_put_char(int ch);
36void     packet_put_int(u_int value);
37void     packet_put_bignum(BIGNUM * value);
38void     packet_put_bignum2(BIGNUM * value);
39void     packet_put_string(const void *buf, u_int len);
40void     packet_put_cstring(const char *str);
41void     packet_put_raw(const void *buf, u_int len);
42void     packet_send(void);
43
44int      packet_read(void);
45void     packet_read_expect(int type);
46int      packet_read_poll(void);
47void     packet_process_incoming(const char *buf, u_int len);
48int      packet_read_seqnr(u_int32_t *seqnr_p);
49int      packet_read_poll_seqnr(u_int32_t *seqnr_p);
50
51u_int    packet_get_char(void);
52u_int    packet_get_int(void);
53void     packet_get_bignum(BIGNUM * value);
54void     packet_get_bignum2(BIGNUM * value);
55void    *packet_get_raw(int *length_ptr);
56void    *packet_get_string(u_int *length_ptr);
57void     packet_disconnect(const char *fmt,...) __attribute__((format(printf, 1, 2)));
58void     packet_send_debug(const char *fmt,...) __attribute__((format(printf, 1, 2)));
59
60void     set_newkeys(int mode);
61int      packet_get_keyiv_len(int);
62void     packet_get_keyiv(int, u_char *, u_int);
63int      packet_get_keycontext(int, u_char *);
64void     packet_set_keycontext(int, u_char *);
65u_int32_t packet_get_seqnr(int);
66void     packet_set_seqnr(int, u_int32_t);
67int      packet_get_ssh1_cipher(void);
68void     packet_set_iv(int, u_char *);
69
70void     packet_write_poll(void);
71void     packet_write_wait(void);
72int      packet_have_data_to_write(void);
73int      packet_not_very_much_data_to_write(void);
74
75int      packet_connection_is_on_socket(void);
76int      packet_connection_is_ipv4(void);
77int      packet_remaining(void);
78void     packet_send_ignore(int);
79void     packet_add_padding(u_char);
80
81void     tty_make_modes(int, struct termios *);
82void     tty_parse_modes(int, int *);
83
84extern int max_packet_size;
85int      packet_set_maxsize(int);
86#define  packet_get_maxsize() max_packet_size
87
88/* don't allow remaining bytes after the end of the message */
89#define packet_check_eom() \
90do { \
91        int _len = packet_remaining(); \
92        if (_len > 0) { \
93                log("Packet integrity error (%d bytes remaining) at %s:%d", \
94                    _len ,__FILE__, __LINE__); \
95                packet_disconnect("Packet integrity error."); \
96        } \
97} while (0)
98
99#endif                          /* PACKET_H */
Note: See TracBrowser for help on using the repository browser.