Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/crypt.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3850 by doda, Mon Apr 12 08:29:53 2010 UTC revision 4212 by doda, Fri Dec 10 07:58:34 2010 UTC
# Line 221  static void cAES128_encrypt(PTInstVar pv Line 221  static void cAES128_encrypt(PTInstVar pv
221  {  {
222          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
223          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;
224            char tmp[80];
225    
226          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
227          if (bytes == 0)          if (bytes == 0)
# Line 230  static void cAES128_encrypt(PTInstVar pv Line 231  static void cAES128_encrypt(PTInstVar pv
231                  return;                  return;
232    
233          if (bytes % block_size) {          if (bytes % block_size) {
234                  char tmp[80];                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR1", pvar,
235                  UTIL_get_lang_msg("MSG_AES128_ENCRYPT_ERROR1", pvar,                                    "%s encrypt error(1): bytes %d (%d)");
236                                    "AES128/192/256 encrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
237                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,                              "AES128/192/256", bytes, block_size);
                             pvar->ts->UIMsg, bytes, block_size);  
238                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
239                  goto error;                  goto error;
240          }          }
241    
242          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {
243                  UTIL_get_lang_msg("MSG_AES128_ENCRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR2", pvar, "%s encrypt error(2)");
244                                    "AES128/192/256 encrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
245                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "AES128/192/256");
246                    notify_fatal_error(pvar, tmp);
247                  goto error;                  goto error;
248    
249          } else {          } else {
# Line 268  static void cAES128_decrypt(PTInstVar pv Line 269  static void cAES128_decrypt(PTInstVar pv
269  {  {
270          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
271          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;
272            char tmp[80];
273    
274          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
275          if (bytes == 0)          if (bytes == 0)
# Line 277  static void cAES128_decrypt(PTInstVar pv Line 279  static void cAES128_decrypt(PTInstVar pv
279                  return;                  return;
280    
281          if (bytes % block_size) {          if (bytes % block_size) {
282                  char tmp[80];                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR1", pvar,
283                  UTIL_get_lang_msg("MSG_AES128_DECRYPT_ERROR1", pvar,                                    "%s decrypt error(1): bytes %d (%d)");
284                                    "AES128/192/256 decrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
285                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, bytes, block_size);                              "AES128/192/256", bytes, block_size);
286                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
287                  goto error;                  goto error;
288          }          }
289    
290          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {
291                  UTIL_get_lang_msg("MSG_AES128_DECRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR2", pvar, "%s decrypt error(2)");
292                                    "AES128/192/256 decrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
293                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "AES128/192/256");
294                    notify_fatal_error(pvar, tmp);
295                  goto error;                  goto error;
296    
297          } else {          } else {
# Line 310  error: Line 313  error:
313  }  }
314    
315    
   
316  // for SSH2(yutaka)  // for SSH2(yutaka)
317  static void c3DES_encrypt2(PTInstVar pvar, unsigned char FAR * buf,  static void c3DES_encrypt2(PTInstVar pvar, unsigned char FAR * buf,
318                                int bytes)                             int bytes)
319  {  {
320          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
321          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;
322            char tmp[80];
323    
324          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
325          if (bytes == 0)          if (bytes == 0)
# Line 326  static void c3DES_encrypt2(PTInstVar pva Line 329  static void c3DES_encrypt2(PTInstVar pva
329                  return;                  return;
330    
331          if (bytes % block_size) {          if (bytes % block_size) {
332                  char tmp[80];                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR1", pvar,
333                  UTIL_get_lang_msg("MSG_3DESCBC_ENCRYPT_ERROR1", pvar,                                    "%s encrypt error(1): bytes %d (%d)");
334                                    "3DES-CBC encrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
335                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,                              "3DES-CBC", bytes, block_size);
                             pvar->ts->UIMsg, bytes, block_size);  
336                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
337                  goto error;                  goto error;
338          }          }
339    
340          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {
341                  UTIL_get_lang_msg("MSG_3DESCBC_ENCRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR2", pvar, "%s encrypt error(2)");
342                                    "3DES-CBC encrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
343                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "3DES-CBC");
344                    notify_fatal_error(pvar, tmp);
345                  goto error;                  goto error;
346    
347          } else {          } else {
# Line 360  error: Line 363  error:
363  }  }
364    
365  static void c3DES_decrypt2(PTInstVar pvar, unsigned char FAR * buf,  static void c3DES_decrypt2(PTInstVar pvar, unsigned char FAR * buf,
366                                int bytes)                             int bytes)
367  {  {
368          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
369          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;
370            char tmp[80];
371    
372          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
373          if (bytes == 0)          if (bytes == 0)
# Line 373  static void c3DES_decrypt2(PTInstVar pva Line 377  static void c3DES_decrypt2(PTInstVar pva
377                  return;                  return;
378    
379          if (bytes % block_size) {          if (bytes % block_size) {
380                  char tmp[80];                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR1", pvar,
381                  UTIL_get_lang_msg("MSG_3DESCBC_DECRYPT_ERROR1", pvar,                                    "%s decrypt error(1): bytes %d (%d)");
382                                    "3DES-CBC decrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
383                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, bytes, block_size);                              "3DES-CBC", bytes, block_size);
384                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
385                  goto error;                  goto error;
386          }          }
387    
388          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {
389                  UTIL_get_lang_msg("MSG_3DESCBC_DECRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR2", pvar, "%s decrypt error(2)");
390                                    "3DES-CBC decrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
391                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "3DES-CBC");
392                    notify_fatal_error(pvar, tmp);
393                  goto error;                  goto error;
394    
395          } else {          } else {
# Line 411  static void cBlowfish_encrypt2(PTInstVar Line 416  static void cBlowfish_encrypt2(PTInstVar
416  {  {
417          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
418          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;
419            char tmp[80];
420    
421          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
422          if (bytes == 0)          if (bytes == 0)
# Line 420  static void cBlowfish_encrypt2(PTInstVar Line 426  static void cBlowfish_encrypt2(PTInstVar
426                  return;                  return;
427    
428          if (bytes % block_size) {          if (bytes % block_size) {
429                  char tmp[80];                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR1", pvar,
430                  UTIL_get_lang_msg("MSG_BLOWFISH_ENCRYPT_ERROR1", pvar,                                    "%s encrypt error(1): bytes %d (%d)");
431                                    "Blowfish encrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
432                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,                              "Blowfish", bytes, block_size);
                             pvar->ts->UIMsg, bytes, block_size);  
433                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
434                  goto error;                  goto error;
435          }          }
436    
437          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {
438                  UTIL_get_lang_msg("MSG_BLOWFISH_ENCRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR2", pvar, "%s encrypt error(2)");
439                                    "Blowfish encrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
440                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "Blowfish");
441                    notify_fatal_error(pvar, tmp);
442                  goto error;                  goto error;
443    
444          } else {          } else {
# Line 449  static void cBlowfish_decrypt2(PTInstVar Line 455  static void cBlowfish_decrypt2(PTInstVar
455  {  {
456          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
457          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;
458            char tmp[80];
459    
460          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
461          if (bytes == 0)          if (bytes == 0)
# Line 458  static void cBlowfish_decrypt2(PTInstVar Line 465  static void cBlowfish_decrypt2(PTInstVar
465                  return;                  return;
466    
467          if (bytes % block_size) {          if (bytes % block_size) {
468                  char tmp[80];                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR1", pvar,
469                  UTIL_get_lang_msg("MSG_BLOWFISH_DECRYPT_ERROR1", pvar,                                    "%s decrypt error(1): bytes %d (%d)");
470                                    "Blowfish decrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
471                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, bytes, block_size);                              "Blowfish", bytes, block_size);
472                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
473                  goto error;                  goto error;
474          }          }
475    
476          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {
477                  UTIL_get_lang_msg("MSG_BLOWFISH_DECRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR2", pvar, "%s decrypt error(2)");
478                                    "Blowfish decrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
479                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "Blowfish");
480                    notify_fatal_error(pvar, tmp);
481                  goto error;                  goto error;
482    
483          } else {          } else {
# Line 481  error: Line 489  error:
489          free(newbuf);          free(newbuf);
490  }  }
491    
492    
493  static void cArcfour_encrypt(PTInstVar pvar, unsigned char FAR * buf,  static void cArcfour_encrypt(PTInstVar pvar, unsigned char FAR * buf,
494                                 int bytes)                               int bytes)
495  {  {
496          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
497          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;
498            char tmp[80];
499    
500          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
501          if (bytes == 0)          if (bytes == 0)
# Line 495  static void cArcfour_encrypt(PTInstVar p Line 505  static void cArcfour_encrypt(PTInstVar p
505                  return;                  return;
506    
507          if (bytes % block_size) {          if (bytes % block_size) {
508                  char tmp[80];                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR1", pvar,
509                  UTIL_get_lang_msg("MSG_ARCFOUR_ENCRYPT_ERROR1", pvar,                                    "%s encrypt error(1): bytes %d (%d)");
510                                    "Arcfour encrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
511                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,                              "Arcfour", bytes, block_size);
                             pvar->ts->UIMsg, bytes, block_size);  
512                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
513                  goto error;                  goto error;
514          }          }
515    
516          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {
517                  UTIL_get_lang_msg("MSG_ARCFOUR_ENCRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR2", pvar, "%s encrypt error(2)");
518                                    "Arcfour encrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
519                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "Arcfour");
520                    notify_fatal_error(pvar, tmp);
521                  goto error;                  goto error;
522    
523          } else {          } else {
# Line 520  error: Line 530  error:
530  }  }
531    
532  static void cArcfour_decrypt(PTInstVar pvar, unsigned char FAR * buf,  static void cArcfour_decrypt(PTInstVar pvar, unsigned char FAR * buf,
533                                 int bytes)                               int bytes)
534  {  {
535          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
536          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;
537            char tmp[80];
538    
539          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
540          if (bytes == 0)          if (bytes == 0)
# Line 533  static void cArcfour_decrypt(PTInstVar p Line 544  static void cArcfour_decrypt(PTInstVar p
544                  return;                  return;
545    
546          if (bytes % block_size) {          if (bytes % block_size) {
547                  char tmp[80];                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR1", pvar,
548                  UTIL_get_lang_msg("MSG_ARCFOUR_DECRYPT_ERROR1", pvar,                                    "%s decrypt error(1): bytes %d (%d)");
549                                    "Arcfour decrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
550                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, bytes, block_size);                              "Arcfour", bytes, block_size);
551                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
552                  goto error;                  goto error;
553          }          }
554    
555          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {
556                  UTIL_get_lang_msg("MSG_ARCFOUR_DECRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR2", pvar, "%s decrypt error(2)");
557                                    "Arcfour decrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
558                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "Arcfour");
559                    notify_fatal_error(pvar, tmp);
560                  goto error;                  goto error;
561    
562          } else {          } else {
# Line 556  error: Line 568  error:
568          free(newbuf);          free(newbuf);
569  }  }
570    
571    
572  static void cCast128_encrypt(PTInstVar pvar, unsigned char FAR * buf,  static void cCast128_encrypt(PTInstVar pvar, unsigned char FAR * buf,
573                               int bytes)                               int bytes)
574  {  {
575          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
576          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_OUT].enc.block_size;
577            char tmp[80];
578    
579          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
580          if (bytes == 0)          if (bytes == 0)
# Line 570  static void cCast128_encrypt(PTInstVar p Line 584  static void cCast128_encrypt(PTInstVar p
584                  return;                  return;
585    
586          if (bytes % block_size) {          if (bytes % block_size) {
587                  char tmp[80];                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR1", pvar,
588                  UTIL_get_lang_msg("MSG_CAST128_ENCRYPT_ERROR1", pvar,                                    "%s encrypt error(1): bytes %d (%d)");
589                                    "CAST128 encrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
590                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE,                              "CAST128", bytes, block_size);
                             pvar->ts->UIMsg, bytes, block_size);  
591                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
592                  goto error;                  goto error;
593          }          }
594    
595          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_OUT], newbuf, buf, bytes) == 0) {
596                  UTIL_get_lang_msg("MSG_CAST128_ENCRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_ENCRYPT_ERROR2", pvar, "%s encrypt error(2)");
597                                    "CAST128 encrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
598                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "CAST128");
599                    notify_fatal_error(pvar, tmp);
600                  goto error;                  goto error;
601    
602          } else {          } else {
# Line 599  static void cCast128_decrypt(PTInstVar p Line 613  static void cCast128_decrypt(PTInstVar p
613  {  {
614          unsigned char *newbuf = malloc(bytes);          unsigned char *newbuf = malloc(bytes);
615          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;          int block_size = pvar->ssh2_keys[MODE_IN].enc.block_size;
616            char tmp[80];
617    
618          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)          // 事前復号化により、全ペイロードが復号化されている場合は、0バイトになる。(2004.11.7 yutaka)
619          if (bytes == 0)          if (bytes == 0)
# Line 608  static void cCast128_decrypt(PTInstVar p Line 623  static void cCast128_decrypt(PTInstVar p
623                  return;                  return;
624    
625          if (bytes % block_size) {          if (bytes % block_size) {
626                  char tmp[80];                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR1", pvar,
627                  UTIL_get_lang_msg("MSG_CAST128_DECRYPT_ERROR1", pvar,                                    "%s decrypt error(1): bytes %d (%d)");
628                                    "CAST128 decrypt error(1): bytes %d (%d)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
629                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg, bytes, block_size);                              "CAST128", bytes, block_size);
630                  notify_fatal_error(pvar, tmp);                  notify_fatal_error(pvar, tmp);
631                  goto error;                  goto error;
632          }          }
633    
634          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {          if (EVP_Cipher(&pvar->evpcip[MODE_IN], newbuf, buf, bytes) == 0) {
635                  UTIL_get_lang_msg("MSG_CAST128_DECRYPT_ERROR2", pvar,                  UTIL_get_lang_msg("MSG_DECRYPT_ERROR2", pvar, "%s decrypt error(2)");
636                                    "CAST128 decrypt error(2)");                  _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, pvar->ts->UIMsg,
637                  notify_fatal_error(pvar, pvar->ts->UIMsg);                              "CAST128");
638                    notify_fatal_error(pvar, tmp);
639                  goto error;                  goto error;
640    
641          } else {          } else {
# Line 632  error: Line 648  error:
648  }  }
649    
650    
   
651  static void c3DES_encrypt(PTInstVar pvar, unsigned char FAR * buf,  static void c3DES_encrypt(PTInstVar pvar, unsigned char FAR * buf,
652                            int bytes)                            int bytes)
653  {  {

Legend:
Removed from v.3850  
changed lines
  Added in v.4212

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26