salsa20-0.1.0.0
Copyright(c) Alfredo Garcia 2023
LicenseMIT
Stabilityexperimental
PortabilityPOSIX
Safe HaskellSafe-Inferred
LanguageHaskell2010

Doubleround

Description

This module defines the doubleround function as the composition of rowround and columnround. Additionally, it introduces doubleroundR, which represents the doubleround function applied R times, as specified in the salsa20 spec.

The module provides functionalities to:

  • Compute numeric values resulting from doubleround expressions.
  • Generate string representations of doubleround expressions.
  • Perform Keelung specific computations using the UInt 32 type.

The doubleround function applies rowround to the result of columnround, creating a comprehensive cryptographic operation. The iterated version, doubleroundR, repeats the doubleround operation R times, enhancing security and complexity.

Exported functions:

The doubleroundR variant:

Synopsis

Documentation

doubleroundCompute :: [Word32] -> [Word32] #

The doubleround expression computed.

doubleroundDisplay :: [String] -> [String] #

The doubleround expression as a string.

doubleroundKeelung :: [UInt 32] -> Comp [UInt 32] #

The doubleround Keelung expression.

doubleroundRCompute :: Int -> [Word32] -> [Word32] #

The doubleroundR expression computed.

doubleroundRDisplay :: Int -> [String] -> [String] #

The doubleroundR expression as a string.

doubleroundRKeelung :: Int -> [UInt 32] -> Comp [UInt 32] #

The doubleroundR Keelung expression.