diff options
Diffstat (limited to 'devel/import-ecc-from-nettle.sh')
-rwxr-xr-x | devel/import-ecc-from-nettle.sh | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/devel/import-ecc-from-nettle.sh b/devel/import-ecc-from-nettle.sh deleted file mode 100755 index 2ce6285d39..0000000000 --- a/devel/import-ecc-from-nettle.sh +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh - -# This script copies the Curve448 and Ed448, GOST 34.10 implementation from the -# nettle upstream, with necessary adjustments for bundling in GnuTLS. - -set +e - -: ${srcdir=.} -SRC=$srcdir/devel/nettle -DST=$srcdir/lib/nettle/ecc - -IMPORTS=" -cnd-copy.c -curve448-eh-to-x.c -curve448.h -curve448-mul.c -curve448-mul-g.c -eccdata.c -ecc-curve448.c -ecc-add-eh.c -ecc-add-ehh.c -ecc-add-jja.c -ecc-add-jjj.c -ecc-a-to-j.c -ecc-dup-eh.c -ecc-dup-jj.c -ecc-eh-to-a.c -ecc-gost-gc256b.c -ecc-gost-gc512a.c -ecc-gostdsa-sign.c -ecc-gostdsa-verify.c -ecc-internal.h -ecc-j-to-a.c -ecc-mod-arith.c -ecc-mod.c -ecc-mod-inv.c -ecc-mul-a.c -ecc-mul-a-eh.c -ecc-mul-g.c -ecc-mul-g-eh.c -ecc-mul-m.c -ecc-random.c -ed448-shake256.c -ed448-shake256-pubkey.c -ed448-shake256-sign.c -ed448-shake256-verify.c -eddsa-compress.c -eddsa-decompress.c -eddsa-expand.c -eddsa.h -eddsa-hash.c -eddsa-internal.h -eddsa-pubkey.c -eddsa-sign.c -eddsa-verify.c -gostdsa.h -gostdsa-sign.c -gostdsa-verify.c -gostdsa-vko.c -gmp-glue.h -gmp-glue.c -nettle-write.h -sec-add-1.c -sec-tabselect.c -sha3.c -sha3.h -sha3-256.c -sha3-internal.h -sha3-permute.c -shake256.c -write-le64.c -" - -PUBLIC=" -bignum.h -dsa.h -ecc-curve.h -ecc.h -ecdsa.h -macros.h -memxor.h -nettle-meta.h -nettle-types.h -" - -test -d $DST || mkdir $DST - -for f in $IMPORTS; do - src=$SRC/$f - dst=$DST/$f - if test -f $src; then - if test -f $dst; then - echo "Replacing $dst (existing file backed up in $dst~)" - mv $dst $dst~ - else - echo "Copying file $dst" - fi - cp $src $dst - # Use <nettle/*.h> for public headers. - for h in $PUBLIC; do - p=$(echo $h | sed 's/\./\\./g') - if grep '^#include "'$p'"' $dst 2>&1 >/dev/null; then - sed 's!^#include "'$p'"!#include <nettle/'$h'>!' $dst > $dst-t && \ - mv $dst-t $dst - fi - done - # Remove unused <assert.h>. - if grep '^#include <assert\.h>' $dst 2>&1 >/dev/null; then - if ! grep 'assert *(' $dst 2>&1 >/dev/null; then - sed '/^#include <assert\.h>/d' $dst > $dst-t && mv $dst-t $dst - fi - fi - case $dst in - *.h) - # Rename header guard so as not to conflict with the public ones. - if grep '^#ifndef NETTLE_.*_H\(_INCLUDED\)*' $dst 2>&1 >/dev/null; then - g=$(sed -n 's/^#ifndef NETTLE_\(.*_H\(_INCLUDED\)*\)/\1/p' $dst) - sed 's/\(NETTLE_'$g'\)/GNUTLS_LIB_NETTLE_ECC_\1/' $dst > $dst-t && \ - mv $dst-t $dst - fi - # Add prefix to function symbols avoid clashing with the public ones. - sed -e 's/^#define \(.*\) nettle_\1/#define \1 gnutls_nettle_ecc_\1/' \ - -e 's/^#define \(.*\) _nettle_\1/#define \1 _gnutls_nettle_ecc_\1/' \ - -e 's/^#define _\(.*\) _nettle_\1/#define _\1 _gnutls_nettle_ecc_\1/' \ - -e '/^_nettle_/ { h ; s/^_nettle_\(.*\)(.*/#define _nettle_\1 _gnutls_nettle_ecc_\1/g ; p; x; }' \ - -e '/^extern const struct ecc_curve _nettle_\(.*\);/ { h ; s/.*_nettle\(.*\);/#define _nettle_\1 _gnutls_nettle_ecc_\1/ ; p; x; }' \ - -e '/^extern const struct ecc_eddsa _nettle_\(.*\);/ { h ; s/.*_nettle\(.*\);/#define _nettle_\1 _gnutls_nettle_ecc_\1/ ; p; x; }' \ - -e '/gostdsa_generate_keypair/d' \ - $dst > $dst-t && \ - mv $dst-t $dst - ;; - */eccdata.c) - sed 's/^#include "mini-gmp.c"/#include <gmp.h>/' $dst > $dst-t && \ - mv $dst-t $dst - ;; - */ecc-curve448.c) - # The generated file is arch dependent, conditionalize the - # inclusion. - sed '/^#include "ecc-curve448\.h"/ { i\ -#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)\ -# pragma GCC diagnostic ignored "-Wunused-const-variable"\ -#endif\ -#if GMP_NUMB_BITS == 32\ -#include "ecc/ecc-curve448-32.h"\ -#elif GMP_NUMB_BITS == 64\ -#include "ecc/ecc-curve448-64.h"\ -#else\ -#error unsupported configuration\ -#endif -; d -}' $dst > $dst-t && mv $dst-t $dst - ;; - */ecc-gost-gc256b.c) - # The generated file is arch dependent, conditionalize the - # inclusion. - sed -e '/^#include "ecc-gost-gc256b\.h"/ { i\ -#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)\ -# pragma GCC diagnostic ignored "-Wunused-const-variable"\ -#endif\ -#if GMP_NUMB_BITS == 32\ -#include "ecc/ecc-gost-gc256b-32.h"\ -#elif GMP_NUMB_BITS == 64\ -#include "ecc/ecc-gost-gc256b-64.h"\ -#else\ -#error unsupported configuration\ -#endif -; d -}' \ - -e '/#include "ecc-internal.h"/ { i\ -#include "ecc-gost-curve.h" -; }' \ - $dst > $dst-t && mv $dst-t $dst - ;; - */ecc-gost-gc512a.c) - # The generated file is arch dependent, conditionalize the - # inclusion. - sed -e '/^#include "ecc-gost-gc512a\.h"/ { i\ -#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)\ -# pragma GCC diagnostic ignored "-Wunused-const-variable"\ -#endif\ -#if GMP_NUMB_BITS == 32\ -#include "ecc/ecc-gost-gc512a-32.h"\ -#elif GMP_NUMB_BITS == 64\ -#include "ecc/ecc-gost-gc512a-64.h"\ -#else\ -#error unsupported configuration\ -#endif -; d -}' \ - -e '/#include "ecc-internal.h"/ { i\ -#include "ecc-gost-curve.h" -; }' \ - $dst > $dst-t && mv $dst-t $dst - ;; - */eddsa-hash.c) - # Known to be unnecessary. - sed '/^#include "nettle-internal\.h"/d' $dst > $dst-t && mv $dst-t $dst - ;; - */ecc-add-eh*.c) - # Suppress whitespace errors in 'make syntax-check'. - sed 's/ * / /g' $dst > $dst-t && mv $dst-t $dst - ;; - */ecc-random.c ) - sed \ - -e '/^#include "nettle-internal\.h"/ { i\ -#include "nettle-alloca.h"\ -\ -void gnutls_ecc_scalar_random(struct ecc_scalar *, void *, nettle_random_func *); -; d -}' \ - -e 's/ecc_scalar_random/gnutls_ecc_scalar_random/' \ - -e 's/^ & (mpn_sub_n/ \& (int)(mpn_sub_n/' \ - $dst > $dst-t && mv $dst-t $dst - ;; - */gostdsa-sign.c) - sed \ - -e 's/"nettle-internal\.h"/"nettle-alloca.h"/' \ - $dst > $dst-t && mv $dst-t $dst - ;; - esac - else - echo "Error: $src not found" 1>&2 - exit 1 - fi -done |