Check-in [4168b04669]
Overview
Comment:Moved our patchwork to its own internal directories in preparation for a release cleanup
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 4168b0466967b3b6f0497a7b3731eeae989c30396154f2ca20c8d05b0ce4fb5a
User & Date: rkeene on 2018-07-02 07:20:44.563
Other Links: manifest | tags
Context
2018-07-02
07:22
A bit more cleanup check-in: 795a02cd06 user: rkeene tags: trunk
07:20
Moved our patchwork to its own internal directories in preparation for a release cleanup check-in: 4168b04669 user: rkeene tags: trunk
06:41
Restructuring to get rid of SUPERCOP reference, it is incorrect check-in: 1f76e42a02 user: rkeene tags: trunk
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


18


1
2
3
4
5
6
7
8
9
10
11
12
13




14
15

16
17













-
-
-
-
+
+
-
+
+
nano.so
nano.o
nano.syms
nano.tcl.h
Makefile
pkgIndex.tcl
aclocal.m4
config.guess
config.sub
configure
install-sh
config.log
config.status
blake2b/blake2b.o
blake2b/blake2b-ref-nacl.c
tweetnacl/tweetnacl.c
tweetnacl/tweetnacl.h
tweetnacl
build/tweetnacl/out
tweetnacl/tweetnacl.o
blake2b
build/blake2b/out
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


16
17
18
19
20


21
22
23

24
25
26
27
28
29
30
31
32
33


34
35
36


37
38
39
40
41
42
43

44
45
46

47
48
49
50
51
52
53
54

55
56
1
2
3
4
5
6
7
8

9
10
11
12


13
14
15
16
17


18
19
20
21

22
23
24
25
26
27
28
29
30


31
32
33


34
35
36
37
38
39
40
41

42

43

44

45
46


47
48
49
50
51
52








-




-
-
+
+



-
-
+
+


-
+








-
-
+
+

-
-
+
+






-
+
-

-
+
-


-
-



+


CC            := @CC@
CFLAGS        := @CFLAGS@ @SHOBJFLAGS@
CPPFLAGS      := -I. -I@srcdir@/tweetnacl/ -I@srcdir@/blake2b/ -DNACL_ED25519_BLAKE2B=1 @CPPFLAGS@ @SHOBJCPPFLAGS@ @DEFS@
LDFLAGS       := @LDFLAGS@
LIBS          := @LIBS@
SHOBJLDFLAGS  := @SHOBJLDFLAGS@
srcdir        := @srcdir@
export CC CFLAGS CPPFLAGS
@SET_MAKE@

all: @EXTENSION_TARGET@

ifeq (@TCLEXT_BUILD@,shared)
@EXTENSION_TARGET@: @srcdir@/tweetnacl/tweetnacl.o @srcdir@/blake2b/blake2b.o nano.o Makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(SHOBJLDFLAGS) -o @EXTENSION_TARGET@ nano.o @srcdir@/tweetnacl/tweetnacl.o @srcdir@/blake2b/blake2b.o $(LIBS)
@EXTENSION_TARGET@: tweetnacl.o blake2b.o nano.o Makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(SHOBJLDFLAGS) -o @EXTENSION_TARGET@ nano.o tweetnacl.o blake2b.o $(LIBS)
	-@WEAKENSYMS@ @EXTENSION_TARGET@
	-@REMOVESYMS@ @EXTENSION_TARGET@
else
@EXTENSION_TARGET@: @srcdir@/tweetnacl/tweetnacl.o @srcdir@/blake2b/blake2b.o nano.o Makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(SHOBJLDFLAGS) -o @EXTENSION_TARGET@ nano.o tweetnacl/tweetnacl.o blake2b/blake2b.o $(LIBS)
@EXTENSION_TARGET@: tweetnacl.o blake2b.o nano.o Makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(SHOBJLDFLAGS) -o @EXTENSION_TARGET@ nano.o tweetnacl.o blake2b.o $(LIBS)
endif

nano.o: @srcdir@/nano.c nano.tcl.h Makefile
nano.o: @srcdir@/nano.c @srcdir@/tweetnacl/tweetnacl.h @srcdir@/blake2b/blake2.h nano.tcl.h Makefile
	$(CC) $(CPPFLAGS) $(CFLAGS) -o nano.o -c @srcdir@/nano.c

nano.tcl.h: @srcdir@/nano.tcl Makefile
	od -A n -v -t xC < '@srcdir@/nano.tcl' > nano.tcl.h.new.1
	sed 's@  *@@g;s@..@0x&, @g' < nano.tcl.h.new.1 > nano.tcl.h.new.2
	rm -f nano.tcl.h.new.1
	mv nano.tcl.h.new.2 nano.tcl.h

@srcdir@/tweetnacl/tweetnacl.o:
	$(MAKE) -C @srcdir@/tweetnacl tweetnacl.o
tweetnacl.o: @srcdir@/tweetnacl/tweetnacl.c @srcdir@/tweetnacl/tweetnacl.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -o tweetnacl.o -c @srcdir@/tweetnacl/tweetnacl.c

@srcdir@/blake2b/blake2b.o:
	$(MAKE) -C @srcdir@/blake2b blake2b.o
blake2b.o: @srcdir@/blake2b/blake2b.c @srcdir@/blake2b/blake2.h @srcdir@/blake2b/blake2-impl.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -o blake2b.o -c @srcdir@/blake2b/blake2b.c

test: @EXTENSION_TARGET@
	@srcdir@/build/test/test.tcl

clean:
	rm -f @EXTENSION_TARGET@ nano.o
	$(MAKE) -C @srcdir@/tweetnacl clean
	rm -f blake2b.o tweetnacl.o
	$(MAKE) -C @srcdir@/blake2b clean

distclean:
distclean: clean
	rm -f @EXTENSION_TARGET@ nano.o
	rm -f Makefile pkgIndex.tcl config.log config.status nano.syms
	rm -f nano.tcl.h
	$(MAKE) -C @srcdir@/tweetnacl distclean
	$(MAKE) -C @srcdir@/blake2b distclean

mrproper: distclean
	rm -f configure aclocal.m4 config.guess config.sub install-sh
	rm -rf tweetnacl blake2b

.PHONY: all test clean distclean mrproper
72
73
74
75
76
77
78














72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92







+
+
+
+
+
+
+
+
+
+
+
+
+
+
	echo "automake failed" >&2
	exit 1
fi

autoconf

rm -rf autom4te.cache

set -e

# Assemble tweetnacl
make -C build/tweetnacl
rm -rf tweetnacl
mkdir tweetnacl
cp build/tweetnacl/out/* tweetnacl/

# Assemble blake2b
make -C build/blake2b
rm -rf blake2b
mkdir blake2b
cp build/blake2b/out/* blake2b/
1

2
3


4
5
6









7
8
9
10


11
12
13
14


1

2
3
4



5
6
7
8
9
10
11
12
13
14
15


16
17
18
19
20

21
-
+
-

+
+
-
-
-
+
+
+
+
+
+
+
+
+


-
-
+
+



-
+
blake2b.o: blake2b-ref-nacl.c blake2-impl.h blake2.h
all: out/blake2b.c out/blake2.h out/blake2-impl.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -o blake2b.o -c blake2b-ref-nacl.c

out/blake2b.c: src/blake2b-ref.c blake2-nacl.c
	mkdir -p out
blake2b-ref-nacl.c: blake2b-ref.c blake2-nacl.c
	rm -f blake2b-ref-nacl.c
	cat blake2b-ref.c blake2-nacl.c > blake2b-ref-nacl.c
	cat src/blake2b-ref.c blake2-nacl.c > out/blake2b.c

out/blake2.h: src/blake2.h blake2-nacl.h
	mkdir -p out
	cat src/blake2.h blake2-nacl.h > out/blake2.h

out/blake2-impl.h: src/blake2-impl.h
	mkdir -p out
	cp src/blake2-impl.h out

clean:
	rm -f blake2b-ref-nacl.c
	rm -f blake2b.o
	rm -f out/blake2b.c out/blake2.h out/blake2-impl.h
	-rmdir out

distclean: clean

.PHONY: clean distclean
.PHONY: all clean distclean
1
2

3
4
5
6
1

2
3
4
5
6

-
+




#if defined(NACL_ED25519_BLAKE2B)
int crypto_hash_blake2b( unsigned char *out, unsigned char *in, unsigned long long inlen )
int crypto_hash_blake2b( unsigned char *out, const unsigned char *in, unsigned long long inlen )
{
  return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
}
#endif



1
2
3
4
5
6
7
8
9









1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
16
17
18
19
20
+
+
+





-



+
+
+
+
+
+
+
+
+
#if defined(NACL_ED25519_BLAKE2B)
#ifndef BLAKE2_NACL_H
#define BLAKE2_NACL_H 1
#define crypto_hash_PRIMITIVE "blake2b"
#define crypto_hash_BYTES crypto_hash_blake2b_BYTES
#define crypto_hash_IMPLEMENTATION crypto_hash_blake2b_IMPLEMENTATION
#define crypto_hash_VERSION crypto_hash_blake2b_VERSION
#define crypto_hash_blake2b_BYTES 64
extern int crypto_hash_blake2b(unsigned char *,const unsigned char *,unsigned long long);
#define crypto_hash_blake2b_VERSION "-"
#define crypto_hash_blake2b_IMPLEMENTATION "blake2b-ref"
#define crypto_hash crypto_hash_blake2b
#if defined(__cplusplus)
extern "C" {
#endif
int crypto_hash_blake2b(unsigned char *,const unsigned char *,unsigned long long);
#if defined(__cplusplus)
}
#endif
#endif
#endif
1

2
3
4
5
6
7
8
9
10
11


12
13
14
15
16
17
18
19

20
21
22


23
24
25
26
27
28


29
30
31
32

1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
18


19
20


21
22
23
24
25
26
27

28
29
30
31
32
33
-
+









-
+
+






-
-
+

-
-
+
+





-
+
+




all: tweetnacl.o
all: out/tweetnacl.c out/tweetnacl.h

tweetnacl.h.new: src/tweetnacl.h
	rm -f tweetnacl.h.new tweetnacl.h
	cp src/tweetnacl.h tweetnacl.h.new

tweetnacl.c.new: src/tweetnacl.c
	rm -f tweetnacl.c.new tweetnacl.c
	cp src/tweetnacl.c tweetnacl.c.new

tweetnacl.c: tweetnacl.c.new tweetnacl.h.new patches/tweetnacl-ed25519blake2b.diff patches/tweetnacl-derivepubkey.diff
out/tweetnacl.c: tweetnacl.c.new tweetnacl.h.new patches/tweetnacl-ed25519blake2b.diff patches/tweetnacl-derivepubkey.diff
	mkdir -p out
	rm -f tweetnacl.c tweetnacl.h
	patch -p1 < patches/tweetnacl-ed25519blake2b.diff || ( rm -f tweetnacl.c.new tweetnacl.h.new; exit 1 )
	patch -p1 < patches/tweetnacl-derivepubkey.diff || ( rm -f tweetnacl.c.new tweetnacl.h.new; exit 1 )
	rm -f tweetnacl.c.new.orig tweetnacl.h.new.orig
	mv tweetnacl.h.new tweetnacl.h
	mv tweetnacl.c.new tweetnacl.c

tweetnacl.h: tweetnacl.c
	mv tweetnacl.c out

tweetnacl.o: tweetnacl.c tweetnacl.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -I../blake2b/ -o tweetnacl.o -c tweetnacl.c
out/tweetnacl.h: out/tweetnacl.c
	mv tweetnacl.h out

clean:
	rm -f tweetnacl.c.new.orig tweetnacl.h.new.orig
	rm -f tweetnacl.h.new tweetnacl.h
	rm -f tweetnacl.c.new tweetnacl.c
	rm -f tweetnacl.o
	rm -f out/tweetnacl.c out/tweetnacl.h
	-rmdir out

distclean: clean

.PHONY: all clean distclean
54
55
56
57
58
59
60
61

62
63
64
65
54
55
56
57
58
59
60

61
62
63
64
65







-
+




+#ifndef NACL_ED25519_BLAKE2B
 #define crypto_hash_PRIMITIVE "sha512"
 #define crypto_hash crypto_hash_sha512
 #define crypto_hash_BYTES crypto_hash_sha512_BYTES
 #define crypto_hash_IMPLEMENTATION crypto_hash_sha512_IMPLEMENTATION
 #define crypto_hash_VERSION crypto_hash_sha512_VERSION
+#else
+#include "blake2-nacl.h"
+#include "blake2.h"
+#endif
 #define crypto_hash_sha512_tweet_BYTES 64
 extern int crypto_hash_sha512_tweet(unsigned char *,const unsigned char *,unsigned long long);
 #define crypto_hash_sha512_tweet_VERSION "-"
Modified nano.c from [1242d36c58] to [470015e0f0].
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
16








-
+







#include <stdint.h>
#include <limits.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <tcl.h>

#include "tweetnacl.h"
#include "blake2-nacl.h"
#include "blake2.h"

#define NANO_SECRET_KEY_LENGTH (crypto_sign_SECRETKEYBYTES - crypto_sign_PUBLICKEYBYTES)
#define NANO_PUBLIC_KEY_LENGTH (crypto_sign_PUBLICKEYBYTES)
#define TclNano_AttemptAlloc(x) ((void *) Tcl_AttemptAlloc(x))
#define TclNano_Free(x) Tcl_Free((char *) x)

#if defined(HAVE_GETRANDOM)