diff --git a/testsuite/serpent-test.c b/testsuite/serpent-test.c index bf3b6516110310fda7ca8f5535f8d93754a4a4d1..6e126691c17dd2e93f99c49fb204c984caeca5cb 100644 --- a/testsuite/serpent-test.c +++ b/testsuite/serpent-test.c @@ -140,5 +140,44 @@ test_main(void) HL("EA024714AD5C4D84EA024714AD5C4D84"), H("3E507730776B93FDEA661235E1DD99F0")); + /* Test key padding. We use nettle_serpent256, which actually works + also with key sizes smaller than 32 bytes. */ + test_cipher(&nettle_serpent256, + HL("00112233440100000000000000000000" + "00000000000000000000000000000000"), + HL("0000000001000000 0200000003000000"), + H("C1415AC653FD7C7F D917482EE8EBFE25")); +#if 0 + /* Currrently, key sizes smaller than SERPENT_MIN_KEY_SIZE bytes + (128 bits) are not supported. */ + test_cipher(&nettle_serpent256, + HL("0011223344"), + HL("0000000001000000 0200000003000000"), + H("C1415AC653FD7C7F D917482EE8EBFE25")); +#endif + test_cipher(&nettle_serpent256, + HL("00112233445566778899aabbccddeeff" + "00010000000000000000000000000000"), + HL("0000000001000000 0200000003000000"), + H("8EB9C958EAFFDF42 009755D7B6458838")); + + test_cipher(&nettle_serpent256, + HL("00112233445566778899aabbccddeeff" + "00"), + HL("0000000001000000 0200000003000000"), + H("8EB9C958EAFFDF42 009755D7B6458838")); + + test_cipher(&nettle_serpent256, + HL("00112233445566778899aabbccddeeff" + "00112201000000000000000000000000"), + HL("0000000001000000 0200000003000000"), + H("C8A078D8212AC96D 9060E30EC5CBB5C7")); + + test_cipher(&nettle_serpent256, + HL("00112233445566778899aabbccddeeff" + "001122"), + HL("0000000001000000 0200000003000000"), + H("C8A078D8212AC96D 9060E30EC5CBB5C7")); + SUCCESS(); }