openssl/fuzz/build.info
Neil Horman 75bc132dec Initial slh-dsa fuzzer
Current preforms the following operations

1) Generates arbitrary key pairs
2) Generates key pairs with parameters (both correct and incorrect)
   based on fuzzer input buffer
3) Exports and re-imports keys, confirming validity
4) Preforms Sign and Verify operations with optional parameters based on
   fuzzer input buffer

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26708)
2025-02-18 10:24:02 +01:00

340 lines
10 KiB
Text

{- use File::Spec::Functions;
our $ex_inc = $withargs{fuzzer_include} &&
(file_name_is_absolute($withargs{fuzzer_include}) ?
$withargs{fuzzer_include} : catdir(updir(), $withargs{fuzzer_include}));
our $ex_lib = $withargs{fuzzer_lib} &&
(file_name_is_absolute($withargs{fuzzer_lib}) ?
$withargs{fuzzer_lib} : catfile(updir(), $withargs{fuzzer_lib}));
""
-}
IF[{- !$disabled{"fuzz-afl"} || !$disabled{"fuzz-libfuzzer"} -}]
PROGRAMS{noinst}=asn1 asn1parse bignum bndiv client conf crl server smime
PROGRAMS{noinst}=punycode pem decoder hashtable acert
PROGRAMS{noinst}=v3name
PROGRAMS{noinst}=provider
IF[{- !$disabled{"ml-kem"} -}]
PROGRAMS{noinst}=ml-kem
ENDIF
IF[{- !$disabled{"ml-dsa"} -}]
PROGRAMS{noinst}=ml-dsa
ENDIF
IF[{- !$disabled{"slh-dsa"} -}]
PROGRAMS{noinst}=slh-dsa
ENDIF
IF[{- !$disabled{"cmp"} -}]
PROGRAMS{noinst}=cmp
ENDIF
IF[{- !$disabled{"cms"} -}]
PROGRAMS{noinst}=cms
ENDIF
IF[{- !$disabled{"ct"} -}]
PROGRAMS{noinst}=ct
ENDIF
IF[{- !$disabled{"ocsp"} -}]
PROGRAMS{noinst}=x509
ENDIF
IF[{- !$disabled{"quic"} -}]
PROGRAMS{noinst}=quic-client quic-server quic-srtm quic-lcidm quic-rcidm
ENDIF
IF[{- !$disabled{"dtls"} -}]
PROGRAMS{noinst}=dtlsclient dtlsserver
ENDIF
SOURCE[asn1]=asn1.c driver.c fuzz_rand.c
INCLUDE[asn1]=../include {- $ex_inc -}
DEPEND[asn1]=../libcrypto ../libssl {- $ex_lib -}
SOURCE[asn1parse]=asn1parse.c driver.c
INCLUDE[asn1parse]=../include {- $ex_inc -}
DEPEND[asn1parse]=../libcrypto {- $ex_lib -}
SOURCE[bignum]=bignum.c driver.c
INCLUDE[bignum]=../include {- $ex_inc -}
DEPEND[bignum]=../libcrypto {- $ex_lib -}
SOURCE[bndiv]=bndiv.c driver.c
INCLUDE[bndiv]=../include {- $ex_inc -}
DEPEND[bndiv]=../libcrypto {- $ex_lib -}
SOURCE[client]=client.c driver.c fuzz_rand.c
INCLUDE[client]=../include {- $ex_inc -}
DEPEND[client]=../libcrypto ../libssl {- $ex_lib -}
SOURCE[cmp]=cmp.c driver.c fuzz_rand.c
INCLUDE[cmp]=../include {- $ex_inc -}
DEPEND[cmp]=../libcrypto {- $ex_lib -}
SOURCE[slh-dsa]=slh-dsa.c driver.c fuzz_rand.c
INCLUDE[slh-dsa]=../include {- $ex_inc -}
DEPEND[slh-dsa]=../libcrypto {- $ex_lib -}
SOURCE[cms]=cms.c driver.c
INCLUDE[cms]=../include {- $ex_inc -}
DEPEND[cms]=../libcrypto {- $ex_lib -}
SOURCE[conf]=conf.c driver.c
INCLUDE[conf]=../include {- $ex_inc -}
DEPEND[conf]=../libcrypto {- $ex_lib -}
SOURCE[crl]=crl.c driver.c
INCLUDE[crl]=../include {- $ex_inc -}
DEPEND[crl]=../libcrypto {- $ex_lib -}
SOURCE[ct]=ct.c driver.c
INCLUDE[ct]=../include {- $ex_inc -}
DEPEND[ct]=../libcrypto {- $ex_lib -}
SOURCE[dtlsclient]=dtlsclient.c driver.c fuzz_rand.c
INCLUDE[dtlsclient]=../include {- $ex_inc -}
DEPEND[dtlsclient]=../libcrypto ../libssl {- $ex_lib -}
SOURCE[dtlsserver]=dtlsserver.c driver.c fuzz_rand.c
INCLUDE[dtlsserver]=../include {- $ex_inc -}
DEPEND[dtlsserver]=../libcrypto ../libssl {- $ex_lib -}
SOURCE[pem]=pem.c driver.c
INCLUDE[pem]=../include {- $ex_inc -}
DEPEND[pem]=../libcrypto.a {- $ex_lib -}
SOURCE[decoder]=decoder.c driver.c fuzz_rand.c
INCLUDE[decoder]=../include {- $ex_inc -}
DEPEND[decoder]=../libcrypto {- $ex_lib -}
SOURCE[hashtable]=hashtable.c driver.c
INCLUDE[hashtable]=../include {- $ex_inc -}
DEPEND[hashtable]=../libcrypto {- $ex_lib -}
SOURCE[acert]=acert.c driver.c
INCLUDE[acert]=../include {- $ex_inc -}
DEPEND[acert]=../libcrypto {- $ex_lib -}
SOURCE[punycode]=punycode.c driver.c
INCLUDE[punycode]=../include {- $ex_inc -}
DEPEND[punycode]=../libcrypto.a {- $ex_lib -}
SOURCE[smime]=smime.c driver.c
INCLUDE[smime]=../include {- $ex_inc -}
DEPEND[smime]=../libcrypto ../libssl {- $ex_lib -}
SOURCE[v3name]=v3name.c driver.c
INCLUDE[v3name]=../include {- $ex_inc -}
DEPEND[v3name]=../libcrypto.a {- $ex_lib -}
SOURCE[quic-client]=quic-client.c driver.c fuzz_rand.c
INCLUDE[quic-client]=../include {- $ex_inc -}
DEPEND[quic-client]=../libcrypto.a ../libssl.a {- $ex_lib -}
SOURCE[quic-server]=quic-server.c driver.c fuzz_rand.c
INCLUDE[quic-server]=../include {- $ex_inc -}
DEPEND[quic-server]=../libcrypto.a ../libssl.a {- $ex_lib -}
SOURCE[quic-srtm]=quic-srtm.c driver.c fuzz_rand.c
INCLUDE[quic-srtm]=../include {- $ex_inc -}
DEPEND[quic-srtm]=../libcrypto.a ../libssl.a {- $ex_lib -}
SOURCE[quic-lcidm]=quic-lcidm.c driver.c fuzz_rand.c
INCLUDE[quic-lcidm]=../include {- $ex_inc -}
DEPEND[quic-lcidm]=../libcrypto.a ../libssl.a {- $ex_lib -}
SOURCE[quic-rcidm]=quic-rcidm.c driver.c fuzz_rand.c
INCLUDE[quic-rcidm]=../include {- $ex_inc -}
DEPEND[quic-rcidm]=../libcrypto.a ../libssl.a {- $ex_lib -}
SOURCE[server]=server.c driver.c fuzz_rand.c
INCLUDE[server]=../include {- $ex_inc -}
DEPEND[server]=../libcrypto ../libssl {- $ex_lib -}
SOURCE[x509]=x509.c driver.c fuzz_rand.c
INCLUDE[x509]=../include {- $ex_inc -}
DEPEND[x509]=../libcrypto {- $ex_lib -}
SOURCE[provider]=provider.c driver.c
INCLUDE[provider]=../include {- $ex_inc -}
DEPEND[provider]=../libcrypto {- $ex_lib -}
SOURCE[ml-kem]=ml-kem.c driver.c
INCLUDE[ml-kem]=../include {- $ex_inc -}
DEPEND[ml-kem]=../libcrypto {- $ex_lib -}
SOURCE[ml-dsa]=ml-dsa.c driver.c
INCLUDE[ml-dsa]=../include {- $ex_inc -}
DEPEND[ml-dsa]=../libcrypto {- $ex_lib -}
ENDIF
IF[{- !$disabled{tests} -}]
PROGRAMS{noinst}=asn1-test asn1parse-test bignum-test bndiv-test client-test conf-test crl-test server-test smime-test
PROGRAMS{noinst}=punycode-test pem-test decoder-test hashtable-test acert-test
PROGRAMS{noinst}=v3name-test
PROGRAMS{noinst}=provider-test
IF[{- !$disabled{"ml-kem"} -}]
PROGRAMS{noinst}=ml-kem-test
ENDIF
IF[{- !$disabled{"ml-dsa"} -}]
PROGRAMS{noinst}=ml-dsa-test
ENDIF
IF[{- !$disabled{"slh-dsa"} -}]
PROGRAMS{noinst}=slh-dsa-test
ENDIF
IF[{- !$disabled{"cmp"} -}]
PROGRAMS{noinst}=cmp-test
ENDIF
IF[{- !$disabled{"cms"} -}]
PROGRAMS{noinst}=cms-test
ENDIF
IF[{- !$disabled{"ct"} -}]
PROGRAMS{noinst}=ct-test
ENDIF
IF[{- !$disabled{"ocsp"} -}]
PROGRAMS{noinst}=x509-test
ENDIF
IF[{- !$disabled{"quic"} -}]
PROGRAMS{noinst}=quic-client-test quic-server-test quic-srtm-test quic-lcidm-test
PROGRAMS{noinst}=quic-rcidm-test
ENDIF
IF[{- !$disabled{"dtls"} -}]
PROGRAMS{noinst}=dtlsclient-test dtlsserver-test
ENDIF
SOURCE[asn1-test]=asn1.c test-corpus.c fuzz_rand.c
INCLUDE[asn1-test]=../include
DEPEND[asn1-test]=../libcrypto ../libssl
SOURCE[asn1parse-test]=asn1parse.c test-corpus.c
INCLUDE[asn1parse-test]=../include
DEPEND[asn1parse-test]=../libcrypto
SOURCE[bignum-test]=bignum.c test-corpus.c
INCLUDE[bignum-test]=../include
DEPEND[bignum-test]=../libcrypto
SOURCE[bndiv-test]=bndiv.c test-corpus.c
INCLUDE[bndiv-test]=../include
DEPEND[bndiv-test]=../libcrypto
SOURCE[client-test]=client.c test-corpus.c fuzz_rand.c
INCLUDE[client-test]=../include
DEPEND[client-test]=../libcrypto ../libssl
SOURCE[cmp-test]=cmp.c test-corpus.c fuzz_rand.c
INCLUDE[cmp-test]=../include
DEPEND[cmp-test]=../libcrypto.a
# referring to static lib allows using non-exported functions
SOURCE[ml-kem-test]=ml-kem.c test-corpus.c fuzz_rand.c
INCLUDE[ml-kem-test]=../include
DEPEND[ml-kem-test]=../libcrypto.a
# referring to static lib allows using non-exported functions
SOURCE[ml-dsa-test]=ml-dsa.c test-corpus.c fuzz_rand.c
INCLUDE[ml-dsa-test]=../include
DEPEND[ml-dsa-test]=../libcrypto.a
# referring to static lib allows using non-exported functions
SOURCE[slh-dsa-test]=slh-dsa.c test-corpus.c fuzz_rand.c
INCLUDE[slh-dsa-test]=../include
DEPEND[slh-dsa-test]=../libcrypto.a
# referring to static lib allows using non-exported functions
SOURCE[cms-test]=cms.c test-corpus.c
INCLUDE[cms-test]=../include
DEPEND[cms-test]=../libcrypto
SOURCE[conf-test]=conf.c test-corpus.c
INCLUDE[conf-test]=../include
DEPEND[conf-test]=../libcrypto
SOURCE[crl-test]=crl.c test-corpus.c
INCLUDE[crl-test]=../include
DEPEND[crl-test]=../libcrypto
SOURCE[ct-test]=ct.c test-corpus.c
INCLUDE[ct-test]=../include
DEPEND[ct-test]=../libcrypto
SOURCE[dtlsclient-test]=dtlsclient.c test-corpus.c fuzz_rand.c
INCLUDE[dtlsclient-test]=../include
DEPEND[dtlsclient-test]=../libcrypto ../libssl
SOURCE[dtlsserver-test]=dtlsserver.c test-corpus.c fuzz_rand.c
INCLUDE[dtlsserver-test]=../include
DEPEND[dtlsserver-test]=../libcrypto ../libssl
SOURCE[pem-test]=pem.c test-corpus.c
INCLUDE[pem-test]=../include
DEPEND[pem-test]=../libcrypto.a
SOURCE[decoder-test]=decoder.c test-corpus.c fuzz_rand.c
INCLUDE[decoder-test]=../include
DEPEND[decoder-test]=../libcrypto
SOURCE[hashtable-test]=hashtable.c test-corpus.c fuzz_rand.c
INCLUDE[hashtable-test]=../include
DEPEND[hashtable-test]=../libcrypto.a
SOURCE[acert-test]=acert.c test-corpus.c
INCLUDE[acert-test]=../include
DEPEND[acert-test]=../libcrypto
SOURCE[punycode-test]=punycode.c test-corpus.c
INCLUDE[punycode-test]=../include
DEPEND[punycode-test]=../libcrypto.a
SOURCE[smime-test]=smime.c test-corpus.c
INCLUDE[smime-test]=../include
DEPEND[smime-test]=../libcrypto ../libssl
SOURCE[v3name-test]=v3name.c test-corpus.c
INCLUDE[v3name-test]=../include
DEPEND[v3name-test]=../libcrypto.a
SOURCE[quic-client-test]=quic-client.c test-corpus.c fuzz_rand.c
INCLUDE[quic-client-test]=../include
DEPEND[quic-client-test]=../libcrypto.a ../libssl.a
SOURCE[quic-server-test]=quic-server.c test-corpus.c fuzz_rand.c
INCLUDE[quic-server-test]=../include
DEPEND[quic-server-test]=../libcrypto.a ../libssl.a
SOURCE[quic-srtm-test]=quic-srtm.c test-corpus.c fuzz_rand.c
INCLUDE[quic-srtm-test]=../include
DEPEND[quic-srtm-test]=../libcrypto.a ../libssl.a
SOURCE[quic-lcidm-test]=quic-lcidm.c test-corpus.c fuzz_rand.c
INCLUDE[quic-lcidm-test]=../include
DEPEND[quic-lcidm-test]=../libcrypto.a ../libssl.a
SOURCE[quic-rcidm-test]=quic-rcidm.c test-corpus.c fuzz_rand.c
INCLUDE[quic-rcidm-test]=../include
DEPEND[quic-rcidm-test]=../libcrypto.a ../libssl.a
SOURCE[server-test]=server.c test-corpus.c fuzz_rand.c
INCLUDE[server-test]=../include
DEPEND[server-test]=../libcrypto ../libssl
SOURCE[x509-test]=x509.c test-corpus.c fuzz_rand.c
INCLUDE[x509-test]=../include
DEPEND[x509-test]=../libcrypto
SOURCE[provider-test]=provider.c test-corpus.c
INCLUDE[provider-test]=../include
DEPEND[provider-test]=../libcrypto
ENDIF