TIMECOP
/ crypto_stream

Primitives for crypto_stream

This page lists all primitives grouped under operation crypto_stream.

For each primitive, all listed implementations were checked across a number of compilers, compiler options, and hosts.

The progress bar shows the relative number of successes, fails, and errors:

  • Success. The constant-time checker didn't find any cases where the execution time of the tested code depends on secret data.
  • Fail. The execution time of the tested code depends on secret data.
  • Error.

Errors can have multiple causes:
  • The constant-time checker encountered an error and couldn't be completed.
  • Valgrind found memory issues, but none of them are related to constant-time checks.
  • The constant-time checker timed out after 6 minutes.
  • The tested code produced invalid results. More details can be found near the start of the output file. Example:
    crypto_aead_decrypt returns nonzero 

The absolute number of successes, fails, and errors is shown to the left of the progress bar.

The following code was used to flag secret data, and test implementations:

1void timecop_doit(void)
2{
3 poison(k, klen);
4 poison(n, nlen);
5 return doit();
6}

Click an implementation to see all checked compiler options.

aes128ctr
Description
The Advanced Encryption Standard (128-bit key) in a particular counter mode
Designers
Vincent Rijmen
Joan Daemen
Implementations:
aes192ctr
Description
The Advanced Encryption Standard (192-bit key) in a particular counter mode
Designers
Vincent Rijmen
Joan Daemen
Implementations:
aes256ctr
Description
The Advanced Encryption Standard (256-bit key) in a particular counter mode
Designers
Vincent Rijmen
Joan Daemen
Implementations:
aes256estream
Description
The Advanced Encryption Standard (256-bit key) in another counter mode specified by eSTREAM
Designers
Vincent Rijmen
Joan Daemen
Implementations:
amastrid
Description
AMASTRID (256-bit key)
Designers
George Anescu
Implementations:
cryptmtv3
Description
CryptMT v3 (256-bit key)
Designers
Makoto Matsumoto
Matsuo Saito
Takuji Nishimura
Mariko Hagita
Implementations:
dragon
Description
Dragon (256-bit key)
Designers
Kevin Chen
Matt Henricksen
William Millan
Joanne Fuller
Leonie Simpson
Ed Dawson
HoonJae Lee
SangJae Moon
Implementations:
hc256
Description
HC-256 (256-bit key)
Designers
Hongjun Wu
Implementations:
lexv2
Description
LEX v2 (128-bit key)
Designers
Alex Biryukov
Implementations:
nlsv2
Description
NLS v2 (128-bit key)
Designers
Gregory Rose
Philip Hawkes
Michael Paddon
Miriam Wiggers de Vries
Implementations:
ocelot1
Description
OCELOT1 (256-bit key)
Designers
George Anescu
Implementations:
panama
Description
Panama (256-bit key)
Designers
Joan Daemen
Craig Clapp
Implementations:
salsa20
Description
Salsa20/20 (256-bit key)
Designers
Daniel J. Bernstein
Implementations:
salsa2012
Description
Salsa20/12 (256-bit key)
Designers
Daniel J. Bernstein
Implementations:
salsa208
Description
Salsa20/8 (256-bit key)
Designers
Daniel J. Bernstein
Implementations:
snow20
Description
SNOW 2.0 (256-bit key)
Designers
Patrik Ekdahl
Thomas Johansson
Implementations:
sosemanuk
Description
Sosemanuk (256-bit key)
Designers
Come Berbain
Olivier Billet
Anne Canteaut
Nicolas Courtois
Henri Gilbert
Louis Goubin
Aline Gouget
Louis Granboulan
Cédric Lauradoux
Marine Minier
Thomas Pornin
Hervé Sibert
Implementations:
tpy
Description
TPy (256-bit key)
Designers
Eli Biham
Jennifer Seberry
Implementations:
tpy6
Description
TPy6 (256-bit key)
Designers
Eli Biham
Jennifer Seberry
Implementations:
tpypy
Description
TPypy (256-bit key)
Designers
Eli Biham
Jennifer Seberry
Implementations:
trivium
Description
Trivium (80-bit key)
Designers
Christophe De Cannière
Bart Preneel
Implementations:
xsalsa20
Description
XSalsa20
Designers
Daniel J. Bernstein
Implementations: