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

Diff for /src/usr.bin/signify/zsig.c between version 1.7 and 1.8

version 1.7, 2016/09/03 12:59:33 version 1.8, 2016/09/03 17:04:13
Line 138 
Line 138 
 {  {
         uint8_t *buffer;          uint8_t *buffer;
         uint8_t *residual;          uint8_t *residual;
         uint8_t output[SHA384_DIGEST_STRING_LENGTH];          uint8_t output[SHA512_256_DIGEST_STRING_LENGTH];
   
         buffer = xmalloc(bufsize);          buffer = xmalloc(bufsize);
         residual = (uint8_t *)endsha + 1;          residual = (uint8_t *)endsha + 1;
Line 169 
Line 169 
                         if (more == 0)                          if (more == 0)
                                 break;                                  break;
                 }                  }
                 SHA384Data(buffer, n, output);                  SHA512_256Data(buffer, n, output);
                 if (endsha - sha < SHA384_DIGEST_STRING_LENGTH-1)                  if (endsha - sha < SHA512_256_DIGEST_STRING_LENGTH-1)
                         errx(4, "signature truncated");                          errx(4, "signature truncated");
                 if (memcmp(output, sha, SHA384_DIGEST_STRING_LENGTH-1) != 0)                  if (memcmp(output, sha, SHA512_256_DIGEST_STRING_LENGTH-1) != 0)
                         errx(4, "signature mismatch");                          errx(4, "signature mismatch");
                 if (sha[SHA384_DIGEST_STRING_LENGTH-1] != '\n')                  if (sha[SHA512_256_DIGEST_STRING_LENGTH-1] != '\n')
                         errx(4, "signature mismatch");                          errx(4, "signature mismatch");
                 sha += SHA384_DIGEST_STRING_LENGTH;                  sha += SHA512_256_DIGEST_STRING_LENGTH;
                 writeall(fdout, buffer, n, "stdout");                  writeall(fdout, buffer, n, "stdout");
                 if (n != bufsize)                  if (n != bufsize)
                         break;                          break;
Line 215 
Line 215 
         meta = p;          meta = p;
 #define BEGINS_WITH(x, y) memcmp((x), (y), sizeof(y)-1) == 0  #define BEGINS_WITH(x, y) memcmp((x), (y), sizeof(y)-1) == 0
   
         while (BEGINS_WITH(p, "algorithm=SHA384") ||          while (BEGINS_WITH(p, "algorithm=SHA512/256") ||
             BEGINS_WITH(p, "date=") ||              BEGINS_WITH(p, "date=") ||
             sscanf(p, "blocksize=%zu\n", &bufsize) > 0) {              sscanf(p, "blocksize=%zu\n", &bufsize) > 0) {
                 while (*(p++) != '\n')                  while (*(p++) != '\n')
Line 264 
Line 264 
         if (lseek(fdin, h.headerlength, SEEK_SET) == -1)          if (lseek(fdin, h.headerlength, SEEK_SET) == -1)
                 err(1, "seek in %s", msgfile);                  err(1, "seek in %s", msgfile);
   
         space = (sb.st_size / MYBUFSIZE+1) * SHA384_DIGEST_STRING_LENGTH +          space = (sb.st_size / MYBUFSIZE+1) * SHA512_256_DIGEST_STRING_LENGTH +
                 1024; /* long enough for extra header information */                  1024; /* long enough for extra header information */
   
         msg = xmalloc(space);          msg = xmalloc(space);
Line 273 
Line 273 
         strftime(date, sizeof date, "%Y-%m-%dT%H:%M:%SZ", gmtime(&clock));          strftime(date, sizeof date, "%Y-%m-%dT%H:%M:%SZ", gmtime(&clock));
         snprintf(msg, space,          snprintf(msg, space,
             "date=%s\n"              "date=%s\n"
             "algorithm=SHA384\n"              "algorithm=SHA512/256\n"
             "blocksize=%zu\n\n",              "blocksize=%zu\n\n",
             date, bufsize);              date, bufsize);
         p = strchr(msg, 0);          p = strchr(msg, 0);
Line 284 
Line 284 
                         err(1, "read from %s", msgfile);                          err(1, "read from %s", msgfile);
                 if (n == 0)                  if (n == 0)
                         break;                          break;
                 SHA384Data(buffer, n, p);                  SHA512_256Data(buffer, n, p);
                 p += SHA384_DIGEST_STRING_LENGTH;                  p += SHA512_256_DIGEST_STRING_LENGTH;
                 p[-1] = '\n';                  p[-1] = '\n';
                 if (msg + space < p)                  if (msg + space < p)
                         errx(1, "file too long %s", msgfile);                          errx(1, "file too long %s", msgfile);

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8