1 /*
   2  * Copyright (c) 1999, 2000, 2001 Markus Friedl.  All rights reserved.
   3  *
   4  * Redistribution and use in source and binary forms, with or without
   5  * modification, are permitted provided that the following conditions
   6  * are met:
   7  * 1. Redistributions of source code must retain the above copyright
   8  *    notice, this list of conditions and the following disclaimer.
   9  * 2. Redistributions in binary form must reproduce the above copyright
  10  *    notice, this list of conditions and the following disclaimer in the
  11  *    documentation and/or other materials provided with the distribution.
  12  *
  13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  15  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  16  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  17  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  18  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  19  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  20  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  21  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  22  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  23  */
  24 /*
  25  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  26  * Use is subject to license terms.
  27  */
  28 
  29 #ifndef _COMPAT_H
  30 #define _COMPAT_H
  31 
  32 /*      $OpenBSD: compat.h,v 1.33 2002/09/27 10:42:09 mickey Exp $      */
  33 
  34 #ifdef __cplusplus
  35 extern "C" {
  36 #endif
  37 
  38 
  39 #define SSH_PROTO_UNKNOWN       0x00
  40 #define SSH_PROTO_1             0x01
  41 #define SSH_PROTO_1_PREFERRED   0x02
  42 #define SSH_PROTO_2             0x04
  43 
  44 #define SSH_BUG_SIGBLOB         0x00000001
  45 #define SSH_BUG_PKSERVICE       0x00000002
  46 #define SSH_BUG_HMAC            0x00000004
  47 #define SSH_BUG_X11FWD          0x00000008
  48 #define SSH_OLD_SESSIONID       0x00000010
  49 #define SSH_BUG_PKAUTH          0x00000020
  50 #define SSH_BUG_DEBUG           0x00000040
  51 #define SSH_BUG_BANNER          0x00000080
  52 #define SSH_BUG_IGNOREMSG       0x00000100
  53 #define SSH_BUG_PKOK            0x00000200
  54 #define SSH_BUG_PASSWORDPAD     0x00000400
  55 #define SSH_BUG_SCANNER         0x00000800
  56 #define SSH_BUG_BIGENDIANAES    0x00001000
  57 #define SSH_BUG_RSASIGMD5       0x00002000
  58 #define SSH_OLD_DHGEX           0x00004000
  59 #define SSH_BUG_NOREKEY         0x00008000
  60 #define SSH_BUG_HBSERVICE       0x00010000
  61 #define SSH_BUG_OPENFAILURE     0x00020000
  62 #define SSH_BUG_DERIVEKEY       0x00040000
  63 /*#define this is free slot     0x00080000 */
  64 #define SSH_BUG_DUMMYCHAN       0x00100000
  65 #define SSH_BUG_EXTEOF          0x00200000
  66 #define SSH_BUG_K5USER          0x00400000
  67 #define SSH_BUG_PROBE           0x00800000
  68 #define SSH_BUG_LOCALES_NOT_LANGTAGS            0x01000000
  69 #define SSH_OLD_GSSAPI          0x02000000
  70 #define SSH_BUG_GSSAPI_BER      0x04000000
  71 #define SSH_BUG_FIRSTKEX        0x08000000
  72 #define SSH_BUG_RFWD_ADDR       0x10000000
  73 #define SSH_BUG_GSSKEX_HOSTKEY  0x20000000
  74 /* SSH_OLD_FORWARD_ADDR flag bumped up the SunSSH version to 1.2 */
  75 #define SSH_OLD_FORWARD_ADDR    0x40000000
  76 /* SSH_BUG_STRING_ENCODING flag bumped up the SunSSH version to 1.4 */
  77 #define SSH_BUG_STRING_ENCODING 0x80000000
  78 
  79 void     enable_compat13(void);
  80 void     enable_compat20(void);
  81 void     compat_datafellows(const char *);
  82 int      proto_spec(const char *);
  83 char    *compat_cipher_proposal(char *);
  84 
  85 extern int compat13;
  86 extern int compat20;
  87 extern uint32_t datafellows;
  88 
  89 #ifdef __cplusplus
  90 }
  91 #endif
  92 
  93 #endif /* _COMPAT_H */