Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

keccak.c File Reference

keccak.c File Reference

Keccak sponge function. More...

Go to the source code of this file.

Functions

static void theta (keccak_lane_t a[5][5])
 Apply theta transformation.
static void rho (keccak_lane_t a[5][5])
 Apply rho transformation.
static void pi (keccak_lane_t a[5][5])
 Apply pi transformation.
static void chi (keccak_lane_t a[5][5])
 Apply chi transformation.
static iota (keccak_lane_t a[5][5], uint_t index)
 Apply iota transformation.
error_t keccakInit (KeccakContext *context, uint_t capacity)
 Initialize Keccak context.
void keccakAbsorb (KeccakContext *context, const void *input, size_t length)
 Absorb data.
void keccakFinal (KeccakContext *context, uint8_t pad)
 Finish absorbing phase.
void keccakSqueeze (KeccakContext *context, uint8_t *output, size_t length)
 Extract data from the squeezing phase.
void keccakPermutBlock (KeccakContext *context)
 Block permutation.

Detailed Description

Keccak sponge function.

License

Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneCrypto Open.

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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author:
Oryx Embedded SARL (www.oryx-embedded.com)
Version:
1.7.6

Definition in file keccak.c.


Function Documentation

static void chi ( keccak_lane_t  a[5][5] ) [static]

Apply chi transformation.

Parameters:
[in,out]aState array

Definition at line 216 of file keccak.c.

static iota ( keccak_lane_t  a[5][5],
uint_t  index 
) [static]

Apply iota transformation.

Parameters:
[in,out]aState array
index]round Round index

Definition at line 271 of file keccak.c.

void keccakAbsorb ( KeccakContext context,
const void *  input,
size_t  length 
)

Absorb data.

Parameters:
[in]contextPointer to the Keccak context
[in]inputPointer to the buffer being hashed
[in]lengthLength of the buffer

Definition at line 317 of file keccak.c.

void keccakFinal ( KeccakContext context,
uint8_t  pad 
)

Finish absorbing phase.

Parameters:
[in]contextPointer to the Keccak context
[in]padValue of the padding byte (0x01 for Keccak, 0x06 for SHA-3 and 0x1F for XOF)

Definition at line 366 of file keccak.c.

error_t keccakInit ( KeccakContext context,
uint_t  capacity 
)

Initialize Keccak context.

Parameters:
[in]contextPointer to the Keccak context to initialize
[in]capacityCapacity of the sponge function

Definition at line 284 of file keccak.c.

void keccakPermutBlock ( KeccakContext context )

Block permutation.

Parameters:
[in]contextPointer to the Keccak context

Definition at line 459 of file keccak.c.

void keccakSqueeze ( KeccakContext context,
uint8_t *  output,
size_t  length 
)

Extract data from the squeezing phase.

Parameters:
[in]contextPointer to the Keccak context
[out]outputOutput string
[in]lengthDesired output length, in bytes

Definition at line 406 of file keccak.c.

static void pi ( keccak_lane_t  a[5][5] ) [static]

Apply pi transformation.

Parameters:
[in,out]aState array

Definition at line 177 of file keccak.c.

static void rho ( keccak_lane_t  a[5][5] ) [static]

Apply rho transformation.

Parameters:
[in,out]aState array

Definition at line 137 of file keccak.c.

static void theta ( keccak_lane_t  a[5][5] ) [static]

Apply theta transformation.

Parameters:
[in,out]aState array

Definition at line 81 of file keccak.c.