/* MIT License
*
* Copyright ( c ) 2016 - 2022 INRIA , CMU and Microsoft Corporation
* Copyright ( c ) 2022 - 2023 HACL * Contributors
*
* Permission is hereby granted , free of charge , to any person obtaining a copy
* of this software and associated documentation files ( the " Software " ) , to deal
* in the Software without restriction , including without limitation the rights
* to use , copy , modify , merge , publish , distribute , sublicense , and / or sell
* copies of the Software , and to permit persons to whom the Software is
* furnished to do so , subject to the following conditions :
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
* LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM ,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE .
*/
#ifndef __Hacl_Curve25519_64_H
#define __Hacl_Curve25519_64_H
#if defined (__cplusplus)
extern "C" {
#endif
#include <string.h>
#include "krml/internal/types.h"
#include "krml/lowstar_endianness.h"
#include "krml/internal/target.h"
#include "Hacl_Krmllib.h"
/**
Compute the scalar multiple of a point .
@ param out Pointer to 32 bytes of memory , allocated by the caller , where the resulting point is written to .
@ param priv Pointer to 32 bytes of memory where the secret / private key is read from .
@ param pub Pointer to 32 bytes of memory where the public point is read from .
*/
void Hacl_Curve25519_64_scalarmult(uint8_t *out, uint8_t *priv, uint8_t *pub);
/**
Calculate a public point from a secret / private key .
This computes a scalar multiplication of the secret / private key with the curve ' s basepoint .
@ param pub Pointer to 32 bytes of memory , allocated by the caller , where the resulting point is written to .
@ param priv Pointer to 32 bytes of memory where the secret / private key is read from .
*/
void Hacl_Curve25519_64_secret_to_public(uint8_t *pub, uint8_t *priv);
/**
Execute the diffie - hellmann key exchange .
@ param out Pointer to 32 bytes of memory , allocated by the caller , where the resulting point is written to .
@ param priv Pointer to 32 bytes of memory where * * our * * secret / private key is read from .
@ param pub Pointer to 32 bytes of memory where * * their * * public point is read from .
*/
bool Hacl_Curve25519_64_ecdh(uint8_t *out, uint8_t *priv, uint8_t *pub);
#if defined (__cplusplus)
}
#endif
#define __Hacl_Curve25519_64_H_DEFINED
#endif
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-30)
¤
*© Formatika GbR, Deutschland