]> andersk Git - openssh.git/blobdiff - packet.h
- (djm) CVS OpenBSD sync:
[openssh.git] / packet.h
index 9b0bf91c01e769c7222aa2623fc91b2fb5596063..7a3935399e14f22c0ea0adb41b694452a188b058 100644 (file)
--- a/packet.h
+++ b/packet.h
@@ -1,31 +1,22 @@
 /*
- * 
- * packet.h
- * 
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
- * 
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
  *                    All rights reserved
- * 
- * Created: Sat Mar 18 02:02:14 1995 ylo
- * 
  * 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: packet.h,v 1.17 2000/09/07 20:27:52 deraadt Exp $"); */
 
 #ifndef PACKET_H
 #define PACKET_H
 
-#include "config.h"
-
-#ifdef HAVE_OPENSSL
 #include <openssl/bn.h>
-#endif
-#ifdef HAVE_SSL
-#include <ssl/bn.h>
-#endif
 
 /*
  * Sets the socket used for communication.  Disables encryption until
@@ -54,7 +45,7 @@ void    packet_close(void);
  * key is used for both sending and reception.  However, both directions are
  * 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,
     int cipher_type);
 
@@ -90,9 +81,12 @@ void    packet_put_int(unsigned int value);
 
 /* Appends an arbitrary precision integer to packet data. */
 void    packet_put_bignum(BIGNUM * value);
+void    packet_put_bignum2(BIGNUM * value);
 
 /* Appends a string to packet data. */
 void    packet_put_string(const char *buf, unsigned int len);
+void    packet_put_cstring(const char *str);
+void    packet_put_raw(const char *buf, unsigned int len);
 
 /*
  * Finalizes and sends the packet.  If the encryption key has been set,
@@ -136,6 +130,8 @@ unsigned int packet_get_int(void);
  * must have been initialized before this call.
  */
 void    packet_get_bignum(BIGNUM * value, int *length_ptr);
+void    packet_get_bignum2(BIGNUM * value, int *length_ptr);
+char   *packet_get_raw(int *length_ptr);
 
 /*
  * Returns a string from the packet data.  The string is allocated using
@@ -151,7 +147,7 @@ char   *packet_get_string(unsigned int *length_ptr);
  * The error message should not contain a newline.  The total length of the
  * message must not exceed 1024 bytes.
  */
-void    packet_disconnect(const char *fmt,...);
+void    packet_disconnect(const char *fmt,...) __attribute__((format(printf, 1, 2)));
 
 /*
  * Sends a diagnostic message to the other side.  This message can be sent at
@@ -163,7 +159,7 @@ void    packet_disconnect(const char *fmt,...);
  * remote side protocol flags do not indicate that it supports SSH_MSG_DEBUG,
  * this will do nothing.
  */
-void    packet_send_debug(const char *fmt,...);
+void    packet_send_debug(const char *fmt,...) __attribute__((format(printf, 1, 2)));
 
 /* Checks if there is any buffered output, and tries to write some of the output. */
 void    packet_write_poll(void);
@@ -198,4 +194,24 @@ do { \
   } \
 } while (0)
 
+#define packet_done() \
+do { \
+       int _len = packet_remaining(); \
+       if (_len > 0) { \
+               log("Packet integrity error (%d bytes remaining) at %s:%d", \
+                   _len ,__FILE__, __LINE__); \
+               packet_disconnect("Packet integrity error."); \
+       } \
+} while (0)
+
+/* remote host is connected via a socket/ipv4 */
+int    packet_connection_is_on_socket(void);
+int    packet_connection_is_ipv4(void);
+
+/* enable SSH2 packet format */
+void   packet_set_ssh2_format(void);
+
+/* returns remaining payload bytes */
+int    packet_remaining(void);
+
 #endif                         /* PACKET_H */
This page took 0.033517 seconds and 4 git commands to generate.