ecdh.c File Reference

ECDH (Elliptic Curve Diffie-Hellman) key exchange. More...

#include "core/crypto.h"
#include "ecc/ecdh.h"
#include "ecc/x25519.h"
#include "ecc/x448.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL
 

Functions

void ecdhInit (EcdhContext *context)
 Initialize ECDH context. More...
 
void ecdhFree (EcdhContext *context)
 Release ECDH context. More...
 
error_t ecdhGenerateKeyPair (EcdhContext *context, const PrngAlgo *prngAlgo, void *prngContext)
 ECDH key pair generation. More...
 
error_t ecdhCheckPublicKey (const EcDomainParameters *params, EcPoint *publicKey)
 Check ECDH public key. More...
 
error_t ecdhComputeSharedSecret (EcdhContext *context, uint8_t *output, size_t outputSize, size_t *outputLen)
 Compute ECDH shared secret. More...
 

Detailed Description

ECDH (Elliptic Curve Diffie-Hellman) key exchange.

License

Copyright (C) 2010-2018 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.9.0

Definition in file ecdh.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   CRYPTO_TRACE_LEVEL

Definition at line 30 of file ecdh.c.

Function Documentation

◆ ecdhCheckPublicKey()

error_t ecdhCheckPublicKey ( const EcDomainParameters params,
EcPoint publicKey 
)

Check ECDH public key.

Parameters
[in]paramsEC domain parameters
[in]publicKeyPublic key to be checked
Returns
Error code

Definition at line 270 of file ecdh.c.

◆ ecdhComputeSharedSecret()

error_t ecdhComputeSharedSecret ( EcdhContext context,
uint8_t *  output,
size_t  outputSize,
size_t *  outputLen 
)

Compute ECDH shared secret.

Parameters
[in]contextPointer to the ECDH context
[out]outputBuffer where to store the shared secret
[in]outputSizeSize of the buffer in bytes
[out]outputLenLength of the resulting shared secret
Returns
Error code

Definition at line 383 of file ecdh.c.

◆ ecdhFree()

void ecdhFree ( EcdhContext context)

Release ECDH context.

Parameters
[in]contextPointer to the ECDH context

Definition at line 65 of file ecdh.c.

◆ ecdhGenerateKeyPair()

error_t ecdhGenerateKeyPair ( EcdhContext context,
const PrngAlgo prngAlgo,
void *  prngContext 
)

ECDH key pair generation.

Parameters
[in]contextPointer to the ECDH context
[in]prngAlgoPRNG algorithm
[in]prngContextPointer to the PRNG context
Returns
Error code

Definition at line 85 of file ecdh.c.

◆ ecdhInit()

void ecdhInit ( EcdhContext context)

Initialize ECDH context.

Parameters
[in]contextPointer to the ECDH context

Definition at line 48 of file ecdh.c.