-rw-r--r-- | pwmanager/libcrypt/cipher/serpent.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pwmanager/libcrypt/cipher/serpent.c b/pwmanager/libcrypt/cipher/serpent.c index d606d9f..fb5df20 100644 --- a/pwmanager/libcrypt/cipher/serpent.c +++ b/pwmanager/libcrypt/cipher/serpent.c | |||
@@ -652,63 +652,63 @@ serpent_subkeys_generate (serpent_key_t key, serpent_subkeys_t subkeys) | |||
652 | SBOX (0, w, k, 108); | 652 | SBOX (0, w, k, 108); |
653 | SBOX (7, w, k, 112); | 653 | SBOX (7, w, k, 112); |
654 | SBOX (6, w, k, 116); | 654 | SBOX (6, w, k, 116); |
655 | SBOX (5, w, k, 120); | 655 | SBOX (5, w, k, 120); |
656 | SBOX (4, w, k, 124); | 656 | SBOX (4, w, k, 124); |
657 | SBOX (3, w, k, 128); | 657 | SBOX (3, w, k, 128); |
658 | 658 | ||
659 | /* Renumber subkeys. */ | 659 | /* Renumber subkeys. */ |
660 | for (i = 0; i < ROUNDS + 1; i++) | 660 | for (i = 0; i < ROUNDS + 1; i++) |
661 | for (j = 0; j < 4; j++) | 661 | for (j = 0; j < 4; j++) |
662 | subkeys[i][j] = k[4 * i + j]; | 662 | subkeys[i][j] = k[4 * i + j]; |
663 | } | 663 | } |
664 | 664 | ||
665 | /* Initialize CONTEXT with the key KEY of KEY_LENGTH bits. */ | 665 | /* Initialize CONTEXT with the key KEY of KEY_LENGTH bits. */ |
666 | static void | 666 | static void |
667 | serpent_setkey_internal (serpent_context_t *context, | 667 | serpent_setkey_internal (serpent_context_t *context, |
668 | const byte_t *key, unsigned int key_length) | 668 | const byte_t *key, unsigned int key_length) |
669 | { | 669 | { |
670 | serpent_key_t key_prepared; | 670 | serpent_key_t key_prepared; |
671 | 671 | ||
672 | serpent_key_prepare (key, key_length, key_prepared); | 672 | serpent_key_prepare (key, key_length, key_prepared); |
673 | serpent_subkeys_generate (key_prepared, context->keys); | 673 | serpent_subkeys_generate (key_prepared, context->keys); |
674 | _gcry_burn_stack (272 * sizeof (u32_t)); | 674 | _gcry_burn_stack (272 * sizeof (u32_t)); |
675 | } | 675 | } |
676 | 676 | static const char *serpent_test (void); | |
677 | /* Initialize CTX with the key KEY of KEY_LENGTH bytes. */ | 677 | /* Initialize CTX with the key KEY of KEY_LENGTH bytes. */ |
678 | static gcry_err_code_t | 678 | static gcry_err_code_t |
679 | serpent_setkey (void *ctx, | 679 | serpent_setkey (void *ctx, |
680 | const byte_t *key, unsigned int key_length) | 680 | const byte_t *key, unsigned int key_length) |
681 | { | 681 | { |
682 | serpent_context_t *context = ctx; | 682 | serpent_context_t *context = ctx; |
683 | static const char *serpent_test_ret; | 683 | static const char *serpent_test_ret; |
684 | static int serpent_init_done; | 684 | static int serpent_init_done; |
685 | gcry_err_code_t ret = GPG_ERR_NO_ERROR; | 685 | gcry_err_code_t ret = GPG_ERR_NO_ERROR; |
686 | 686 | ||
687 | if (! serpent_init_done) | 687 | if (! serpent_init_done) |
688 | { | 688 | { |
689 | /* Execute a self-test the first time, Serpent is used. */ | 689 | /* Execute a self-test the first time, Serpent is used. */ |
690 | static const char *serpent_test (void); | 690 | |
691 | 691 | ||
692 | serpent_test_ret = serpent_test (); | 692 | serpent_test_ret = serpent_test (); |
693 | if (serpent_test_ret) | 693 | if (serpent_test_ret) |
694 | log_error ("Serpent test failure: %s\n", serpent_test_ret); | 694 | log_error ("Serpent test failure: %s\n", serpent_test_ret); |
695 | serpent_init_done = 1; | 695 | serpent_init_done = 1; |
696 | } | 696 | } |
697 | 697 | ||
698 | if (serpent_test_ret) | 698 | if (serpent_test_ret) |
699 | ret = GPG_ERR_SELFTEST_FAILED; | 699 | ret = GPG_ERR_SELFTEST_FAILED; |
700 | else | 700 | else |
701 | { | 701 | { |
702 | serpent_setkey_internal (context, key, key_length); | 702 | serpent_setkey_internal (context, key, key_length); |
703 | _gcry_burn_stack (sizeof (serpent_key_t)); | 703 | _gcry_burn_stack (sizeof (serpent_key_t)); |
704 | } | 704 | } |
705 | 705 | ||
706 | return ret; | 706 | return ret; |
707 | } | 707 | } |
708 | 708 | ||
709 | static void | 709 | static void |
710 | serpent_encrypt_internal (serpent_context_t *context, | 710 | serpent_encrypt_internal (serpent_context_t *context, |
711 | const serpent_block_t input, serpent_block_t output) | 711 | const serpent_block_t input, serpent_block_t output) |
712 | { | 712 | { |
713 | serpent_block_t b, b_next; | 713 | serpent_block_t b, b_next; |
714 | int round = 0; | 714 | int round = 0; |