Sergey Pastor / 1

Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

chacha.h File Reference

chacha.h File Reference

ChaCha encryption algorithm. More...

Go to the source code of this file.

Data Structures

struct  ChachaContext
 ChaCha algorithm context. More...

Functions

error_t chachaInit (ChachaContext *context, uint_t nr, const uint8_t *key, size_t keyLength, const uint8_t *nonce, size_t nonceLength)
 Initialize ChaCha context using the supplied key and nonce.
void chachaCipher (ChachaContext *context, const uint8_t *input, uint8_t *output, size_t length)
 Encrypt/decrypt data with the ChaCha algorithm.
void chachaProcessBlock (ChachaContext *context)
 Generate a keystream block.

Detailed Description

ChaCha encryption algorithm.

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 chacha.h.


Function Documentation

void chachaCipher ( ChachaContext context,
const uint8_t *  input,
uint8_t *  output,
size_t  length 
)

Encrypt/decrypt data with the ChaCha algorithm.

Parameters:
[in]contextPointer to the ChaCha context
[in]inputPointer to the data to encrypt/decrypt (optional)
[in]outputPointer to the resulting data (optional)
[in]lengthNumber of bytes to be processed

Definition at line 169 of file chacha.c.

error_t chachaInit ( ChachaContext context,
uint_t  nr,
const uint8_t *  key,
size_t  keyLength,
const uint8_t *  nonce,
size_t  nonceLength 
)

Initialize ChaCha context using the supplied key and nonce.

Parameters:
[in]contextPointer to the ChaCha context to initialize
[in]nrNumber of rounds to be applied (8, 12 or 20)
[in]keyPointer to the key
[in]keyLengthLength of the key, in bytes (16 or 32)
[in]noncePointer to the nonce
[in]nonceLengthLength of the nonce, in bytes (8 or 12)
Returns:
Error code

Definition at line 60 of file chacha.c.

void chachaProcessBlock ( ChachaContext context )

Generate a keystream block.

Parameters:
[in]contextPointer to the ChaCha context

Definition at line 240 of file chacha.c.