OpenBSD-4.6/regress/lib/libssl/Makefile

#	$OpenBSD: Makefile,v 1.13 2008/09/06 12:21:54 djm Exp $

CLEANFILES+= testdsa.key testdsa.pem rsakey.pem rsacert.pem dsa512.pem

REGRESS_TARGETS=ossltests ssl-enc ssl-dsa ssl-rsa 

OPENSSL=/usr/sbin/openssl
CLEAR1=p
CIPHER=cipher
CLEAR2=clear
LIBCRYPTO=-lcrypto

BFTEST=		bftest
BNTEST=		bntest
CASTTEST=	casttest
DESTEST=	destest
DHTEST=		dhtest
DSATEST=	dsatest
ECDHTEST=	ecdhtest
ECDSATEST=	ecdsatest
ECTEST=		ectest
ENGINETEST=	enginetest
EVPTEST=	evp_test
EXPTEST=	exptest
HMACTEST=	hmactest
IGETEST=	igetest
MD2TEST=	md2test
MD4TEST=	md4test
MD5TEST=	md5test
RANDTEST=	randtest
RC2TEST=	rc2test
RC4TEST=	rc4test
RMDTEST=	rmdtest
RSATEST=	rsa_test
SHA1TEST=	sha1test
SHA256TEST=	sha256t
SHA512TEST=	sha512t
SHATEST=	shatest

SSLDIR=	${.CURDIR}/../../../lib/libssl/src/crypto
CFLAGS= -O -g -Wall -I${SSLDIR} -I${SSLDIR}/..

CLEANFILES+=	$(BNTEST).c $(ECTEST).c $(HMACTEST).c \
	$(SHATEST).c $(SHA1TEST).c $(MDC2TEST).c $(RMDTEST).c \
	$(RANDTEST).c $(DHTEST).c $(ENGINETEST).c \
	$(CASTTEST).c $(EXPTEST).c $(DSATEST).c $(RSATEST).c \
	$(EVPTEST).c $(DESTEST).c ${RC2TEST}.c ${RC4TEST}.c ${MD2TEST}.c \
	${MD4TEST}.c ${MD5TEST}.c ${BFTEST}.c ${ECDHTEST}.c ${ECDSATEST}.c \
	${IGETEST}.c ${SHA256TEST}.c ${SHA512TEST}.c

CLEANFILES+=	$(BNTEST) $(ECTEST) $(HMACTEST) \
	$(SHATEST) $(SHA1TEST) $(MDC2TEST) $(RMDTEST) \
	$(RANDTEST) $(DHTEST) $(ENGINETEST) \
	$(CASTTEST) $(EXPTEST) $(DSATEST) $(RSATEST) \
	$(EVPTEST) $(DESTEST) ${RC2TEST} ${RC4TEST} ${MD2TEST} ${MD4TEST} \
	${MD5TEST} ${BFTEST} ${ECDHTEST} ${ECDSATEST} ${IGETEST} \
	${SHA256TEST} ${SHA512TEST}

CLEANFILES+= ${BNTEST}.out

OTESTS= ${ENGINETEST}  \
	${EXPTEST} ${RANDTEST} \
	${MD2TEST} ${MD4TEST} ${MD5TEST} \
	${SHATEST} ${SHA1TEST} ${HMACTEST} ${RMDTEST} ${MDC2TEST} \
	${CASTTEST} ${BFTEST} ${RC2TEST} ${RC4TEST} ${DESTEST} \
	${DHTEST} ${DSATEST} ${RSATEST} \
	${ECTEST} ${ECDHTEST} ${ECDSATEST} $(IGETEST) \
	$(SHA256TEST) $(SHA512TEST)

${CLEAR1}: openssl.cnf
	cat ${.CURDIR}/openssl.cnf > ${CLEAR1}

CLEANFILES+=${CLEAR1}

ENCTARGETS=aes-128-cbc aes-128-cfb aes-128-cfb1 aes-128-cfb8
ENCTARGETS+=aes-128-ecb aes-128-ofb aes-192-cbc aes-192-cfb
ENCTARGETS+=aes-192-cfb1 aes-192-cfb8 aes-192-ecb aes-192-ofb
ENCTARGETS+=aes-256-cbc aes-256-cfb aes-256-cfb1 aes-256-cfb8
ENCTARGETS+=aes-256-ecb aes-256-ofb
ENCTARGETS+=bf-cbc bf-cfb bf-ecb bf-ofb
ENCTARGETS+=cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb
ENCTARGETS+=des-cbc des-cfb des-cfb8 des-ecb des-ede
ENCTARGETS+=des-ede-cbc des-ede-cfb des-ede-ofb des-ede3
ENCTARGETS+=des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb desx-cbc
ENCTARGETS+=rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
ENCTARGETS+=rc4 rc4-40

.for ENC in ${ENCTARGETS}
${CIPHER}.${ENC}: ${CLEAR1}
	${OPENSSL} enc -${ENC} -bufsize 113 -e -k test < ${CLEAR1} > ${CIPHER}.${ENC}
${CIPHER}.${ENC}.b64: ${CLEAR1}
	${OPENSSL} enc -${ENC} -bufsize 113 -a -e -k test < ${CLEAR1} > ${CIPHER}.${ENC}.b64

${CLEAR2}.${ENC}: ${CIPHER}.${ENC}
	${OPENSSL} enc -${ENC} -bufsize 157 -d -k test < ${CIPHER}.${ENC} > ${CLEAR2}.${ENC}
${CLEAR2}.${ENC}.b64: ${CIPHER}.${ENC}.b64
	${OPENSSL} enc -${ENC} -bufsize 157 -a -d -k test < ${CIPHER}.${ENC}.b64 > ${CLEAR2}.${ENC}.b64

ssl-enc-${ENC}: ${CLEAR1} ${CLEAR2}.${ENC}
	cmp ${CLEAR1} ${CLEAR2}.${ENC}
ssl-enc-${ENC}.b64: ${CLEAR1} ${CLEAR2}.${ENC}.b64
	cmp ${CLEAR1} ${CLEAR2}.${ENC}.b64

REGRESS_TARGETS+=ssl-enc-${ENC} ssl-enc-${ENC}.b64
CLEANFILES+=${CIPHER}.${ENC} ${CIPHER}.${ENC}.b64 ${CLEAR2}.${ENC} ${CLEAR2}.${ENC}.b64 .rnd
.endfor

ssl-enc:
	sh ${.CURDIR}/testenc.sh ${.OBJDIR} ${.CURDIR}
ssl-dsa:
	sh ${.CURDIR}/testdsa.sh ${.OBJDIR} ${.CURDIR}
ssl-rsa:
	sh ${.CURDIR}/testrsa.sh ${.OBJDIR} ${.CURDIR}

ossltests: ${OTESTS} ${BNTEST} ${EVPTEST}
	@echo running ${BNTEST}, check ${.OBJDIR}/${BNTEST}.out if this fails.
	${.OBJDIR}/${BNTEST} > ${.OBJDIR}/${BNTEST}.out 2>&1
.for OT in ${OTESTS}
	@echo running ${OT}
	${.OBJDIR}/${OT} 
.endfor
	@echo running ${EVPTEST}
	${.OBJDIR}/${EVPTEST} ${SSLDIR}/evp/evptests.txt

$(BNTEST).c: ${SSLDIR}/bn/bntest.c
	cp ${SSLDIR}/bn/bntest.c ${.OBJDIR}

$(BNTEST): ${BNTEST}.c
	cc ${CFLAGS} -o $(BNTEST) ${BNTEST}.c $(LIBCRYPTO)

$(EXPTEST).c: ${SSLDIR}/bn/exptest.c
	cp ${SSLDIR}/bn/exptest.c ${.OBJDIR}

$(EXPTEST): ${EXPTEST}.c
	cc ${CFLAGS} -o $(EXPTEST) ${EXPTEST}.c $(LIBCRYPTO)

$(ECTEST).c: ${SSLDIR}/ec/ectest.c
	cp ${SSLDIR}/ec/ectest.c ${.OBJDIR}

$(ECTEST): ${ECTEST}.c
	cc ${CFLAGS} -o $(ECTEST) ${ECTEST}.c $(LIBCRYPTO)

$(EVPTEST).c: ${SSLDIR}/evp/${EVPTEST}.c
	cp ${SSLDIR}/evp/${EVPTEST}.c ${.OBJDIR}
$(EVPTEST): ${EVPTEST}.c
	cc ${CFLAGS} -o $(EVPTEST) ${EVPTEST}.c $(LIBCRYPTO)

$(SHATEST).c: ${SSLDIR}/sha/${SHATEST}.c
	cp ${SSLDIR}/sha/${SHATEST}.c ${.OBJDIR}
$(SHATEST): ${SHATEST}.c
	cc ${CFLAGS} -o $(SHATEST) ${SHATEST}.c $(LIBCRYPTO)

$(SHA1TEST).c: ${SSLDIR}/sha/${SHA1TEST}.c
	cp ${SSLDIR}/sha/${SHA1TEST}.c ${.OBJDIR}
$(SHA1TEST): ${SHA1TEST}.c
	cc ${CFLAGS} -o $(SHA1TEST) ${SHA1TEST}.c $(LIBCRYPTO)

$(RANDTEST).c: ${SSLDIR}/rand/${RANDTEST}.c
	cp ${SSLDIR}/rand/${RANDTEST}.c ${.OBJDIR}
$(RANDTEST): ${RANDTEST}.c
	cc ${CFLAGS} -o $(RANDTEST) ${RANDTEST}.c $(LIBCRYPTO)

$(RMDTEST).c: ${SSLDIR}/ripemd/${RMDTEST}.c
	cp ${SSLDIR}/ripemd/${RMDTEST}.c ${.OBJDIR}
$(RMDTEST): ${RMDTEST}.c
	cc ${CFLAGS} -o $(RMDTEST) ${RMDTEST}.c $(LIBCRYPTO)

$(DHTEST).c: ${SSLDIR}/dh/${DHTEST}.c
	cp ${SSLDIR}/dh/${DHTEST}.c ${.OBJDIR}

$(DHTEST): ${DHTEST}.c
	cc ${CFLAGS} -o $(DHTEST) ${DHTEST}.c $(LIBCRYPTO)

$(ENGINETEST).c: ${SSLDIR}/engine/${ENGINETEST}.c
	cp ${SSLDIR}/engine/${ENGINETEST}.c ${.OBJDIR}

$(ENGINETEST): ${ENGINETEST}.c
	cc ${CFLAGS} -o $(ENGINETEST) ${ENGINETEST}.c $(LIBCRYPTO)

$(CASTTEST).c: ${SSLDIR}/cast/${CASTTEST}.c
	cp ${SSLDIR}/cast/${CASTTEST}.c ${.OBJDIR}

$(CASTTEST): ${CASTTEST}.c
	cc ${CFLAGS} -o $(CASTTEST) ${CASTTEST}.c $(LIBCRYPTO)

$(RSATEST).c: ${SSLDIR}/rsa/${RSATEST}.c
	cp ${SSLDIR}/rsa/${RSATEST}.c ${.OBJDIR}

$(RSATEST): ${RSATEST}.c
	cc ${CFLAGS} -o $(RSATEST) ${RSATEST}.c $(LIBCRYPTO)

$(DSATEST).c: ${SSLDIR}/dsa/${DSATEST}.c
	cp ${SSLDIR}/dsa/${DSATEST}.c ${.OBJDIR}

$(DSATEST): ${DSATEST}.c
	cc ${CFLAGS} -o $(DSATEST) ${DSATEST}.c $(LIBCRYPTO)


$(HMACTEST).c: ${SSLDIR}/hmac/${HMACTEST}.c
	cp ${SSLDIR}/hmac/${HMACTEST}.c ${.OBJDIR}

$(HMACTEST): ${HMACTEST}.c
	cc ${CFLAGS} -o $(HMACTEST) ${HMACTEST}.c $(LIBCRYPTO)

$(DESTEST).c: ${SSLDIR}/des/${DESTEST}.c
	cp ${SSLDIR}/des/${DESTEST}.c ${.OBJDIR}

$(DESTEST): ${DESTEST}.c
	cc ${CFLAGS} -o $(DESTEST) ${DESTEST}.c $(LIBCRYPTO)

$(BFTEST).c: ${SSLDIR}/bf/${BFTEST}.c
	cp ${SSLDIR}/bf/${BFTEST}.c ${.OBJDIR}

$(BFTEST): ${BFTEST}.c
	cc ${CFLAGS} -o $(BFTEST) ${BFTEST}.c $(LIBCRYPTO)

$(RC2TEST).c: ${SSLDIR}/rc2/${RC2TEST}.c
	cp ${SSLDIR}/rc2/${RC2TEST}.c ${.OBJDIR}

$(RC2TEST): ${RC2TEST}.c
	cc ${CFLAGS} -o $(RC2TEST) ${RC2TEST}.c $(LIBCRYPTO)

$(RC4TEST).c: ${SSLDIR}/rc4/${RC4TEST}.c
	cp ${SSLDIR}/rc4/${RC4TEST}.c ${.OBJDIR}

$(RC4TEST): ${RC4TEST}.c
	cc ${CFLAGS} -o $(RC4TEST) ${RC4TEST}.c $(LIBCRYPTO)

$(MD2TEST).c: ${SSLDIR}/md2/${MD2TEST}.c
	cp ${SSLDIR}/md2/${MD2TEST}.c ${.OBJDIR}

$(MD2TEST): ${MD2TEST}.c
	cc ${CFLAGS} -o $(MD2TEST) ${MD2TEST}.c $(LIBCRYPTO)

$(MD4TEST).c: ${SSLDIR}/md4/${MD4TEST}.c
	cp ${SSLDIR}/md4/${MD4TEST}.c ${.OBJDIR}

$(MD4TEST): ${MD4TEST}.c
	cc ${CFLAGS} -o $(MD4TEST) ${MD4TEST}.c $(LIBCRYPTO)

$(MD5TEST).c: ${SSLDIR}/md5/${MD5TEST}.c
	cp ${SSLDIR}/md5/${MD5TEST}.c ${.OBJDIR}

$(MD5TEST): ${MD5TEST}.c
	cc ${CFLAGS} -o $(MD5TEST) ${MD5TEST}.c $(LIBCRYPTO)

$(ECDHTEST).c: ${SSLDIR}/ecdh/${ECDHTEST}.c
	cp ${SSLDIR}/ecdh/${ECDHTEST}.c ${.OBJDIR}

$(ECDHTEST): ${ECDHTEST}.c
	cc ${CFLAGS} -o $(ECDHTEST) ${ECDHTEST}.c $(LIBCRYPTO)

$(ECDSATEST).c: ${SSLDIR}/ecdsa/${ECDSATEST}.c
	cp ${SSLDIR}/ecdsa/${ECDSATEST}.c ${.OBJDIR}

$(ECDSATEST): ${ECDSATEST}.c
	cc ${CFLAGS} -o $(ECDSATEST) ${ECDSATEST}.c $(LIBCRYPTO)

$(IGETEST).c: ${SSLDIR}/../test/${IGETEST}.c
	cp ${SSLDIR}/../test/${IGETEST}.c ${.OBJDIR}

$(IGETEST): ${IGETEST}.c
	cc ${CFLAGS} -o $(IGETEST) ${IGETEST}.c $(LIBCRYPTO)

$(SHA256TEST).c: ${SSLDIR}/sha/${SHA256TEST}.c
	cp ${SSLDIR}/sha/${SHA256TEST}.c ${.OBJDIR}

$(SHA256TEST): ${SHA256TEST}.c
	cc ${CFLAGS} -o $(SHA256TEST) ${SHA256TEST}.c $(LIBCRYPTO)

$(SHA512TEST).c: ${SSLDIR}/sha/${SHA512TEST}.c
	cp ${SSLDIR}/sha/${SHA512TEST}.c ${.OBJDIR}

$(SHA512TEST): ${SHA512TEST}.c
	cc ${CFLAGS} -o $(SHA512TEST) ${SHA512TEST}.c $(LIBCRYPTO)

.include <bsd.regress.mk>