Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dmitry Baryshkov
nettle
Commits
c4d3a98d
Commit
c4d3a98d
authored
Mar 04, 2012
by
Niels Möller
Browse files
Merge branch 'master' of git.lysator.liu.se:/nettle/nettle
parents
21658865
7c1ce4e2
Changes
6
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
c4d3a98d
...
...
@@ -5,6 +5,20 @@
2012-02-27 Niels Möller <nisse@lysator.liu.se>
* list-obj-sizes.awk: Recognize elf64 objects.
* Makefile.in (.texinfo.dvi): Pass -b option to texi2dvi.
* Makefile.in (TARGETS): Added twofishdata.
(SOURCES): Added twofishdata.c.
(twofishdata): New rule.
* twofish.c (q0, q1): Made const, and reformatted to match the
twofishdata program.
* twofishdata.c: Resurrected old file. Used to be called
generate_q.c, when the twofish code was contributed back in 1999.
* nettle.texinfo: Documentation for base16 and base64 encoding.
Text contributed by Jeronimo Pellegrini
<pellegrini@mpcnet.com.br>, back in April 2006.
...
...
Makefile.in
View file @
c4d3a98d
...
...
@@ -27,7 +27,8 @@ getopt_SOURCES = getopt.c getopt1.c
getopt_TARGETS
=
$
(
getopt_SOURCES:.c
=
.
$(OBJEXT)
)
TARGETS
=
aesdata
$(EXEEXT)
desdata
$(EXEEXT)
shadata
$(EXEEXT)
gcmdata
$(EXEEXT)
\
TARGETS
=
aesdata
$(EXEEXT)
desdata
$(EXEEXT)
twofishdata
$(EXEEXT)
\
shadata
$(EXEEXT)
gcmdata
$(EXEEXT)
\
$(getopt_TARGETS)
\
$(LIBTARGETS)
@IF_SHARED@
$(SHLIBTARGETS)
IMPLICIT_TARGETS
=
@IF_DLL@
$(LIBNETTLE_FILE)
$(LIBHOGWEED_FILE)
...
...
@@ -131,7 +132,7 @@ HEADERS = aes.h arcfour.h arctwo.h asn1.h bignum.h blowfish.h \
INSTALL_HEADERS
=
$(HEADERS)
nettle-stdint.h
SOURCES
=
$(nettle_SOURCES)
$(hogweed_SOURCES)
$(getopt_SOURCES)
\
aesdata.c desdata.c shadata.c gcmdata.c
aesdata.c desdata.c
twofishdata.c
shadata.c gcmdata.c
DISTFILES
=
$(SOURCES)
$(HEADERS)
getopt.h .bootstrap run-tests
\
aclocal.m4 configure.ac
\
...
...
@@ -200,6 +201,9 @@ aesdata$(EXEEXT): aesdata.$(OBJEXT)
desdata$(EXEEXT)
:
desdata.$(OBJEXT)
$(LINK)
desdata.
$(OBJEXT)
$(LIBS)
-o
desdata
$(EXEEXT)
twofishdata$(EXEEXT)
:
twofishdata.$(OBJEXT)
$(LINK)
twofishdata.
$(OBJEXT)
$(LIBS)
-o
twofishdata
$(EXEEXT)
shadata$(EXEEXT)
:
shadata.$(OBJEXT)
$(LINK)
shadata.
$(OBJEXT)
$(LIBS)
-lm
-o
shadata
$(EXEEXT)
...
...
@@ -245,7 +249,7 @@ des.$(OBJEXT): des.c des.h $(des_headers)
&&
test
-s
$@
T
&&
mv
-f
$@
T
$@
.texinfo.dvi
:
cd
$(srcdir)
&&
texi2dvi
`
basename
"
$<
"
`
cd
$(srcdir)
&&
texi2dvi
-b
`
basename
"
$<
"
`
.dvi.ps
:
cd
$(srcdir)
&&
dvips
-Ppdf
-G0
-o
`
basename
"
$<
"
.dvi
`
.ps
`
basename
"
$<
"
`
...
...
list-obj-sizes.awk
View file @
c4d3a98d
...
...
@@ -46,7 +46,7 @@ BEGIN {
printf
"Filter: %s\n"
,
filter
;
}
/elf32/
{
/elf32
|elf64
/
{
output
();
if
(
$1
~
filter
)
{
...
...
misc/xenofarm.sh
0 → 100755
View file @
c4d3a98d
#! /bin/sh
# Driver the xenofarm test compilation. Used together with
# nettle-server.pike, source-transform.sh and result-parser.pike in
# the nettle xenofarm project.
# Loosely based on the xenofarm.sh script in lsh and lyskom-server.
# Copyright 2002, 2003, 2012 Niels Möller
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
cfgargs
=
makeargs
=
MAKE
=
make
while
[
$#
-gt
0
]
do
case
"
$1
"
in
--cfg
)
shift
;
cfgargs
=
"
$1
"
;
shift
;;
--make
)
shift
;
makeargs
=
"
$1
"
;
shift
;;
--make-program
)
shift
;
MAKE
=
"
$1
"
;
shift
;;
*
)
echo
$0
: unsupported argument
$1
>
&2
;
exit
1
;;
esac
done
pfx
=
`
pwd
`
/pfx
cfgargs
=
"-C --with-include-path=
$pfx
/include:/usr/local/include --with-lib-path=
$pfx
/lib:/usr/local/lib --prefix=
$pfx
$cfgargs
"
# Fix PATH for system where the default environment is broken
# We may need /usr/ccs/bin for ar
if
type
ar
>
/dev/null
;
then
:
;
else
if
[
-x
/usr/ccs/bin/ar
]
;
then
PATH
=
"
$PATH
:/usr/ccs/bin"
fi
fi
# Export new value
export
PATH
# Are we using GNU make? If not, nettle's dependency tracking won't work.
cfgdepargs
=
''
if
$MAKE
--version
2>/dev/null |
grep
GNU
>
/dev/null
;
then
:
;
else
cfgdepargs
=
'--disable-dependency-tracking'
fi
rm
-rf
r
mkdir
r
exec
>
r/shlog.txt 2>&1
BASE
=
`
echo
nettle-
*
.tar.gz |
sed
's/.tar.gz$//'
`
VERS
=
`
echo
"
$BASE
"
|
sed
's/^nettle-//'
`
timeecho
()
{
# FIXME: Don't depend on GNU date
echo
`
LC_ALL
=
C
TZ
=
UTC
date
'+%Y-%m-%d %H:%M:%S'
`
:
"
$@
"
}
log
()
{
echo
"
$@
"
>>
r/mainlog.txt
date
>>
r/mainlog.txt
}
logstart
()
{
log
"BEGIN
$1
"
}
logpass
()
{
log
"PASS"
}
logfail
()
{
log
"FAIL"
}
logwarn
()
{
log
"WARN
$1
"
}
dotask
()
{
important
=
"
$1
"
task
=
"
$2
"
warnfunc
=
"
$3
"
cmd
=
"
$4
"
var
=
${
5
:-
status
}
var_value
=
`
eval echo
'${'
$var
'}'
`
if
test
$var_value
=
good
then
logstart
$task
timeecho Begin
$task
if
sh
-c
"
$cmd
"
>
r/
${
task
}
log.txt 2>&1
then
if
[
-z
"
$warnfunc
"
]
then
logpass
else
$warnfunc
fi
else
timeecho FAIL:
$task
if
[
$important
=
1
]
then
eval
$var
=
${
task
}
-failed
fi
logfail
fi
else
echo
status
$var_value
makes it impossible/unnecessary to perform this step
\
>
r/
${
task
}
log.txt
fi
}
cfgwarn
()
{
logfile
=
"r/
${
task
}
log.txt"
warnfile
=
"r/
${
task
}
warn.txt"
egrep
-i
'warning|\(w\)'
"
$logfile
"
\
>
"
$warnfile
"
warnings
=
`
wc
-l
<
$warnfile
`
if
test
$warnings
-gt
0
then
logwarn
$warnings
else
rm
"
$warnfile
"
logpass
fi
}
makewarn
()
{
logfile
=
"r/
${
task
}
log.txt"
warnfile
=
"r/
${
task
}
warn.txt"
# Use sed -e /RX/d to get rid of selected warnings.
egrep
-i
'warning|\(w\)'
"
$logfile
"
\
>
"
$warnfile
"
warnings
=
`
wc
-l
<
$warnfile
`
if
test
$warnings
-gt
0
then
logwarn
$warnings
else
rm
"
$warnfile
"
logpass
fi
}
ckprgwarn
()
{
logfile
=
"r/
${
task
}
log.txt"
warnfile
=
"r/
${
task
}
warn.txt"
failfile
=
"r/
${
task
}
fail.txt"
egrep
-i
'warning|\(w\)|error'
"
$logfile
"
\
>
"
$warnfile
"
warnings
=
`
wc
-l
<
$warnfile
`
if
test
$warnings
-gt
0
then
egrep
-i
'error'
"
$warnfile
"
\
>
"
$failfile
"
if
test
`
wc
-l
<
$failfile
`
-gt
0
then
logfail
else
rm
"
$failfile
"
logwarn
$warnings
fi
else
rm
"
$warnfile
"
logpass
fi
}
status
=
good
echo
'FORMAT 2'
>
r/mainlog.txt
dotask 1
"unzip"
""
"gzip -d
$BASE
.tar.gz"
dotask 1
"unpack"
""
"tar xf
$BASE
.tar"
dotask 1
"cfg"
"cfgwarn"
\
"cd
$BASE
&& ./configure
$cfgargs
$cfgdepargs
"
dotask 1
"make"
"makewarn"
"cd
$BASE
&&
$MAKE
$makeargs
"
#
# "make check" requirements
#
dotask 1
"ckprg"
""
"cd
$BASE
&&
$MAKE
check"
dotask 1
"install"
""
"cd
$BASE
&&
$MAKE
install"
find pfx
-type
f
-print
|
sort
>
r/installedfiles.txt
if
test
`
wc
-l
< r/installedfiles.txt
`
-eq
0
then
rm
r/installedfiles.txt
fi
# Collect stuff.
timeecho Collecting results
cp
$BASE
/config.cache r/configcache.txt
cp
$BASE
/config.log r/configlog.txt
cp
$BASE
/config.h r/config-h.txt
find
$BASE
-name
core
-print
>
r/corefiles.txt
if
test
`
wc
-l
< r/corefiles.txt
`
-eq
0
then
rm
r/corefiles.txt
fi
env
>
r/environ.txt
echo
$PATH
>
r/path.txt
makeinfo
--version
>
r/makeinfo.txt
type
makeinfo
>>
r/makeinfo.txt 2>&1
$MAKE
--version
>
r/makeversion.txt 2>&1
type
$MAKE
>>
r/makeversion.txt
ls
-lR
$pfx
>
r/pfxcontents.txt
cp
buildid.txt r/buildid.txt
(
cd
r
&&
tar
cf -
*
)
>
xenofarm_result.tar
gzip
-1
xenofarm_result.tar
exit
0
twofish.c
View file @
c4d3a98d
...
...
@@ -55,75 +55,79 @@
/* ------------------------------------------------------------------------- */
/* The permutations q0 and q1. These are fixed permutations on 8-bit values.
* The permutations have been computed using the program
generate_q
* The permutations have been computed using the program
twofish-data,
* which is distributed along with this file.
*/
static
const
uint8_t
q0
[]
=
{
0xA9
,
0x67
,
0xB3
,
0xE8
,
0x04
,
0xFD
,
0xA3
,
0x76
,
0x9A
,
0x92
,
0x80
,
0x78
,
0xE4
,
0xDD
,
0xD1
,
0x38
,
0x0D
,
0xC6
,
0x35
,
0x98
,
0x18
,
0xF7
,
0xEC
,
0x6C
,
0x43
,
0x75
,
0x37
,
0x26
,
0xFA
,
0x13
,
0x94
,
0x48
,
0xF2
,
0xD0
,
0x8B
,
0x30
,
0x84
,
0x54
,
0xDF
,
0x23
,
0x19
,
0x5B
,
0x3D
,
0x59
,
0xF3
,
0xAE
,
0xA2
,
0x82
,
0x63
,
0x01
,
0x83
,
0x2E
,
0xD9
,
0x51
,
0x9B
,
0x7C
,
0xA6
,
0xEB
,
0xA5
,
0xBE
,
0x16
,
0x0C
,
0xE3
,
0x61
,
0xC0
,
0x8C
,
0x3A
,
0xF5
,
0x73
,
0x2C
,
0x25
,
0x0B
,
0xBB
,
0x4E
,
0x89
,
0x6B
,
0x53
,
0x6A
,
0xB4
,
0xF1
,
0xE1
,
0xE6
,
0xBD
,
0x45
,
0xE2
,
0xF4
,
0xB6
,
0x66
,
0xCC
,
0x95
,
0x03
,
0x56
,
0xD4
,
0x1C
,
0x1E
,
0xD7
,
0xFB
,
0xC3
,
0x8E
,
0xB5
,
0xE9
,
0xCF
,
0xBF
,
0xBA
,
0xEA
,
0x77
,
0x39
,
0xAF
,
0x33
,
0xC9
,
0x62
,
0x71
,
0x81
,
0x79
,
0x09
,
0xAD
,
0x24
,
0xCD
,
0xF9
,
0xD8
,
0xE5
,
0xC5
,
0xB9
,
0x4D
,
0x44
,
0x08
,
0x86
,
0xE7
,
0xA1
,
0x1D
,
0xAA
,
0xED
,
0x06
,
0x70
,
0xB2
,
0xD2
,
0x41
,
0x7B
,
0xA0
,
0x11
,
0x31
,
0xC2
,
0x27
,
0x90
,
0x20
,
0xF6
,
0x60
,
0xFF
,
0x96
,
0x5C
,
0xB1
,
0xAB
,
0x9E
,
0x9C
,
0x52
,
0x1B
,
0x5F
,
0x93
,
0x0A
,
0xEF
,
0x91
,
0x85
,
0x49
,
0xEE
,
0x2D
,
0x4F
,
0x8F
,
0x3B
,
0x47
,
0x87
,
0x6D
,
0x46
,
0xD6
,
0x3E
,
0x69
,
0x64
,
0x2A
,
0xCE
,
0xCB
,
0x2F
,
0xFC
,
0x97
,
0x05
,
0x7A
,
0xAC
,
0x7F
,
0xD5
,
0x1A
,
0x4B
,
0x0E
,
0xA7
,
0x5A
,
0x28
,
0x14
,
0x3F
,
0x29
,
0x88
,
0x3C
,
0x4C
,
0x02
,
0xB8
,
0xDA
,
0xB0
,
0x17
,
0x55
,
0x1F
,
0x8A
,
0x7D
,
0x57
,
0xC7
,
0x8D
,
0x74
,
0xB7
,
0xC4
,
0x9F
,
0x72
,
0x7E
,
0x15
,
0x22
,
0x12
,
0x58
,
0x07
,
0x99
,
0x34
,
0x6E
,
0x50
,
0xDE
,
0x68
,
0x65
,
0xBC
,
0xDB
,
0xF8
,
0xC8
,
0xA8
,
0x2B
,
0x40
,
0xDC
,
0xFE
,
0x32
,
0xA4
,
0xCA
,
0x10
,
0x21
,
0xF0
,
0xD3
,
0x5D
,
0x0F
,
0x00
,
0x6F
,
0x9D
,
0x36
,
0x42
,
0x4A
,
0x5E
,
0xC1
,
0xE0
,
};
static
const
uint8_t
q1
[]
=
{
0x75
,
0xF3
,
0xC6
,
0xF4
,
0xDB
,
0x7B
,
0xFB
,
0xC8
,
0x4A
,
0xD3
,
0xE6
,
0x6B
,
0x45
,
0x7D
,
0xE8
,
0x4B
,
0xD6
,
0x32
,
0xD8
,
0xFD
,
0x37
,
0x71
,
0xF1
,
0xE1
,
0x30
,
0x0F
,
0xF8
,
0x1B
,
0x87
,
0xFA
,
0x06
,
0x3F
,
0x5E
,
0xBA
,
0xAE
,
0x5B
,
0x8A
,
0x00
,
0xBC
,
0x9D
,
0x6D
,
0xC1
,
0xB1
,
0x0E
,
0x80
,
0x5D
,
0xD2
,
0xD5
,
0xA0
,
0x84
,
0x07
,
0x14
,
0xB5
,
0x90
,
0x2C
,
0xA3
,
0xB2
,
0x73
,
0x4C
,
0x54
,
0x92
,
0x74
,
0x36
,
0x51
,
0x38
,
0xB0
,
0xBD
,
0x5A
,
0xFC
,
0x60
,
0x62
,
0x96
,
0x6C
,
0x42
,
0xF7
,
0x10
,
0x7C
,
0x28
,
0x27
,
0x8C
,
0x13
,
0x95
,
0x9C
,
0xC7
,
0x24
,
0x46
,
0x3B
,
0x70
,
0xCA
,
0xE3
,
0x85
,
0xCB
,
0x11
,
0xD0
,
0x93
,
0xB8
,
0xA6
,
0x83
,
0x20
,
0xFF
,
0x9F
,
0x77
,
0xC3
,
0xCC
,
0x03
,
0x6F
,
0x08
,
0xBF
,
0x40
,
0xE7
,
0x2B
,
0xE2
,
0x79
,
0x0C
,
0xAA
,
0x82
,
0x41
,
0x3A
,
0xEA
,
0xB9
,
0xE4
,
0x9A
,
0xA4
,
0x97
,
0x7E
,
0xDA
,
0x7A
,
0x17
,
0x66
,
0x94
,
0xA1
,
0x1D
,
0x3D
,
0xF0
,
0xDE
,
0xB3
,
0x0B
,
0x72
,
0xA7
,
0x1C
,
0xEF
,
0xD1
,
0x53
,
0x3E
,
0x8F
,
0x33
,
0x26
,
0x5F
,
0xEC
,
0x76
,
0x2A
,
0x49
,
0x81
,
0x88
,
0xEE
,
0x21
,
0xC4
,
0x1A
,
0xEB
,
0xD9
,
0xC5
,
0x39
,
0x99
,
0xCD
,
0xAD
,
0x31
,
0x8B
,
0x01
,
0x18
,
0x23
,
0xDD
,
0x1F
,
0x4E
,
0x2D
,
0xF9
,
0x48
,
0x4F
,
0xF2
,
0x65
,
0x8E
,
0x78
,
0x5C
,
0x58
,
0x19
,
0x8D
,
0xE5
,
0x98
,
0x57
,
0x67
,
0x7F
,
0x05
,
0x64
,
0xAF
,
0x63
,
0xB6
,
0xFE
,
0xF5
,
0xB7
,
0x3C
,
0xA5
,
0xCE
,
0xE9
,
0x68
,
0x44
,
0xE0
,
0x4D
,
0x43
,
0x69
,
0x29
,
0x2E
,
0xAC
,
0x15
,
0x59
,
0xA8
,
0x0A
,
0x9E
,
0x6E
,
0x47
,
0xDF
,
0x34
,
0x35
,
0x6A
,
0xCF
,
0xDC
,
0x22
,
0xC9
,
0xC0
,
0x9B
,
0x89
,
0xD4
,
0xED
,
0xAB
,
0x12
,
0xA2
,
0x0D
,
0x52
,
0xBB
,
0x02
,
0x2F
,
0xA9
,
0xD7
,
0x61
,
0x1E
,
0xB4
,
0x50
,
0x04
,
0xF6
,
0xC2
,
0x16
,
0x25
,
0x86
,
0x56
,
0x55
,
0x09
,
0xBE
,
0x91
,
};
static
const
uint8_t
q0
[
256
]
=
{
0xA9
,
0x67
,
0xB3
,
0xE8
,
0x04
,
0xFD
,
0xA3
,
0x76
,
0x9A
,
0x92
,
0x80
,
0x78
,
0xE4
,
0xDD
,
0xD1
,
0x38
,
0x0D
,
0xC6
,
0x35
,
0x98
,
0x18
,
0xF7
,
0xEC
,
0x6C
,
0x43
,
0x75
,
0x37
,
0x26
,
0xFA
,
0x13
,
0x94
,
0x48
,
0xF2
,
0xD0
,
0x8B
,
0x30
,
0x84
,
0x54
,
0xDF
,
0x23
,
0x19
,
0x5B
,
0x3D
,
0x59
,
0xF3
,
0xAE
,
0xA2
,
0x82
,
0x63
,
0x01
,
0x83
,
0x2E
,
0xD9
,
0x51
,
0x9B
,
0x7C
,
0xA6
,
0xEB
,
0xA5
,
0xBE
,
0x16
,
0x0C
,
0xE3
,
0x61
,
0xC0
,
0x8C
,
0x3A
,
0xF5
,
0x73
,
0x2C
,
0x25
,
0x0B
,
0xBB
,
0x4E
,
0x89
,
0x6B
,
0x53
,
0x6A
,
0xB4
,
0xF1
,
0xE1
,
0xE6
,
0xBD
,
0x45
,
0xE2
,
0xF4
,
0xB6
,
0x66
,
0xCC
,
0x95
,
0x03
,
0x56
,
0xD4
,
0x1C
,
0x1E
,
0xD7
,
0xFB
,
0xC3
,
0x8E
,
0xB5
,
0xE9
,
0xCF
,
0xBF
,
0xBA
,
0xEA
,
0x77
,
0x39
,
0xAF
,
0x33
,
0xC9
,
0x62
,
0x71
,
0x81
,
0x79
,
0x09
,
0xAD
,
0x24
,
0xCD
,
0xF9
,
0xD8
,
0xE5
,
0xC5
,
0xB9
,
0x4D
,
0x44
,
0x08
,
0x86
,
0xE7
,
0xA1
,
0x1D
,
0xAA
,
0xED
,
0x06
,
0x70
,
0xB2
,
0xD2
,
0x41
,
0x7B
,
0xA0
,
0x11
,
0x31
,
0xC2
,
0x27
,
0x90
,
0x20
,
0xF6
,
0x60
,
0xFF
,
0x96
,
0x5C
,
0xB1
,
0xAB
,
0x9E
,
0x9C
,
0x52
,
0x1B
,
0x5F
,
0x93
,
0x0A
,
0xEF
,
0x91
,
0x85
,
0x49
,
0xEE
,
0x2D
,
0x4F
,
0x8F
,
0x3B
,
0x47
,
0x87
,
0x6D
,
0x46
,
0xD6
,
0x3E
,
0x69
,
0x64
,
0x2A
,
0xCE
,
0xCB
,
0x2F
,
0xFC
,
0x97
,
0x05
,
0x7A
,
0xAC
,
0x7F
,
0xD5
,
0x1A
,
0x4B
,
0x0E
,
0xA7
,
0x5A
,
0x28
,
0x14
,
0x3F
,
0x29
,
0x88
,
0x3C
,
0x4C
,
0x02
,
0xB8
,
0xDA
,
0xB0
,
0x17
,
0x55
,
0x1F
,
0x8A
,
0x7D
,
0x57
,
0xC7
,
0x8D
,
0x74
,
0xB7
,
0xC4
,
0x9F
,
0x72
,
0x7E
,
0x15
,
0x22
,
0x12
,
0x58
,
0x07
,
0x99
,
0x34
,
0x6E
,
0x50
,
0xDE
,
0x68
,
0x65
,
0xBC
,
0xDB
,
0xF8
,
0xC8
,
0xA8
,
0x2B
,
0x40
,
0xDC
,
0xFE
,
0x32
,
0xA4
,
0xCA
,
0x10
,
0x21
,
0xF0
,
0xD3
,
0x5D
,
0x0F
,
0x00
,
0x6F
,
0x9D
,
0x36
,
0x42
,
0x4A
,
0x5E
,
0xC1
,
0xE0
,
};
static
const
uint8_t
q1
[
256
]
=
{
0x75
,
0xF3
,
0xC6
,
0xF4
,
0xDB
,
0x7B
,
0xFB
,
0xC8
,
0x4A
,
0xD3
,
0xE6
,
0x6B
,
0x45
,
0x7D
,
0xE8
,
0x4B
,
0xD6
,
0x32
,
0xD8
,
0xFD
,
0x37
,
0x71
,
0xF1
,
0xE1
,
0x30
,
0x0F
,
0xF8
,
0x1B
,
0x87
,
0xFA
,
0x06
,
0x3F
,
0x5E
,
0xBA
,
0xAE
,
0x5B
,
0x8A
,
0x00
,
0xBC
,
0x9D
,
0x6D
,
0xC1
,
0xB1
,
0x0E
,
0x80
,
0x5D
,
0xD2
,
0xD5
,
0xA0
,
0x84
,
0x07
,
0x14
,
0xB5
,
0x90
,
0x2C
,
0xA3
,
0xB2
,
0x73
,
0x4C
,
0x54
,
0x92
,
0x74
,
0x36
,
0x51
,
0x38
,
0xB0
,
0xBD
,
0x5A
,
0xFC
,
0x60
,
0x62
,
0x96
,
0x6C
,
0x42
,
0xF7
,
0x10
,
0x7C
,
0x28
,
0x27
,
0x8C
,
0x13
,
0x95
,
0x9C
,
0xC7
,
0x24
,
0x46
,
0x3B
,
0x70
,
0xCA
,
0xE3
,
0x85
,
0xCB
,
0x11
,
0xD0
,
0x93
,
0xB8
,
0xA6
,
0x83
,
0x20
,
0xFF
,
0x9F
,
0x77
,
0xC3
,
0xCC
,
0x03
,
0x6F
,
0x08
,
0xBF
,
0x40
,
0xE7
,
0x2B
,
0xE2
,
0x79
,
0x0C
,
0xAA
,
0x82
,
0x41
,
0x3A
,
0xEA
,
0xB9
,
0xE4
,
0x9A
,
0xA4
,
0x97
,
0x7E
,
0xDA
,
0x7A
,
0x17
,
0x66
,
0x94
,
0xA1
,
0x1D
,
0x3D
,
0xF0
,
0xDE
,
0xB3
,
0x0B
,
0x72
,
0xA7
,
0x1C
,
0xEF
,
0xD1
,
0x53
,
0x3E
,
0x8F
,
0x33
,
0x26
,
0x5F
,
0xEC
,
0x76
,
0x2A
,
0x49
,
0x81
,
0x88
,
0xEE
,
0x21
,
0xC4
,
0x1A
,
0xEB
,
0xD9
,
0xC5
,
0x39
,
0x99
,
0xCD
,
0xAD
,
0x31
,
0x8B
,
0x01
,
0x18
,
0x23
,
0xDD
,
0x1F
,
0x4E
,
0x2D
,
0xF9
,
0x48
,
0x4F
,
0xF2
,
0x65
,
0x8E
,
0x78
,
0x5C
,
0x58
,
0x19
,
0x8D
,
0xE5
,
0x98
,
0x57
,
0x67
,
0x7F
,
0x05
,
0x64
,
0xAF
,
0x63
,
0xB6
,
0xFE
,
0xF5
,
0xB7
,
0x3C
,
0xA5
,
0xCE
,
0xE9
,
0x68
,
0x44
,
0xE0
,
0x4D
,
0x43
,
0x69
,
0x29
,
0x2E
,
0xAC
,
0x15
,
0x59
,
0xA8
,
0x0A
,
0x9E
,
0x6E
,
0x47
,
0xDF
,
0x34
,
0x35
,
0x6A
,
0xCF
,
0xDC
,
0x22
,
0xC9
,
0xC0
,
0x9B
,
0x89
,
0xD4
,
0xED
,
0xAB
,
0x12
,
0xA2
,
0x0D
,
0x52
,
0xBB
,
0x02
,
0x2F
,
0xA9
,
0xD7
,
0x61
,
0x1E
,
0xB4
,
0x50
,
0x04
,
0xF6
,
0xC2
,
0x16
,
0x25
,
0x86
,
0x56
,
0x55
,
0x09
,
0xBE
,
0x91
,
};
/* ------------------------------------------------------------------------- */
...
...
twofishdata.c
0 → 100644
View file @
c4d3a98d
/*
* twofishdata.c - Generates the permutations q0 and q1 for twofish.
* Copyright (C) 1999 Ruud de Rooij <ruud@debian.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include
<stdio.h>
#include
"nettle-stdint.h"
#define ror4(x) (((x) >> 1) | (((x) & 1) << 3))
static
uint8_t
q0
(
uint8_t
x
)
{
static
const
uint8_t
t0
[
16
]
=
{
0x8
,
0x1
,
0x7
,
0xD
,
0x6
,
0xF
,
0x3
,
0x2
,
0x0
,
0xB
,
0x5
,
0x9
,
0xE
,
0xC
,
0xA
,
0x4
};
static
const
uint8_t
t1
[
16
]
=
{
0xE
,
0xC
,
0xB
,
0x8
,
0x1
,
0x2
,
0x3
,
0x5
,
0xF
,
0x4
,
0xA
,
0x6
,
0x7
,
0x0
,
0x9
,
0xD
};
static
const
uint8_t
t2
[
16
]
=
{
0xB
,
0xA
,
0x5
,
0xE
,
0x6
,
0xD
,
0x9
,
0x0
,
0xC
,
0x8
,
0xF
,
0x3
,
0x2
,
0x4
,
0x7
,
0x1
};
static
const
uint8_t
t3
[
16
]
=
{
0xD
,
0x7
,
0xF
,
0x4
,
0x1
,
0x2
,
0x6
,
0xE
,
0x9
,
0xB
,
0x3
,
0x0
,
0x8
,
0x5
,
0xC
,
0xA
};
uint8_t
a0
=
x
/
16
;
uint8_t
b0
=
x
%
16
;
uint8_t
a1
=
a0
^
b0
;
uint8_t
b1
=
a0
^
ror4
(
b0
)
^
((
8
*
a0
)
%
16
);
uint8_t
a2
=
t0
[
a1
];
uint8_t
b2
=
t1
[
b1
];
uint8_t
a3
=
a2
^
b2
;
uint8_t
b3
=
a2
^
ror4
(
b2
)
^
((
8
*
a2
)
%
16
);
uint8_t
a4
=
t2
[
a3
];
uint8_t
b4
=
t3
[
b3
];
uint8_t
y
=
16
*
b4
+
a4
;
return
y
;
}
static
uint8_t
q1
(
uint8_t
x
)
{
static
const
uint8_t
t0
[
16
]
=
{
0x2
,
0x8
,
0xB
,
0xD
,
0xF
,
0x7
,
0x6
,
0xE
,
0x3
,
0x1
,
0x9
,
0x4
,
0x0
,
0xA
,
0xC
,
0x5
};
static
const
uint8_t
t1
[
16
]
=
{
0x1
,
0xE
,
0x2
,
0xB
,
0x4
,
0xC
,
0x3
,
0x7
,
0x6
,
0xD
,
0xA
,
0x5
,
0xF
,
0x9
,
0x0
,
0x8
};
static
const
uint8_t
t2
[
16
]
=
{
0x4
,
0xC
,
0x7
,
0x5
,
0x1
,
0x6
,
0x9
,
0xA
,
0x0
,
0xE
,
0xD
,
0x8
,
0x2
,
0xB
,
0x3
,
0xF
};
static
const
uint8_t
t3
[
16
]
=
{
0xB
,
0x9
,
0x5
,
0x1
,
0xC
,
0x3
,
0xD
,
0xE
,
0x6
,
0x4
,
0x7
,
0xF
,
0x2
,
0x0
,
0x8
,
0xA
};
uint8_t
a0
=
x
/
16
;
uint8_t
b0
=
x
%
16
;
uint8_t
a1
=
a0
^
b0
;
uint8_t
b1
=
a0
^
ror4
(
b0
)
^
((
8
*
a0
)
%
16
);
uint8_t
a2
=
t0
[
a1
];
uint8_t
b2
=
t1
[
b1
];
uint8_t
a3
=
a2
^
b2
;
uint8_t
b3
=
a2
^
ror4
(
b2
)
^
((
8
*
a2
)
%
16
);
uint8_t
a4
=
t2
[
a3
];
uint8_t
b4
=
t3
[
b3
];
uint8_t
y
=
16
*
b4
+
a4
;
return
y
;
}
int
main
(
void
)
{
unsigned
i
,
j
;
printf
(
"static const uint8_t q0[256] = {"
);
for
(
i
=
0
;
i
<
256
;
i
++
)
{
if
(
(
i
%
8
)
==
0
)
printf
(
"
\n
"
);
printf
(
"0x%02X,"
,
q0
(
i
));
}
printf
(
"
\n
};
\n\n
"
);
printf
(
"static const uint8_t q1[256] = {"
);
for
(
i
=
0
;
i
<
256
;
i
++
)
{
if
(
(
i
%
8
)
==
0
)
printf
(
"
\n
"
);
printf
(
"0x%02X,"
,
q1
(
i
));
}
printf
(
"
\n
};
\n
"
);
return
0
;
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment