Skip to content

Commit d34c440

Browse files
authored
Merge pull request #560 from libtom/cleanup-and-fixes
Cleanup and fixes
2 parents ddf1b63 + c117cd8 commit d34c440

16 files changed

+82
-108
lines changed

doc/crypt.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7462,7 +7462,7 @@ \subsection{Padding mode argument}
74627462
\begin{center}
74637463
\begin{tabular}{|l|l|}
74647464
\hline \textbf{mode} & \textbf{Standard} \\
7465-
\hline LTC\_PAD\_PKCS7 & RFC-5652 / PKCS \#7 \\
7465+
\hline LTC\_PAD\_PKCS7 & a.k.a CMS; best described in RFC-5652 / PKCS \#7; also mentioned in PKCS \#5 which refers to RFC-1423 \\
74667466
\hline LTC\_PAD\_ISO\_10126 & ISO/IEC 10126 \footnote{\textit{ISO/IEC 10126} support is only available when the library is built with \textit{rng\_get\_bytes()} support} \\
74677467
\hline LTC\_PAD\_ANSI\_X923 & ANSI X.923 \\
74687468
\hline LTC\_PAD\_ONE\_AND\_ZERO & ISO/IEC 7816-4 \\

makefile.shared

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@
1515
#
1616

1717
PLATFORM := $(shell uname | sed -e 's/_.*//')
18+
### Observed uname outputs:
19+
# MINGW32_NT-6.2 (on MSYS/MINGW old)
20+
# MINGW64_NT-10.0-14393 (on MSYS new)
21+
# MSYS_NT-10.0-19042 (on MSYS2)
22+
# CYGWIN_NT-10.0 (on Cygwin 64bit)
23+
# CYGWIN_NT-6.2-WOW64 (on Cygwin 32bit)
24+
# Linux (on all Linux distros)
25+
# Darwin (on macOS, OS X)
1826

1927
ifeq ($(LIBTOOL),rlibtool)
2028
TGTLIBTOOL:=slibtool-shared

src/encauth/ccm/ccm_add_nonce.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ int ccm_add_nonce(ccm_state *ccm,
2525
if ((15 - ccm->noncelen) > ccm->L) {
2626
ccm->L = 15 - ccm->noncelen;
2727
}
28+
if (ccm->L > 8) {
29+
return CRYPT_INVALID_ARG;
30+
}
2831

2932
/* decrease noncelen to match L */
3033
if ((ccm->noncelen + ccm->L) > 15) {
@@ -38,7 +41,7 @@ int ccm_add_nonce(ccm_state *ccm,
3841
(ccm->L-1));
3942

4043
/* nonce */
41-
for (y = 0; y < (16 - (ccm->L + 1)); y++) {
44+
for (y = 0; y < 15 - ccm->L; y++) {
4245
ccm->PAD[x++] = nonce[y];
4346
}
4447

src/encauth/ccm/ccm_init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ int ccm_init(ccm_state *ccm, int cipher,
3535
}
3636

3737
/* make sure the taglen is valid */
38-
if (taglen < 4 || taglen > 16 || (taglen % 2) == 1) {
38+
if (taglen < 4 || taglen > 16 || (taglen % 2) == 1 || aadlen < 0 || ptlen < 0) {
3939
return CRYPT_INVALID_ARG;
4040
}
4141
ccm->taglen = taglen;

src/encauth/ccm/ccm_memory.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ int ccm_memory(int cipher,
7575
}
7676

7777
/* make sure the taglen is valid */
78-
if (*taglen < 4 || *taglen > 16 || (*taglen % 2) == 1) {
78+
if (*taglen < 4 || *taglen > 16 || (*taglen % 2) == 1 || headerlen > 0x7fffffffu) {
7979
return CRYPT_INVALID_ARG;
8080
}
8181

@@ -108,6 +108,9 @@ int ccm_memory(int cipher,
108108
if ((15 - noncelen) > L) {
109109
L = 15 - noncelen;
110110
}
111+
if (L > 8) {
112+
return CRYPT_INVALID_ARG;
113+
}
111114

112115
/* allocate mem for the symmetric key */
113116
if (uskey == NULL) {
@@ -141,7 +144,7 @@ int ccm_memory(int cipher,
141144
(L-1));
142145

143146
/* nonce */
144-
for (y = 0; y < (16 - (L + 1)); y++) {
147+
for (y = 0; y < 15 - L; y++) {
145148
PAD[x++] = nonce[y];
146149
}
147150

src/headers/tomcrypt_cfg.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ LTC_EXPORT int LTC_CALL XSTRCMP(const char *s1, const char *s2);
105105
#define ENDIAN_64BITWORD
106106
#if defined(_MIPSEB) || defined(__MIPSEB) || defined(__MIPSEB__)
107107
#define ENDIAN_BIG
108-
#endif
108+
#else
109109
#define ENDIAN_LITTLE
110110
#endif
111111
#endif
@@ -288,6 +288,12 @@ typedef unsigned long ltc_mp_digit;
288288
#define LTC_HAVE_ROTATE_BUILTIN
289289
#endif
290290

291+
#if defined(__GNUC__)
292+
#define LTC_ALIGN(n) __attribute__((aligned(n)))
293+
#else
294+
#define LTC_ALIGN(n)
295+
#endif
296+
291297
#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 405)
292298
# define LTC_DEPRECATED(s) __attribute__((deprecated("replaced by " #s)))
293299
# define PRIVATE_LTC_DEPRECATED_PRAGMA(s) _Pragma(#s)
@@ -303,3 +309,5 @@ typedef unsigned long ltc_mp_digit;
303309
# define LTC_DEPRECATED(s)
304310
# define LTC_DEPRECATED_PRAGMA(s)
305311
#endif
312+
313+
#endif /* TOMCRYPT_CFG_H */

src/headers/tomcrypt_cipher.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,9 @@ typedef struct {
318318
ctrlen;
319319

320320
/** The counter */
321-
unsigned char ctr[MAXBLOCKSIZE],
321+
unsigned char ctr[MAXBLOCKSIZE];
322322
/** The pad used to encrypt/decrypt */
323-
pad[MAXBLOCKSIZE];
323+
unsigned char pad[MAXBLOCKSIZE] LTC_ALIGN(16);
324324
/** The scheduled key */
325325
symmetric_key key;
326326
} symmetric_CTR;

src/headers/tomcrypt_mac.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ int ocb3_test(void);
395395
typedef struct {
396396
symmetric_key K;
397397
int cipher, /* which cipher */
398-
taglen, /* length of the tag */
398+
taglen, /* length of the tag (encoded in M value) */
399399
x; /* index in PAD */
400400

401401
unsigned long L, /* L value */
@@ -405,7 +405,7 @@ typedef struct {
405405
current_aadlen, /* length of the currently provided add */
406406
noncelen; /* length of the nonce */
407407

408-
unsigned char PAD[16],
408+
unsigned char PAD[16], /* flags | Nonce N | l(m) */
409409
ctr[16],
410410
CTRPAD[16],
411411
CTRlen;
@@ -482,7 +482,7 @@ typedef struct {
482482
#ifdef LTC_GCM_TABLES
483483
unsigned char PC[16][256][16] /* 16 tables of 8x128 */
484484
#ifdef LTC_GCM_TABLES_SSE2
485-
__attribute__ ((aligned (16)))
485+
LTC_ALIGN(16)
486486
#endif
487487
;
488488
#endif

src/misc/compare_testvector.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ int compare_testvector(const void* is, const unsigned long is_len, const void* s
6464
}
6565
#if defined(LTC_TEST) && defined(LTC_TEST_DBG)
6666
if (res != 0) {
67-
fprintf(stderr, "Testvector #%i of %s failed:\n", which, what);
67+
fprintf(stderr, "Testvector #%i(0x%x) of %s failed:\n", which, which, what);
6868
s_print_hex("SHOULD", should, should_len);
6969
s_print_hex("IS ", is, is_len);
7070
#if LTC_TEST_DBG > 1
7171
} else {
72-
fprintf(stderr, "Testvector #%i of %s passed!\n", which, what);
72+
fprintf(stderr, "Testvector #%i(0x%x) of %s passed!\n", which, which, what);
7373
#endif
7474
}
7575
#else

tests/common.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ extern prng_state yarrow_prng;
1313
#define SHOULD_FAIL(x) do { fprintf(stderr, "%s:\n", #x); run_cmd((x) != CRYPT_OK ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
1414
#define SHOULD_FAIL_WITH(x, e) do { fprintf(stderr, "%s:\n", #x); run_cmd((x) == (e) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
1515
#define ENSURE(x) do { fprintf(stderr, "%s:\n", #x); run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
16+
#define ENSUREX(x, str) do { fprintf(stderr, "%s:\n", #x); run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, (str)); } while (0)
1617
#else
1718
#define DO(x) do { run_cmd((x), __LINE__, __FILE__, #x, NULL); } while (0)
1819
#define DOX(x, str) do { run_cmd((x), __LINE__, __FILE__, #x, (str)); } while (0)
1920
#define SHOULD_FAIL(x) do { run_cmd((x) != CRYPT_OK ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
2021
#define SHOULD_FAIL_WITH(x, e) do { run_cmd((x) == (e) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
2122
#define ENSURE(x) do { run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, NULL); } while (0)
23+
#define ENSUREX(x, str) do { run_cmd(((x)) ? CRYPT_OK : CRYPT_FAIL_TESTVECTOR, __LINE__, __FILE__, #x, (str)); } while (0)
2224
#endif
2325

2426
#define COMPARE_TESTVECTOR(i, il, s, sl, wa, wi) do { DO(do_compare_testvector((i), (il), (s), (sl), (wa), (wi))); } while(0)

tests/ecc_test.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -373,15 +373,7 @@ static int s_ecc_old_api(void)
373373
y = sizeof(buf[1]);
374374
DO(ecc_shared_secret (&userb, &usera, buf[1], &y));
375375

376-
if (y != x) {
377-
fprintf(stderr, "ecc Shared keys are not same size.");
378-
return 1;
379-
}
380-
381-
if (memcmp (buf[0], buf[1], x)) {
382-
fprintf(stderr, "ecc Shared keys not same contents.");
383-
return 1;
384-
}
376+
DO(do_compare_testvector(buf[0], x, buf[1], y, "ecc Shared keys", s));
385377

386378
/* now export userb */
387379
y = sizeof(buf[0]);

tests/mpi_test.c

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,51 +6,51 @@
66
static int s_radix_to_bin_test(void)
77
{
88
/* RADIX 16 */
9-
const char *ghex = "2";
10-
const char *phex = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22"
9+
const char ghex[] = "2";
10+
const char phex[] = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22"
1111
"514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6"
1212
"F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"
1313
"C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB"
1414
"9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E8603"
1515
"9B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA0510"
1616
"15728E5A8AACAA68FFFFFFFFFFFFFFFF";
17-
const char *xhex = "A6681ADC386CE944C3DED9A7301DCC9C518250E3EDB62F959198F8DC0057DD6FB57ABAFD788198B1";
18-
const char *yhex = "39046632C834418DFA07B3091538B614D1FB5DBB785C0FBEA3B98B295BC0CD076A88D9452141A269"
17+
const char xhex[] = "A6681ADC386CE944C3DED9A7301DCC9C518250E3EDB62F959198F8DC0057DD6FB57ABAFD788198B1";
18+
const char yhex[] = "39046632C834418DFA07B3091538B614D1FB5DBB785C0FBEA3B98B295BC0CD076A88D9452141A269"
1919
"E8BAEB1DD654EBA03A5705318D129754CDF4003A8C399240FBB8F162490F6F0DC70E414B6FEE8808"
2020
"6AFAA48E9F3A248EDC093452663D34E0E809D4F6BADBB36F80B6813EBF7C3281B862209E5604BDEA"
2121
"8B8F5F7BFDC3EEB7ADB73048289BCEA0F5A5CDEE7DF91CD1F0BA632F06DBE9BA7EF014B84B02D497"
2222
"CA7D0C60F734752A649DA496946B4E531B30D9F82EDD855636C0B0F2AE232E4186454E8887BB423E"
2323
"32A5A2495EACBA99620ACD03A38345EBB6735E62330A8EE9AA6C8370410F5CD45AF37EE90A0DA95B"
2424
"E96FC939E88FE0BD2CD09FC8F524208C";
2525
/* RADIX 47 */
26-
const char *gr47 = "2";
27-
const char *pr47 = "F27Mg1SadOFIRbDOJ5dHgHiVF02Z1LHHQ6G5SLG2U8aTdfH1ETk4GARRE7WW99dBUBLb9e2OHFIaSM1A"
26+
const char gr47[] = "2";
27+
const char pr47[] = "F27Mg1SadOFIRbDOJ5dHgHiVF02Z1LHHQ6G5SLG2U8aTdfH1ETk4GARRE7WW99dBUBLb9e2OHFIaSM1A"
2828
"ag2LNNjgYa9I9CjQGJihL3J7A2SGQe8j5Ch8EHMj5jVbAYDiQKhhPhM6Hc56fKS40GUfJkGO7KJ6EXZQ"
2929
"VgbSa2AkPC65F91g0PaYie8AGNVaFKaV9HOQf3ia1iW4i6eCOB9CcBbH7TbQij8AEgjZ0VRBcLKc6UYO"
3030
"1Zc3I2Jc0h1H2HBEH8ONI3OYBbaPV6XhAd8WCc60D0RDBU3H9U7cWL28a0c90XNO0dh5RXEFBbUCE2ZG"
3131
"gh9XQSVIHkVbFIS5F5IGVOkiWAVc9i8BHB2V0UbGW6UdRTZVV";
32-
const char *xr47 = "6bhO7O9NWFRgEMjdU0Y5POj3c1JP15MYEdIg3FO1PEjUY2aGYNSXcaF01R";
33-
const char *yr47 = "3GNPNWEYfKML1cIbI7Cc1Z0O7aQLJgB734dO2i56LLYDdI4gHYk2GAbQH2WI97hNeC7dj3fPEH8I9gV9"
32+
const char xr47[] = "6bhO7O9NWFRgEMjdU0Y5POj3c1JP15MYEdIg3FO1PEjUY2aGYNSXcaF01R";
33+
const char yr47[] = "3GNPNWEYfKML1cIbI7Cc1Z0O7aQLJgB734dO2i56LLYDdI4gHYk2GAbQH2WI97hNeC7dj3fPEH8I9gV9"
3434
"U323AXj1AJXbFPFIHGOTdC29QUUeH2SSc6NWhfQDDXd5Q5iXCKEAUGX3SKcNFIfVOYJgZCLjfHYQdgOQ"
3535
"GCjKNgbEV7Hj34MU3b79iANX2DbMYfb9iGi78BWH2HYAd7IAhk7U0OYGHKJX1bIUUj1KBLhAUg46GaER"
3636
"G9W3ARMfBCj6kSdDF9TdkWAjWTDj722IeVJERC4bKU2VDFG20kDhCMF985efD1SS8DfXcdCHF1kDUkSA"
3737
"884FHYiFEPkaagQOBQaN9BNaEHNbbd002DCIIX5eMP4HgPJPF";
3838
/* RADIX 64 */
39-
const char *gr64 = "2";
40-
const char *pr64 = "3//////////yaFsg8XQC8qnCPYYu3S7D4f0au8YcVCT08BlgOx4viYKKe8UOuq1DtlbHcppJf36p0h2c"
39+
const char gr64[] = "2";
40+
const char pr64[] = "3//////////yaFsg8XQC8qnCPYYu3S7D4f0au8YcVCT08BlgOx4viYKKe8UOuq1DtlbHcppJf36p0h2c"
4141
"toNnGtJ+4rRMrHmaNaXRLsObv+nlHCGkccD+rh2/zSjlG6j+tkE6lxMecVfQwV915yIn/cIIXcKUpaMp"
4242
"t207oueME/1PZQI3OSLTEQQHO/gFqapr+3PLqZtAEjbXnYyrOWXLAxdjKf1t2Mbcrd33LEIhoO1F5qR0"
4343
"ZA625yCf1UHYuspZlZddSi60w60vidWwBi1wAFjSLTy6zCKidUAylsbLWN63cLINpgbMhb5T8c69Zw1H"
4444
"0LSevQYgogQF//////////";
45-
const char *xr64 = "2cQ1hSE6pfHCFUsQSm7SoSKO9Gu+ssBvMHcFZS05VTRxLwklruWPYn";
46-
const char *yr64 = "v16Ooo3H1ZVe7imaLEBOKqVjTktXS3xwZkOifMy3D1sg8sKKXGQ9fwBhh7TPKww0wLmKnZHANLCtq03g"
45+
const char xr64[] = "2cQ1hSE6pfHCFUsQSm7SoSKO9Gu+ssBvMHcFZS05VTRxLwklruWPYn";
46+
const char yr64[] = "v16Ooo3H1ZVe7imaLEBOKqVjTktXS3xwZkOifMy3D1sg8sKKXGQ9fwBhh7TPKww0wLmKnZHANLCtq03g"
4747
"CEP90+xZnOaaFRmt73a5BR+w826hwf8wVEYIEt0aqKcOzDE3e2TJskjkpRu2sWJw/V3A1k68WdbO4lUg"
4848
"BZrzx/SFkjwstC4WecywWzQNDxdtv7D7mkcCl1jlfkdxm5BXB0jINodqCOFSqTIfadQIMb6jEKnimsVW"
4949
"ktOLMDi2myguZBa66HKw8Xxj2FZAbeabUhBgPOWhD0wE3HUksSrvYCmgEwQfiWt113rpKMlD+wGeDgLl"
5050
"fRyavw8/WlIpGdyZr922C";
5151
/* RADIX 256 */
52-
unsigned char gbin[] = { 0x02 };
53-
unsigned char pbin[] = {
52+
const unsigned char gbin[] = { 0x02 };
53+
const unsigned char pbin[] = {
5454
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34,
5555
0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74,
5656
0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD,
@@ -68,12 +68,12 @@ static int s_radix_to_bin_test(void)
6868
0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10,
6969
0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
7070
};
71-
unsigned char xbin[] = {
71+
const unsigned char xbin[] = {
7272
0xA6, 0x68, 0x1A, 0xDC, 0x38, 0x6C, 0xE9, 0x44, 0xC3, 0xDE, 0xD9, 0xA7, 0x30, 0x1D, 0xCC, 0x9C,
7373
0x51, 0x82, 0x50, 0xE3, 0xED, 0xB6, 0x2F, 0x95, 0x91, 0x98, 0xF8, 0xDC, 0x00, 0x57, 0xDD, 0x6F,
7474
0xB5, 0x7A, 0xBA, 0xFD, 0x78, 0x81, 0x98, 0xB1
7575
};
76-
unsigned char ybin[] = {
76+
const unsigned char ybin[] = {
7777
0x39, 0x04, 0x66, 0x32, 0xC8, 0x34, 0x41, 0x8D, 0xFA, 0x07, 0xB3, 0x09, 0x15, 0x38, 0xB6, 0x14,
7878
0xD1, 0xFB, 0x5D, 0xBB, 0x78, 0x5C, 0x0F, 0xBE, 0xA3, 0xB9, 0x8B, 0x29, 0x5B, 0xC0, 0xCD, 0x07,
7979
0x6A, 0x88, 0xD9, 0x45, 0x21, 0x41, 0xA2, 0x69, 0xE8, 0xBA, 0xEB, 0x1D, 0xD6, 0x54, 0xEB, 0xA0,
@@ -92,18 +92,24 @@ static int s_radix_to_bin_test(void)
9292
0xE9, 0x6F, 0xC9, 0x39, 0xE8, 0x8F, 0xE0, 0xBD, 0x2C, 0xD0, 0x9F, 0xC8, 0xF5, 0x24, 0x20, 0x8C
9393
};
9494

95+
#define MPI_TEST(n) (n), sizeof(n)
96+
#define MPI_TESTSET(t) MPI_TEST(g ## t), MPI_TEST(p ## t), MPI_TEST(x ## t), MPI_TEST(y ## t)
9597
struct {
9698
int radix;
9799
const void* g; int glen;
98100
const void* p; int plen;
99101
const void* x; int xlen;
100102
const void* y; int ylen;
101103
} test[4] = {
102-
{ 256, gbin, sizeof(gbin), pbin, sizeof(pbin), xbin, sizeof(xbin), ybin, sizeof(ybin) },
103-
{ 16, ghex, XSTRLEN(ghex)+1, phex, XSTRLEN(phex)+1, xhex, XSTRLEN(xhex)+1, yhex, XSTRLEN(yhex)+1 },
104-
{ 47, gr47, XSTRLEN(gr47)+1, pr47, XSTRLEN(pr47)+1, xr47, XSTRLEN(xr47)+1, yr47, XSTRLEN(yr47)+1 },
105-
{ 64, gr64, XSTRLEN(gr64)+1, pr64, XSTRLEN(pr64)+1, xr64, XSTRLEN(xr64)+1, yr64, XSTRLEN(yr64)+1 },
104+
/* ground-truth values in binary format */
105+
{ 256, MPI_TESTSET(bin) },
106+
/* test-cases in different radices */
107+
{ 16, MPI_TESTSET(hex) },
108+
{ 47, MPI_TESTSET(r47) },
109+
{ 64, MPI_TESTSET(r64) },
106110
};
111+
#undef MPI_TESTSET
112+
#undef MPI_TEST
107113
int i, j;
108114
unsigned char key_parts[4][256];
109115
unsigned long key_lens[4];

tests/pkcs_1_eme_test.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ int pkcs_1_eme_test(void)
4242
unsigned char buf[256], obuf[256];
4343
unsigned long buflen = sizeof(buf), obuflen = sizeof(obuf);
4444
int stat;
45-
prng_descriptor[prng_idx].add_entropy(s->o2, s->o2_l, (prng_state*)no_prng_desc);
46-
DOX(rsa_encrypt_key_ex(s->o1, s->o1_l, obuf, &obuflen, NULL, 0, (prng_state*)no_prng_desc, prng_idx, -1, LTC_PKCS_1_V1_5, key), s->name);
45+
prng_descriptor[prng_idx].add_entropy(s->o2, s->o2_l, (void*)no_prng_desc);
46+
DOX(rsa_encrypt_key_ex(s->o1, s->o1_l, obuf, &obuflen, NULL, 0, (void*)no_prng_desc, prng_idx, -1, LTC_PKCS_1_V1_5, key), s->name);
4747
COMPARE_TESTVECTOR(obuf, obuflen, s->o3, s->o3_l,s->name, j);
4848
DOX(rsa_decrypt_key_ex(obuf, obuflen, buf, &buflen, NULL, 0, -1, LTC_PKCS_1_V1_5, &stat, key), s->name);
4949
DOX(stat == 1?CRYPT_OK:CRYPT_FAIL_TESTVECTOR, s->name);

tests/pkcs_1_oaep_test.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ int pkcs_1_oaep_test(void)
4242
unsigned char buf[256], obuf[256];
4343
unsigned long buflen = sizeof(buf), obuflen = sizeof(obuf);
4444
int stat;
45-
prng_descriptor[prng_idx].add_entropy(s->o2, s->o2_l, (prng_state*)no_prng_desc);
46-
DOX(rsa_encrypt_key(s->o1, s->o1_l, obuf, &obuflen, NULL, 0, (prng_state*)no_prng_desc, prng_idx, hash_idx, key), s->name);
45+
prng_descriptor[prng_idx].add_entropy(s->o2, s->o2_l, (void*)no_prng_desc);
46+
DOX(rsa_encrypt_key(s->o1, s->o1_l, obuf, &obuflen, NULL, 0, (void*)no_prng_desc, prng_idx, hash_idx, key), s->name);
4747
COMPARE_TESTVECTOR(obuf, obuflen, s->o3, s->o3_l,s->name, j);
4848
DOX(rsa_decrypt_key(obuf, obuflen, buf, &buflen, NULL, 0, hash_idx, &stat, key), s->name);
4949
DOX(stat == 1?CRYPT_OK:CRYPT_FAIL_TESTVECTOR, s->name);

tests/pkcs_1_pss_test.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ int pkcs_1_pss_test(void)
4242
unsigned char buf[20], obuf[256];
4343
unsigned long buflen = sizeof(buf), obuflen = sizeof(obuf);
4444
int stat;
45-
prng_descriptor[prng_idx].add_entropy(s->o2, s->o2_l, (prng_state*)no_prng_desc);
45+
prng_descriptor[prng_idx].add_entropy(s->o2, s->o2_l, (void*)no_prng_desc);
4646
DOX(hash_memory(hash_idx, s->o1, s->o1_l, buf, &buflen), s->name);
47-
DOX(rsa_sign_hash(buf, buflen, obuf, &obuflen, (prng_state*)no_prng_desc, prng_idx, hash_idx, s->o2_l, key), s->name);
47+
DOX(rsa_sign_hash(buf, buflen, obuf, &obuflen, (void*)no_prng_desc, prng_idx, hash_idx, s->o2_l, key), s->name);
4848
COMPARE_TESTVECTOR(obuf, obuflen, s->o3, s->o3_l,s->name, j);
4949
DOX(rsa_verify_hash(obuf, obuflen, buf, buflen, hash_idx, s->o2_l, &stat, key), s->name);
5050
DOX(stat == 1?CRYPT_OK:CRYPT_FAIL_TESTVECTOR, s->name);

0 commit comments

Comments
 (0)