Performs a self-test of the LTC_DES block cipher @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled */
| 1679 | @return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled |
| 1680 | */ |
| 1681 | int des_test(void) |
| 1682 | { |
| 1683 | #ifndef LTC_TEST |
| 1684 | return CRYPT_NOP; |
| 1685 | #else |
| 1686 | int err; |
| 1687 | static const struct des_test_case { |
| 1688 | int num, mode; /* mode 1 = encrypt */ |
| 1689 | unsigned char key[8], txt[8], out[8]; |
| 1690 | } cases[] = { |
| 1691 | { 1, 1, { 0x10, 0x31, 0x6E, 0x02, 0x8C, 0x8F, 0x3B, 0x4A }, |
| 1692 | { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, |
| 1693 | { 0x82, 0xDC, 0xBA, 0xFB, 0xDE, 0xAB, 0x66, 0x02 } }, |
| 1694 | { 2, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1695 | { 0x95, 0xF8, 0xA5, 0xE5, 0xDD, 0x31, 0xD9, 0x00 }, |
| 1696 | { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1697 | { 3, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1698 | { 0xDD, 0x7F, 0x12, 0x1C, 0xA5, 0x01, 0x56, 0x19 }, |
| 1699 | { 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1700 | { 4, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1701 | { 0x2E, 0x86, 0x53, 0x10, 0x4F, 0x38, 0x34, 0xEA }, |
| 1702 | { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1703 | { 5, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1704 | { 0x4B, 0xD3, 0x88, 0xFF, 0x6C, 0xD8, 0x1D, 0x4F }, |
| 1705 | { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1706 | { 6, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1707 | { 0x20, 0xB9, 0xE7, 0x67, 0xB2, 0xFB, 0x14, 0x56 }, |
| 1708 | { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1709 | { 7, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1710 | { 0x55, 0x57, 0x93, 0x80, 0xD7, 0x71, 0x38, 0xEF }, |
| 1711 | { 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1712 | { 8, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1713 | { 0x6C, 0xC5, 0xDE, 0xFA, 0xAF, 0x04, 0x51, 0x2F }, |
| 1714 | { 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1715 | { 9, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1716 | { 0x0D, 0x9F, 0x27, 0x9B, 0xA5, 0xD8, 0x72, 0x60 }, |
| 1717 | { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1718 | {10, 1, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1719 | { 0xD9, 0x03, 0x1B, 0x02, 0x71, 0xBD, 0x5A, 0x0A }, |
| 1720 | { 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1721 | |
| 1722 | { 1, 0, { 0x10, 0x31, 0x6E, 0x02, 0x8C, 0x8F, 0x3B, 0x4A }, |
| 1723 | { 0x82, 0xDC, 0xBA, 0xFB, 0xDE, 0xAB, 0x66, 0x02 }, |
| 1724 | { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, |
| 1725 | { 2, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1726 | { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, |
| 1727 | { 0x95, 0xF8, 0xA5, 0xE5, 0xDD, 0x31, 0xD9, 0x00 } }, |
| 1728 | { 3, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1729 | { 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, |
| 1730 | { 0xDD, 0x7F, 0x12, 0x1C, 0xA5, 0x01, 0x56, 0x19 } }, |
| 1731 | { 4, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1732 | { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, |
| 1733 | { 0x2E, 0x86, 0x53, 0x10, 0x4F, 0x38, 0x34, 0xEA } }, |
| 1734 | { 5, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1735 | { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, |
| 1736 | { 0x4B, 0xD3, 0x88, 0xFF, 0x6C, 0xD8, 0x1D, 0x4F } }, |
| 1737 | { 6, 0, { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }, |
| 1738 | { 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, |
no test coverage detected