Loading test/build.info +1 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ IF[{- !$disabled{tests} -}] INCLUDE[rc4test]=../include DEPEND[rc4test]=../libcrypto SOURCE[rc5test]=rc5test.c SOURCE[rc5test]=rc5test.c testutil.c test_main.c INCLUDE[rc5test]=../include DEPEND[rc5test]=../libcrypto Loading test/rc5test.c +45 −87 Original line number Diff line number Diff line /* * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy Loading @@ -7,24 +7,13 @@ * https://www.openssl.org/source/license.html */ /* * This has been a quickly hacked 'ideatest.c'. When I add tests for other * RC5 modes, more of the code will be uncommented. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include "../e_os.h" #include "test_main.h" #include "testutil.h" #ifdef OPENSSL_NO_RC5 int main(int argc, char *argv[]) { printf("No RC5 support\n"); return (0); } #else #ifndef OPENSSL_NO_RC5 # include <openssl/rc5.h> static unsigned char RC5key[5][16] = { Loading Loading @@ -187,90 +176,59 @@ static unsigned char rc5_cbc_iv[RC5_CBC_NUM][8] = { {0x7c, 0xb3, 0xf1, 0xdf, 0x34, 0xf9, 0x48, 0x11}, }; int main(int argc, char *argv[]) static int test_rc5_ecb(int n) { int i, n, err = 0; int testresult = 1; RC5_32_KEY key; unsigned char buf[8], buf2[8], ivb[8]; unsigned char buf[8], buf2[8]; for (n = 0; n < 5; n++) { RC5_32_set_key(&key, 16, &(RC5key[n][0]), 12); RC5_32_set_key(&key, 16, &RC5key[n][0], 12); RC5_32_ecb_encrypt(&(RC5plain[n][0]), buf, &key, RC5_ENCRYPT); if (memcmp(&(RC5cipher[n][0]), buf, 8) != 0) { printf("ecb RC5 error encrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", RC5cipher[n][i]); err = 20; printf("\n"); } RC5_32_ecb_encrypt(&RC5plain[n][0], buf, &key, RC5_ENCRYPT); if (!TEST_mem_eq(&RC5cipher[n][0], sizeof(RC5cipher[0]), buf, sizeof(buf))) testresult = 0; RC5_32_ecb_encrypt(buf, buf2, &key, RC5_DECRYPT); if (memcmp(&(RC5plain[n][0]), buf2, 8) != 0) { printf("ecb RC5 error decrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf2[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", RC5plain[n][i]); printf("\n"); err = 3; } } if (err == 0) printf("ecb RC5 ok\n"); for (n = 0; n < RC5_CBC_NUM; n++) { i = rc5_cbc_rounds[n]; if (i < 8) continue; if (!TEST_mem_eq(&RC5plain[n][0], sizeof(RC5cipher[0]), buf2, sizeof(buf2))) testresult = 0; RC5_32_set_key(&key, rc5_cbc_key[n][0], &(rc5_cbc_key[n][1]), i); memcpy(ivb, &(rc5_cbc_iv[n][0]), 8); RC5_32_cbc_encrypt(&(rc5_cbc_plain[n][0]), buf, 8, &key, &(ivb[0]), RC5_ENCRYPT); if (memcmp(&(rc5_cbc_cipher[n][0]), buf, 8) != 0) { printf("cbc RC5 error encrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", rc5_cbc_cipher[n][i]); err = 30; printf("\n"); return testresult; } memcpy(ivb, &(rc5_cbc_iv[n][0]), 8); RC5_32_cbc_encrypt(buf, buf2, 8, &key, &(ivb[0]), RC5_DECRYPT); if (memcmp(&(rc5_cbc_plain[n][0]), buf2, 8) != 0) { printf("cbc RC5 error decrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf2[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", rc5_cbc_plain[n][i]); printf("\n"); err = 3; } static int test_rc5_cbc(int n) { int testresult = 1; int i; RC5_32_KEY key; unsigned char buf[8], buf2[8], ivb[8]; i = rc5_cbc_rounds[n]; if (i >= 8) { RC5_32_set_key(&key, rc5_cbc_key[n][0], &rc5_cbc_key[n][1], i); memcpy(ivb, &rc5_cbc_iv[n][0], 8); RC5_32_cbc_encrypt(&rc5_cbc_plain[n][0], buf, 8, &key, &ivb[0], RC5_ENCRYPT); if (!TEST_mem_eq(&rc5_cbc_cipher[n][0], sizeof(rc5_cbc_cipher[0]), buf, sizeof(buf))) testresult = 0; memcpy(ivb, &rc5_cbc_iv[n][0], 8); RC5_32_cbc_encrypt(buf, buf2, 8, &key, &ivb[0], RC5_DECRYPT); if (!TEST_mem_eq(&rc5_cbc_plain[n][0], sizeof(rc5_cbc_plain[0]), buf2, sizeof(buf2)) != 0) testresult = 0; } if (err == 0) printf("cbc RC5 ok\n"); EXIT(err); return (err); return testresult; } #endif void register_tests(void) { #ifndef OPENSSL_NO_RC5 ADD_ALL_TESTS(test_rc5_ecb, OSSL_NELEM(RC5key)); ADD_ALL_TESTS(test_rc5_cbc, RC5_CBC_NUM); #endif } Loading
test/build.info +1 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ IF[{- !$disabled{tests} -}] INCLUDE[rc4test]=../include DEPEND[rc4test]=../libcrypto SOURCE[rc5test]=rc5test.c SOURCE[rc5test]=rc5test.c testutil.c test_main.c INCLUDE[rc5test]=../include DEPEND[rc5test]=../libcrypto Loading
test/rc5test.c +45 −87 Original line number Diff line number Diff line /* * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy Loading @@ -7,24 +7,13 @@ * https://www.openssl.org/source/license.html */ /* * This has been a quickly hacked 'ideatest.c'. When I add tests for other * RC5 modes, more of the code will be uncommented. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include "../e_os.h" #include "test_main.h" #include "testutil.h" #ifdef OPENSSL_NO_RC5 int main(int argc, char *argv[]) { printf("No RC5 support\n"); return (0); } #else #ifndef OPENSSL_NO_RC5 # include <openssl/rc5.h> static unsigned char RC5key[5][16] = { Loading Loading @@ -187,90 +176,59 @@ static unsigned char rc5_cbc_iv[RC5_CBC_NUM][8] = { {0x7c, 0xb3, 0xf1, 0xdf, 0x34, 0xf9, 0x48, 0x11}, }; int main(int argc, char *argv[]) static int test_rc5_ecb(int n) { int i, n, err = 0; int testresult = 1; RC5_32_KEY key; unsigned char buf[8], buf2[8], ivb[8]; unsigned char buf[8], buf2[8]; for (n = 0; n < 5; n++) { RC5_32_set_key(&key, 16, &(RC5key[n][0]), 12); RC5_32_set_key(&key, 16, &RC5key[n][0], 12); RC5_32_ecb_encrypt(&(RC5plain[n][0]), buf, &key, RC5_ENCRYPT); if (memcmp(&(RC5cipher[n][0]), buf, 8) != 0) { printf("ecb RC5 error encrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", RC5cipher[n][i]); err = 20; printf("\n"); } RC5_32_ecb_encrypt(&RC5plain[n][0], buf, &key, RC5_ENCRYPT); if (!TEST_mem_eq(&RC5cipher[n][0], sizeof(RC5cipher[0]), buf, sizeof(buf))) testresult = 0; RC5_32_ecb_encrypt(buf, buf2, &key, RC5_DECRYPT); if (memcmp(&(RC5plain[n][0]), buf2, 8) != 0) { printf("ecb RC5 error decrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf2[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", RC5plain[n][i]); printf("\n"); err = 3; } } if (err == 0) printf("ecb RC5 ok\n"); for (n = 0; n < RC5_CBC_NUM; n++) { i = rc5_cbc_rounds[n]; if (i < 8) continue; if (!TEST_mem_eq(&RC5plain[n][0], sizeof(RC5cipher[0]), buf2, sizeof(buf2))) testresult = 0; RC5_32_set_key(&key, rc5_cbc_key[n][0], &(rc5_cbc_key[n][1]), i); memcpy(ivb, &(rc5_cbc_iv[n][0]), 8); RC5_32_cbc_encrypt(&(rc5_cbc_plain[n][0]), buf, 8, &key, &(ivb[0]), RC5_ENCRYPT); if (memcmp(&(rc5_cbc_cipher[n][0]), buf, 8) != 0) { printf("cbc RC5 error encrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", rc5_cbc_cipher[n][i]); err = 30; printf("\n"); return testresult; } memcpy(ivb, &(rc5_cbc_iv[n][0]), 8); RC5_32_cbc_encrypt(buf, buf2, 8, &key, &(ivb[0]), RC5_DECRYPT); if (memcmp(&(rc5_cbc_plain[n][0]), buf2, 8) != 0) { printf("cbc RC5 error decrypting (%d)\n", n + 1); printf("got :"); for (i = 0; i < 8; i++) printf("%02X ", buf2[i]); printf("\n"); printf("expected:"); for (i = 0; i < 8; i++) printf("%02X ", rc5_cbc_plain[n][i]); printf("\n"); err = 3; } static int test_rc5_cbc(int n) { int testresult = 1; int i; RC5_32_KEY key; unsigned char buf[8], buf2[8], ivb[8]; i = rc5_cbc_rounds[n]; if (i >= 8) { RC5_32_set_key(&key, rc5_cbc_key[n][0], &rc5_cbc_key[n][1], i); memcpy(ivb, &rc5_cbc_iv[n][0], 8); RC5_32_cbc_encrypt(&rc5_cbc_plain[n][0], buf, 8, &key, &ivb[0], RC5_ENCRYPT); if (!TEST_mem_eq(&rc5_cbc_cipher[n][0], sizeof(rc5_cbc_cipher[0]), buf, sizeof(buf))) testresult = 0; memcpy(ivb, &rc5_cbc_iv[n][0], 8); RC5_32_cbc_encrypt(buf, buf2, 8, &key, &ivb[0], RC5_DECRYPT); if (!TEST_mem_eq(&rc5_cbc_plain[n][0], sizeof(rc5_cbc_plain[0]), buf2, sizeof(buf2)) != 0) testresult = 0; } if (err == 0) printf("cbc RC5 ok\n"); EXIT(err); return (err); return testresult; } #endif void register_tests(void) { #ifndef OPENSSL_NO_RC5 ADD_ALL_TESTS(test_rc5_ecb, OSSL_NELEM(RC5key)); ADD_ALL_TESTS(test_rc5_cbc, RC5_CBC_NUM); #endif }