Skip to content

Commit bbcdfe9

Browse files
committed
Disable exporting dilithium DER tests without WOLFSSL_ASN_TEMPLATE
1 parent 778dcba commit bbcdfe9

3 files changed

Lines changed: 41 additions & 4 deletions

File tree

tests/api/test_mldsa.c

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3004,8 +3004,13 @@ int test_wc_dilithium_der(void)
30043004

30053005
ExpectIntEQ(wc_Dilithium_PrivateKeyToDer(NULL, NULL,
30063006
0 ), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
3007+
#ifndef WOLFSSL_ASN_TEMPLATE
3008+
ExpectIntEQ(wc_Dilithium_PrivateKeyToDer(key , NULL,
3009+
0 ), BAD_FUNC_ARG);
3010+
#else
30073011
ExpectIntGT(wc_Dilithium_PrivateKeyToDer(key , NULL,
30083012
0 ), 0);
3013+
#endif
30093014
ExpectIntEQ(wc_Dilithium_PrivateKeyToDer(NULL, der ,
30103015
0 ), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
30113016
ExpectIntEQ(wc_Dilithium_PrivateKeyToDer(NULL, NULL,
@@ -3015,13 +3020,23 @@ int test_wc_dilithium_der(void)
30153020
ExpectIntEQ(wc_Dilithium_PrivateKeyToDer(key , der ,
30163021
0 ), WC_NO_ERR_TRACE(BUFFER_E));
30173022
/* Get length only. */
3023+
#ifndef WOLFSSL_ASN_TEMPLATE
3024+
ExpectIntEQ(wc_Dilithium_PrivateKeyToDer(key , NULL,
3025+
DILITHIUM_MAX_DER_SIZE), BAD_FUNC_ARG);
3026+
#else
30183027
ExpectIntEQ(wc_Dilithium_PrivateKeyToDer(key , NULL,
30193028
DILITHIUM_MAX_DER_SIZE), privDerLen);
3029+
#endif
30203030

30213031
ExpectIntEQ(wc_Dilithium_KeyToDer(NULL, NULL, 0 ),
30223032
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
3033+
#ifndef WOLFSSL_ASN_TEMPLATE
3034+
ExpectIntEQ(wc_Dilithium_KeyToDer(key , NULL, 0 ),
3035+
BAD_FUNC_ARG);
3036+
#else
30233037
ExpectIntGT(wc_Dilithium_KeyToDer(key , NULL, 0 ),
30243038
0 );
3039+
#endif
30253040
ExpectIntEQ(wc_Dilithium_KeyToDer(NULL, der , 0 ),
30263041
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
30273042
ExpectIntEQ(wc_Dilithium_KeyToDer(NULL, NULL, DILITHIUM_MAX_DER_SIZE),
@@ -3031,8 +3046,13 @@ int test_wc_dilithium_der(void)
30313046
ExpectIntEQ(wc_Dilithium_KeyToDer(key , der , 0 ),
30323047
WC_NO_ERR_TRACE(BUFFER_E));
30333048
/* Get length only. */
3049+
#ifndef WOLFSSL_ASN_TEMPLATE
3050+
ExpectIntEQ(wc_Dilithium_KeyToDer(key , NULL, DILITHIUM_MAX_DER_SIZE),
3051+
BAD_FUNC_ARG);
3052+
#else
30343053
ExpectIntEQ(wc_Dilithium_KeyToDer(key , NULL, DILITHIUM_MAX_DER_SIZE),
30353054
keyDerLen);
3055+
#endif
30363056

30373057
ExpectIntEQ(wc_Dilithium_PublicKeyDecode(NULL, NULL, NULL, 0 ),
30383058
WC_NO_ERR_TRACE(BAD_FUNC_ARG));
@@ -3081,22 +3101,34 @@ int test_wc_dilithium_der(void)
30813101
idx = 0;
30823102
ExpectIntEQ(wc_Dilithium_PublicKeyDecode(der, &idx, key, len), 0);
30833103

3104+
#ifndef WOLFSSL_ASN_TEMPLATE
3105+
ExpectIntEQ(len = wc_Dilithium_PrivateKeyToDer(key, der,
3106+
DILITHIUM_MAX_DER_SIZE), BAD_FUNC_ARG);
3107+
#else
30843108
ExpectIntEQ(len = wc_Dilithium_PrivateKeyToDer(key, der,
30853109
DILITHIUM_MAX_DER_SIZE), privDerLen);
30863110
idx = 0;
30873111
ExpectIntEQ(wc_Dilithium_PrivateKeyDecode(der, &idx, key, len), 0);
3112+
#endif
30883113

3114+
#ifndef WOLFSSL_ASN_TEMPLATE
3115+
ExpectIntEQ(len = wc_Dilithium_KeyToDer(key, der, DILITHIUM_MAX_DER_SIZE),
3116+
BAD_FUNC_ARG);
3117+
#else
30893118
ExpectIntEQ(len = wc_Dilithium_KeyToDer(key, der, DILITHIUM_MAX_DER_SIZE),
30903119
keyDerLen);
30913120
idx = 0;
30923121
ExpectIntEQ(wc_Dilithium_PrivateKeyDecode(der, &idx, key, len), 0);
3122+
#endif
30933123

30943124

30953125
wc_dilithium_free(key);
30963126
wc_FreeRng(&rng);
30973127

30983128
XFREE(der, NULL, DYNAMIC_TYPE_TMP_BUFFER);
30993129
XFREE(key, NULL, DYNAMIC_TYPE_TMP_BUFFER);
3130+
3131+
(void)keyDerLen;
31003132
#endif
31013133
return EXPECT_RESULT();
31023134
}
@@ -16878,7 +16910,7 @@ int test_mldsa_pkcs8_export_import_wolfSSL_form(void)
1687816910
(!defined(NO_WOLFSSL_CLIENT) || !defined(NO_WOLFSSL_SERVER)) && \
1687916911
!defined(WOLFSSL_DILITHIUM_NO_MAKE_KEY) && \
1688016912
!defined(WOLFSSL_DILITHIUM_NO_SIGN) && \
16881-
!defined(WOLFSSL_DILITHIUM_NO_ASN1)
16913+
!defined(WOLFSSL_DILITHIUM_NO_ASN1) && defined(WOLFSSL_ASN_TEMPLATE)
1688216914

1688316915
WOLFSSL_CTX* ctx = NULL;
1688416916
size_t i;

wolfcrypt/src/asn.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37583,6 +37583,11 @@ int SetAsymKeyDer(const byte* privKey, word32 privKeyLen,
3758337583
}
3758437584

3758537585
#ifndef WOLFSSL_ASN_TEMPLATE
37586+
if (privKeyLen >= 128 || pubKeyLen >= 128) {
37587+
/* privKeyLen and pubKeyLen are assumed to be less than 128 */
37588+
return BAD_FUNC_ARG;
37589+
}
37590+
3758637591
/* calculate size */
3758737592
if (pubKey) {
3758837593
pubSz = 2 + pubKeyLen;

wolfcrypt/test/test.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46932,7 +46932,7 @@ static wc_test_ret_t test_dilithium_decode_level(const byte* rawKey,
4693246932
int isPublicOnlyKey)
4693346933
{
4693446934
int ret = 0;
46935-
#ifndef WOLFSSL_DILITHIUM_NO_ASN1
46935+
#if !defined(WOLFSSL_DILITHIUM_NO_ASN1) && defined(WOLFSSL_ASN_TEMPLATE)
4693646936
/* Size the buffer to accommodate the largest encoded key size */
4693746937
const word32 maxDerSz = DILITHIUM_MAX_PRV_KEY_DER_SIZE;
4693846938
word32 derSz;
@@ -46982,7 +46982,7 @@ static wc_test_ret_t test_dilithium_decode_level(const byte* rawKey,
4698246982
#endif
4698346983
}
4698446984

46985-
#ifndef WOLFSSL_DILITHIUM_NO_ASN1
46985+
#if !defined(WOLFSSL_DILITHIUM_NO_ASN1) && defined(WOLFSSL_ASN_TEMPLATE)
4698646986
/* Export raw key as DER */
4698746987
if (ret == 0) {
4698846988
#ifdef WOLFSSL_DILITHIUM_PUBLIC_KEY
@@ -47056,7 +47056,7 @@ static wc_test_ret_t test_dilithium_decode_level(const byte* rawKey,
4705647056
ret = WC_TEST_RET_ENC_NC;
4705747057
}
4705847058
#endif /* !WOLFSSL_DILITHIUM_FIPS204_DRAFT */
47059-
#endif /* WOLFSSL_DILITHIUM_NO_ASN1 */
47059+
#endif /* !WOLFSSL_DILITHIUM_NO_ASN1 && WOLFSSL_ASN_TEMPLATE */
4706047060

4706147061
/* Cleanup */
4706247062
wc_dilithium_free(key);

0 commit comments

Comments
 (0)