mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-07 05:20:49 +02:00
dsa: check that key was created before export.
This commit is contained in:
@@ -555,6 +555,9 @@ int test_wc_DsaExportKeyRaw(void)
|
||||
ExpectIntEQ(wc_InitDsaKey(&key), 0);
|
||||
ExpectIntEQ(wc_InitRng(&rng), 0);
|
||||
ExpectIntEQ(wc_MakeDsaParameters(&rng, 1024, &key), 0);
|
||||
/* export before make key should return error. */
|
||||
ExpectIntEQ(wc_DsaExportKeyRaw(&key, xOut, &xOutSz, yOut, &yOutSz),
|
||||
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
|
||||
ExpectIntEQ(wc_MakeDsaKey(&rng, &key), 0);
|
||||
|
||||
/* try successful export */
|
||||
|
||||
@@ -709,6 +709,11 @@ int wc_DsaExportKeyRaw(DsaKey* dsa, byte* x, word32* xSz, byte* y, word32* ySz)
|
||||
if (dsa == NULL || xSz == NULL || ySz == NULL)
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
/* check we have a key to export */
|
||||
if (mp_iszero(&dsa->x) || mp_iszero(&dsa->y)) {
|
||||
return BAD_FUNC_ARG;
|
||||
}
|
||||
|
||||
/* get required output buffer sizes */
|
||||
xLen = (word32)mp_unsigned_bin_size(&dsa->x);
|
||||
yLen = (word32)mp_unsigned_bin_size(&dsa->y);
|
||||
|
||||
Reference in New Issue
Block a user