Overview
| Comment: | Update argon2 to deal with the amalgamized version of things in monocypher |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
b42f88c83c960eb8aa742df3757fdf14 |
| User & Date: | rkeene on 2019-01-11 17:33:39.649 |
| Other Links: | manifest | tags |
Context
|
2019-01-11
| ||
| 17:35 | randomSortList in the internal namespace check-in: 75052adbef user: rkeene tags: trunk | |
| 17:33 | Update argon2 to deal with the amalgamized version of things in monocypher check-in: b42f88c83c user: rkeene tags: trunk | |
| 17:33 | When compiling the amalgamized version of Tcl Nano, define a macro that can be used to detect this check-in: 28a8f24de6 user: rkeene tags: trunk | |
Changes
Modified .fossil-settings/ignore-glob
from [e8ee0fb684]
to [4bb4e2cfe0].
| ︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 | config.sub configure install-sh config.log config.status vendor/argon2 build/argon2/out build/argon2/INST build/work build/tcl | > > | 16 17 18 19 20 21 22 23 24 25 26 27 | config.sub configure install-sh config.log config.status vendor/argon2 build/argon2/out build/argon2/src-patched build/argon2/src-patched.new build/argon2/INST build/work build/tcl |
Modified build/argon2/Makefile
from [2c770458fb]
to [44d77b732f].
1 2 3 4 | PREFIX := $(shell pwd)/INST all: out/argon2.c out/argon2.h | > | > > > > > > > > | | | | | | | | | > > | > | 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 |
PREFIX := $(shell pwd)/INST
all: out/argon2.c out/argon2.h
src-patched/argon2.c src-patched/argon2.h src-patched/blake2b.c src-patched/blamka-round-ref.h src-patched/core.c src-patched/core.h src-patched/encoding.c src-patched/encoding.h src-patched/ref.c: src-patched Makefile
src-patched: src/argon2.c src/argon2.h src/blake2b.c src/blamka-round-ref.h src/core.c src/core.h src/encoding.c src/encoding.h src/ref.c patches/argon2-20181109-tclamalgamation.diff Makefile
rm -rf src-patched src-patched.new
mkdir src-patched.new
cp $^ src-patched.new/
cd src-patched.new && patch --batch --posix -p1 < ../patches/argon2-20181109-tclamalgamation.diff
mv src-patched.new src-patched
out/argon2.c: src-patched/argon2.c src-patched/ref.c src-patched/core.c src-patched/blake2b.c src-patched/encoding.c monocypher-blake2b.h Makefile
mkdir -p out
echo '#define ARGON2_NO_THREADS 1' > out/argon2.c.new.1
echo '#define ARGON2_INTERNAL_ONLY 1' >> out/argon2.c.new.1
cat monocypher-blake2b.h >> out/argon2.c.new.1
echo '#include "argon2.h"' >> out/argon2.c.new.1
sed '/^#include "/ d' src-patched/argon2.c >> out/argon2.c.new.1
sed '/^#include "/ d' src-patched/encoding.c >> out/argon2.c.new.1
sed '/^#include "/ d' src-patched/ref.c >> out/argon2.c.new.1
sed '/#include "/ d;/#include/ b;/Argon2 Team - Begin Code/,/Argon2 Team - End Code/ b;d' src-patched/blake2b.c >> out/argon2.c.new.1
sed '/^#include "/ d' src-patched/core.c >> out/argon2.c.new.1
sed -r '/( |\*)argon(2_ctx|2_verify|2_hash|2_type2|2_error_message|2_encodedlen|2i_|2d_|2id_)/ b;/:/ b;/^(static|extern|enum|typedef) / b;s@^[a-z]@static &@' out/argon2.c.new.1 > out/argon2.c.new.2
rm -f out/argon2.c.new.1
sed 's@malloc(@(void *) Tcl_AttemptAlloc(@g;s@free(@Tcl_Free((void *) @g;s@\.v\[@.a[@g;s@->v\[@->a[@g;s@->v)@->a)@g;s@->v,@->a,@g;s@\.v,@.a,@g' out/argon2.c.new.2 > out/argon2.c.new.1
rm -f out/argon2.c.new.2
mv out/argon2.c.new.1 out/argon2.c
out/argon2.h: src-patched/argon2.h src-patched/blamka-round-ref.h src-patched/core.h src-patched/encoding.h Makefile
mkdir -p out
cat src-patched/argon2.h > out/argon2.h.new.1
echo '#ifdef ARGON2_INTERNAL_ONLY' >> out/argon2.h.new.1
cat src-patched/blamka-round-ref.h src-patched/core.h src-patched/encoding.h >> out/argon2.h.new.1
echo '#endif' >> out/argon2.h.new.1
sed -r '/^extern int FLAG/ d;/#include "/ d;/( |\*)argon(2_ctx|2_verify|2_hash|2_type2|2_error_message|2_encodedlen|2i_|2d_|2id_)/ b;/:/ b;/^(static|extern|enum|typedef) / b;s@^[a-z]@static &@' out/argon2.h.new.1 > out/argon2.h.new.2
rm -f out/argon2.h.new.1
sed '/^typedef struct .* block;$$/ {i \'$$'\n''#ifndef TCL_NANO_AMALGAMATION'$$'\n''s@ v\[@ a[@;p;i \'$$'\n''#endif'$$'\n''d}' out/argon2.h.new.2 > out/argon2.h.new.1
rm -f out/argon2.h.new.2
mv out/argon2.h.new.1 out/argon2.h
install: out/argon2.c out/argon2.h
mkdir -p '$(PREFIX)'
cp out/argon2.c out/argon2.h '$(PREFIX)'
clean:
rm -f out/argon2.c out/argon2.h
rm -f out/argon2.c.new.1 out/argon2.c.new.2
rm -f out/argon2.h.new.1 out/argon2.h.new.2
rm -rf src-patched src-patched.new
-rmdir out
distclean: clean
.PHONY: all install clean distclean
|
Modified build/argon2/monocypher-blake2b.h
from [1b9e334905]
to [2dddd538b2].
1 2 3 4 5 6 | #define crypto_hash(out, in, inlen) crypto_blake2b(out, in, inlen) #define blake2b(out, outlen, in, inlen, key, keylen) 0, crypto_blake2b_general(out, outlen, key, keylen, in, inlen) #define blake2b_state crypto_blake2b_ctx #define blake2b_init(ctx, outlen) 0; crypto_blake2b_general_init(ctx, outlen, NULL, 0) #define blake2b_update(ctx, in, inlen) 0; crypto_blake2b_update(ctx, in, inlen) #define blake2b_final(ctx, out, ignore1) 0; crypto_blake2b_final(ctx, 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 |
#define crypto_hash(out, in, inlen) crypto_blake2b(out, in, inlen)
#define blake2b(out, outlen, in, inlen, key, keylen) 0, crypto_blake2b_general(out, outlen, key, keylen, in, inlen)
#define blake2b_state crypto_blake2b_ctx
#define blake2b_init(ctx, outlen) 0; crypto_blake2b_general_init(ctx, outlen, NULL, 0)
#define blake2b_update(ctx, in, inlen) 0; crypto_blake2b_update(ctx, in, inlen)
#define blake2b_final(ctx, out, ignore1) 0; crypto_blake2b_final(ctx, out)
#ifndef BLAKE2_INLINE
# define BLAKE2_INLINE
#endif
#ifndef BLAKE2B_OUTBYTES
# define BLAKE2B_OUTBYTES 64
#endif
#include <stdint.h>
#include <tcl.h>
#include "monocypher.h"
static BLAKE2_INLINE void store32( void *dst, uint32_t w )
{
#if defined(NATIVE_LITTLE_ENDIAN)
memcpy(dst, &w, sizeof w);
#else
uint8_t *p = ( uint8_t * )dst;
p[0] = (uint8_t)(w >> 0);
p[1] = (uint8_t)(w >> 8);
p[2] = (uint8_t)(w >> 16);
p[3] = (uint8_t)(w >> 24);
#endif
}
#ifndef TCL_NANO_AMALGAMATION
static BLAKE2_INLINE uint64_t rotr64(uint64_t x, uint64_t n) { return (x >> n) ^ (x << (64 - n)); }
static BLAKE2_INLINE void store64( void *dst, uint64_t w )
{
#if defined(NATIVE_LITTLE_ENDIAN)
memcpy(dst, &w, sizeof w);
#else
uint8_t *p = ( uint8_t * )dst;
p[0] = (uint8_t)(w >> 0);
|
| ︙ | ︙ | |||
54 55 56 57 58 59 60 |
(( uint64_t )( p[3] ) << 24) |
(( uint64_t )( p[4] ) << 32) |
(( uint64_t )( p[5] ) << 40) |
(( uint64_t )( p[6] ) << 48) |
(( uint64_t )( p[7] ) << 56) ;
#endif
}
| | | 60 61 62 63 64 65 66 67 |
(( uint64_t )( p[3] ) << 24) |
(( uint64_t )( p[4] ) << 32) |
(( uint64_t )( p[5] ) << 40) |
(( uint64_t )( p[6] ) << 48) |
(( uint64_t )( p[7] ) << 56) ;
#endif
}
#endif
|