[BACK]Return to misc.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/misc.c between version 1.51 and 1.52

version 1.51, 2006/03/25 13:17:02 version 1.52, 2006/03/30 09:58:15
Line 1 
Line 1 
 /* $OpenBSD$ */  /* $OpenBSD$ */
 /*  /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.   * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  * Copyright (c) 2005 Damien Miller.  All rights reserved.   * Copyright (c) 2005,2006 Damien Miller.  All rights reserved.
  *   *
  * Redistribution and use in source and binary forms, with or without   * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions   * modification, are permitted provided that the following conditions
Line 676 
Line 676 
 }  }
   
 char *  char *
 tohex(const u_char *d, u_int l)  tohex(const void *vp, size_t l)
 {  {
           const u_char *p = (const u_char *)vp;
         char b[3], *r;          char b[3], *r;
         u_int i, hl;          size_t i, hl;
   
           if (l > 65536)
                   return xstrdup("tohex: length > 65536");
   
         hl = l * 2 + 1;          hl = l * 2 + 1;
         r = xcalloc(1, hl);          r = xcalloc(1, hl);
         for (i = 0; i < l; i++) {          for (i = 0; i < l; i++) {
                 snprintf(b, sizeof(b), "%02x", d[i]);                  snprintf(b, sizeof(b), "%02x", p[i]);
                 strlcat(r, b, hl);                  strlcat(r, b, hl);
         }          }
         return (r);          return (r);
 }  }
   
   u_int64_t
   get_u64(const void *vp)
   {
           const u_char *p = (const u_char *)vp;
           u_int64_t v;
   
           v  = (u_int64_t)p[0] << 56;
           v |= (u_int64_t)p[1] << 48;
           v |= (u_int64_t)p[2] << 40;
           v |= (u_int64_t)p[3] << 32;
           v |= (u_int64_t)p[4] << 24;
           v |= (u_int64_t)p[5] << 16;
           v |= (u_int64_t)p[6] << 8;
           v |= (u_int64_t)p[7];
   
           return (v);
   }
   
   u_int32_t
   get_u32(const void *vp)
   {
           const u_char *p = (const u_char *)vp;
           u_int32_t v;
   
           v  = (u_int32_t)p[0] << 24;
           v |= (u_int32_t)p[1] << 16;
           v |= (u_int32_t)p[2] << 8;
           v |= (u_int32_t)p[3];
   
           return (v);
   }
   
   u_int16_t
   get_u16(const void *vp)
   {
           const u_char *p = (const u_char *)vp;
           u_int16_t v;
   
           v  = (u_int16_t)p[0] << 8;
           v |= (u_int16_t)p[1];
   
           return (v);
   }
   
   void
   put_u64(void *vp, u_int64_t v)
   {
           u_char *p = (u_char *)vp;
   
           p[0] = (u_char)(v >> 56) & 0xff;
           p[1] = (u_char)(v >> 48) & 0xff;
           p[2] = (u_char)(v >> 40) & 0xff;
           p[3] = (u_char)(v >> 32) & 0xff;
           p[4] = (u_char)(v >> 24) & 0xff;
           p[5] = (u_char)(v >> 16) & 0xff;
           p[6] = (u_char)(v >> 8) & 0xff;
           p[7] = (u_char)v & 0xff;
   }
   
   void
   put_u32(void *vp, u_int32_t v)
   {
           u_char *p = (u_char *)vp;
   
           p[0] = (u_char)(v >> 24) & 0xff;
           p[1] = (u_char)(v >> 16) & 0xff;
           p[2] = (u_char)(v >> 8) & 0xff;
           p[3] = (u_char)v & 0xff;
   }
   
   
   void
   put_u16(void *vp, u_int16_t v)
   {
           u_char *p = (u_char *)vp;
   
           p[0] = (u_char)(v >> 8) & 0xff;
           p[1] = (u_char)v & 0xff;
   }

Legend:
Removed from v.1.51  
changed lines
  Added in v.1.52