version 1.15, 2000/04/14 10:30:32 |
version 1.15.2.3, 2001/03/12 15:44:12 |
|
|
/* |
/* |
* |
|
* packet.h |
|
* |
|
* Author: Tatu Ylonen <ylo@cs.hut.fi> |
* Author: Tatu Ylonen <ylo@cs.hut.fi> |
* |
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
* All rights reserved |
* All rights reserved |
* |
|
* Created: Sat Mar 18 02:02:14 1995 ylo |
|
* |
|
* Interface for the packet protocol functions. |
* Interface for the packet protocol functions. |
* |
* |
|
* As far as I am concerned, the code I have written for this software |
|
* can be used freely for any purpose. Any derived versions of this |
|
* software must be clearly marked as such, and if the derived work is |
|
* incompatible with the protocol description in the RFC file, it must be |
|
* called by a name other than "ssh" or "Secure Shell". |
*/ |
*/ |
|
|
/* RCSID("$Id$"); */ |
/* RCSID("$OpenBSD$"); */ |
|
|
#ifndef PACKET_H |
#ifndef PACKET_H |
#define PACKET_H |
#define PACKET_H |
|
|
* encrypted independently of each other. Cipher types are defined in ssh.h. |
* encrypted independently of each other. Cipher types are defined in ssh.h. |
*/ |
*/ |
void |
void |
packet_set_encryption_key(const unsigned char *key, unsigned int keylen, |
packet_set_encryption_key(const u_char *key, u_int keylen, |
int cipher_type); |
int cipher_type); |
|
|
/* |
/* |
* Sets remote side protocol flags for the current connection. This can be |
* Sets remote side protocol flags for the current connection. This can be |
* called at any time. |
* called at any time. |
*/ |
*/ |
void packet_set_protocol_flags(unsigned int flags); |
void packet_set_protocol_flags(u_int flags); |
|
|
/* Returns the remote protocol flags set earlier by the above function. */ |
/* Returns the remote protocol flags set earlier by the above function. */ |
unsigned int packet_get_protocol_flags(void); |
u_int packet_get_protocol_flags(void); |
|
|
/* Enables compression in both directions starting from the next packet. */ |
/* Enables compression in both directions starting from the next packet. */ |
void packet_start_compression(int level); |
void packet_start_compression(int level); |
|
|
* Informs that the current session is interactive. Sets IP flags for |
* Informs that the current session is interactive. Sets IP flags for |
* optimal performance in interactive use. |
* optimal performance in interactive use. |
*/ |
*/ |
void packet_set_interactive(int interactive, int keepalives); |
void packet_set_interactive(int interactive); |
|
|
/* Returns true if the current connection is interactive. */ |
/* Returns true if the current connection is interactive. */ |
int packet_is_interactive(void); |
int packet_is_interactive(void); |
|
|
void packet_put_char(int ch); |
void packet_put_char(int ch); |
|
|
/* Appends an integer to the packet data. */ |
/* Appends an integer to the packet data. */ |
void packet_put_int(unsigned int value); |
void packet_put_int(u_int value); |
|
|
/* Appends an arbitrary precision integer to packet data. */ |
/* Appends an arbitrary precision integer to packet data. */ |
void packet_put_bignum(BIGNUM * value); |
void packet_put_bignum(BIGNUM * value); |
void packet_put_bignum2(BIGNUM * value); |
void packet_put_bignum2(BIGNUM * value); |
|
|
/* Appends a string to packet data. */ |
/* Appends a string to packet data. */ |
void packet_put_string(const char *buf, unsigned int len); |
void packet_put_string(const char *buf, u_int len); |
void packet_put_cstring(const char *str); |
void packet_put_cstring(const char *str); |
void packet_put_raw(const char *buf, unsigned int len); |
void packet_put_raw(const char *buf, u_int len); |
|
|
/* |
/* |
* Finalizes and sends the packet. If the encryption key has been set, |
* Finalizes and sends the packet. If the encryption key has been set, |
|
|
* Buffers the given amount of input characters. This is intended to be used |
* Buffers the given amount of input characters. This is intended to be used |
* together with packet_read_poll. |
* together with packet_read_poll. |
*/ |
*/ |
void packet_process_incoming(const char *buf, unsigned int len); |
void packet_process_incoming(const char *buf, u_int len); |
|
|
/* Returns a character (0-255) from the packet data. */ |
/* Returns a character (0-255) from the packet data. */ |
unsigned int packet_get_char(void); |
u_int packet_get_char(void); |
|
|
/* Returns an integer from the packet data. */ |
/* Returns an integer from the packet data. */ |
unsigned int packet_get_int(void); |
u_int packet_get_int(void); |
|
|
/* |
/* |
* Returns an arbitrary precision integer from the packet data. The integer |
* Returns an arbitrary precision integer from the packet data. The integer |
|
|
* no longer needed. The length_ptr argument may be NULL, or point to an |
* no longer needed. The length_ptr argument may be NULL, or point to an |
* integer into which the length of the string is stored. |
* integer into which the length of the string is stored. |
*/ |
*/ |
char *packet_get_string(unsigned int *length_ptr); |
char *packet_get_string(u_int *length_ptr); |
|
|
/* |
/* |
* Logs the error in syslog using LOG_INFO, constructs and sends a disconnect |
* Logs the error in syslog using LOG_INFO, constructs and sends a disconnect |