#!/bin/sh # Clean out patent-protected code. # RSA: 4,405,829 20/09/2000 # MDC-2: 4,908,861 13/03/2007 # IDEA: 5,214,703 25/05/2010 # RC5: 5,724,428 03/03/2015 # RSA's patented parts. function nullify_rsa() { echo Removing patented parts from crypto/rsa/rsa_eay.c cat crypto/rsa/rsa_eay.c | \ awk 'BEGIN {ech=1;} \ /#if/ {if(ech < 1) ech--;} \ /#ifndef.*RSA_NULL/ {ech--;} \ {if(ech>0) {;print $0};} \ /#endif/ {if(ech < 1) ech++;}' > crypto/rsa/nullrsa_eay.c && \ mv crypto/rsa/nullrsa_eay.c crypto/rsa/rsa_eay.c rm -fr crypto/rsa/asm } if [ `date +%Y%m%d` -lt 20000921 ] ; then nullify_rsa fi # Bah. Assembler is hard to port. (find crypto/{idea,mdc2,rc5,md2}/asm -type f | xargs -r rm -fv) # IDEA, MDC2 and RC5. for c in `find crypto/{idea,mdc2,rc5,md2} -name "*.c" -a \! -name "*test*" -type f` ; do echo Destroying $c cat /dev/null > $c done for c in `find crypto/evp -name "*_r5.c" -o -name "*_i.c" -o -name "*_mdc2.c" -o -name "*_md2.c"`; do echo Destroying $c cat /dev/null > $c done for h in `find include crypto ssl apps test -name "*.h"` ; do echo Removing IDEA, MDC2, MD2 and RC5 references from $h cat $h | \ awk 'BEGIN {ech=1;} \ /#[ \t]*if/ {if(ech < 1) ech--;} \ /#[ \t]*ifndef.*NO_IDEA/ {ech--;} \ /#[ \t]*ifndef.*NO_MDC2/ {ech--;} \ /#[ \t]*ifndef.*NO_MD2/ {ech--;} \ /#[ \t]*ifndef.*NO_RC5/ {ech--;} \ {if(ech>0) {;print $0};} \ /#endif/ {if(ech < 1) ech++;}' > $h.hobbled && \ mv $h.hobbled $h done # Make the makefiles happy. touch crypto/rc5/asm/rc5-586.pl