mirror of git://anongit.mindrot.org/openssh.git
upstream: estructure sntrup761.sh to process all files in a single
list, which will make it easier to reorder. Re-inline int32_MINMAX. ok tobhe@ OpenBSD-Commit-ID: d145c6c19b08bb93c9e14bfaa7af589d90f144c0
This commit is contained in:
parent
4d96a3ebab
commit
91bac5e95b
|
@ -1,20 +0,0 @@
|
||||||
/* $OpenBSD: int32_minmax.inc,v 1.1 2020/12/30 14:13:28 tobhe Exp $ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Public Domain, Authors:
|
|
||||||
* - Daniel J. Bernstein
|
|
||||||
* - Chitchanok Chuengsatiansup
|
|
||||||
* - Tanja Lange
|
|
||||||
* - Christine van Vredendaal
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define int32_MINMAX(a,b) \
|
|
||||||
do { \
|
|
||||||
int64_t ab = (int64_t)b ^ (int64_t)a; \
|
|
||||||
int64_t c = (int64_t)b - (int64_t)a; \
|
|
||||||
c ^= ab & (c ^ b); \
|
|
||||||
c >>= 31; \
|
|
||||||
c &= ab; \
|
|
||||||
a ^= c; \
|
|
||||||
b ^= c; \
|
|
||||||
} while(0)
|
|
15
sntrup761.c
15
sntrup761.c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: sntrup761.c,v 1.3 2021/01/03 18:05:21 tobhe Exp $ */
|
/* $OpenBSD: sntrup761.c,v 1.4 2021/01/04 21:58:58 dtucker Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Public Domain, Authors:
|
* Public Domain, Authors:
|
||||||
|
@ -12,10 +12,21 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "crypto_api.h"
|
#include "crypto_api.h"
|
||||||
#include "int32_minmax.inc"
|
|
||||||
|
|
||||||
#define CRYPTO_NAMESPACE(s) s
|
#define CRYPTO_NAMESPACE(s) s
|
||||||
|
|
||||||
|
/* from supercop-20201130/crypto_sort/int32/portable4/int32_minmax.inc */
|
||||||
|
#define int32_MINMAX(a,b) \
|
||||||
|
do { \
|
||||||
|
int64_t ab = (int64_t)b ^ (int64_t)a; \
|
||||||
|
int64_t c = (int64_t)b - (int64_t)a; \
|
||||||
|
c ^= ab & (c ^ b); \
|
||||||
|
c >>= 31; \
|
||||||
|
c &= ab; \
|
||||||
|
a ^= c; \
|
||||||
|
b ^= c; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
/* from supercop-20201130/crypto_sort/int32/portable4/sort.c */
|
/* from supercop-20201130/crypto_sort/int32/portable4/sort.c */
|
||||||
#define int32 crypto_int32
|
#define int32 crypto_int32
|
||||||
|
|
||||||
|
|
39
sntrup761.sh
39
sntrup761.sh
|
@ -1,9 +1,12 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# $OpenBSD: sntrup761.sh,v 1.3 2021/01/03 18:05:21 tobhe Exp $
|
# $OpenBSD: sntrup761.sh,v 1.4 2021/01/04 21:58:58 dtucker Exp $
|
||||||
# Placed in the Public Domain.
|
# Placed in the Public Domain.
|
||||||
#
|
#
|
||||||
AUTHOR="supercop-20201130/crypto_kem/sntrup761/ref/implementors"
|
AUTHOR="supercop-20201130/crypto_kem/sntrup761/ref/implementors"
|
||||||
FILES="
|
FILES="
|
||||||
|
supercop-20201130/crypto_sort/int32/portable4/int32_minmax.inc
|
||||||
|
supercop-20201130/crypto_sort/int32/portable4/sort.c
|
||||||
|
supercop-20201130/crypto_sort/uint32/useint32/sort.c
|
||||||
supercop-20201130/crypto_kem/sntrup761/ref/uint64.h
|
supercop-20201130/crypto_kem/sntrup761/ref/uint64.h
|
||||||
supercop-20201130/crypto_kem/sntrup761/ref/uint16.h
|
supercop-20201130/crypto_kem/sntrup761/ref/uint16.h
|
||||||
supercop-20201130/crypto_kem/sntrup761/ref/uint32.h
|
supercop-20201130/crypto_kem/sntrup761/ref/uint32.h
|
||||||
|
@ -20,10 +23,6 @@ FILES="
|
||||||
supercop-20201130/crypto_kem/sntrup761/ref/Encode.c
|
supercop-20201130/crypto_kem/sntrup761/ref/Encode.c
|
||||||
supercop-20201130/crypto_kem/sntrup761/ref/kem.c
|
supercop-20201130/crypto_kem/sntrup761/ref/kem.c
|
||||||
"
|
"
|
||||||
SORT_I32="
|
|
||||||
supercop-20201130/crypto_sort/int32/portable4/sort.c
|
|
||||||
"
|
|
||||||
SORT_U32="supercop-20201130/crypto_sort/uint32/useint32/sort.c"
|
|
||||||
###
|
###
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
@ -38,29 +37,31 @@ echo ' */'
|
||||||
echo
|
echo
|
||||||
echo '#include <string.h>'
|
echo '#include <string.h>'
|
||||||
echo '#include "crypto_api.h"'
|
echo '#include "crypto_api.h"'
|
||||||
echo '#include "int32_minmax.inc"'
|
|
||||||
echo
|
echo
|
||||||
echo '#define CRYPTO_NAMESPACE(s) s'
|
echo '#define CRYPTO_NAMESPACE(s) s'
|
||||||
echo
|
echo
|
||||||
for i in $SORT_I32; do
|
|
||||||
echo "/* from $i */"
|
|
||||||
grep \
|
|
||||||
-v '#include' $i | \
|
|
||||||
sed -e "s/void crypto_sort/static void crypto_sort_int32/g"
|
|
||||||
echo
|
|
||||||
done
|
|
||||||
echo "/* from $SORT_U32 */"
|
|
||||||
grep \
|
|
||||||
-v '#include' $SORT_U32 | \
|
|
||||||
sed -e "s/void crypto_sort/static void crypto_sort_uint32/g"
|
|
||||||
echo
|
|
||||||
for i in $FILES; do
|
for i in $FILES; do
|
||||||
echo "/* from $i */"
|
echo "/* from $i */"
|
||||||
grep \
|
grep \
|
||||||
-v '#include' $i | \
|
-v '#include' $i | \
|
||||||
sed -e "s/crypto_kem_/crypto_kem_sntrup761_/g" \
|
case "$i" in
|
||||||
|
# Use int64_t for intermediate values in int32_MINMAX to prevent signed
|
||||||
|
# 32-bit integer overflow when called by crypto_sort_uint32.
|
||||||
|
*/int32_minmax.inc)
|
||||||
|
sed -e "s/int32 ab = b ^ a/int64_t ab = (int64_t)b ^ (int64_t)a/" \
|
||||||
|
-e "s/int32 c = b - a/int64_t c = (int64_t)b - (int64_t)a/"
|
||||||
|
;;
|
||||||
|
*/int32/portable4/sort.c)
|
||||||
|
sed -e "s/void crypto_sort/static void crypto_sort_int32/g"
|
||||||
|
;;
|
||||||
|
*/uint32/useint32/sort.c)
|
||||||
|
sed -e "s/void crypto_sort/static void crypto_sort_uint32/g"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sed -e "s/crypto_kem_/crypto_kem_sntrup761_/g" \
|
||||||
-e "s/^extern void /static void /" \
|
-e "s/^extern void /static void /" \
|
||||||
-e "s/^void /static void /" \
|
-e "s/^void /static void /" \
|
||||||
-e "/^typedef int32_t int32;$/d"
|
-e "/^typedef int32_t int32;$/d"
|
||||||
|
esac
|
||||||
echo
|
echo
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue