nrfxlib API 3.3.99
Loading...
Searching...
No Matches
ocrypto_ecdh_p256.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 - 2025 Nordic Semiconductor ASA
3 * Copyright (c) since 2013 Oberon microsystems AG
4 *
5 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
6 */
7
8
25#ifndef OCRYPTO_ECDH_P256_H
26#define OCRYPTO_ECDH_P256_H
27
28#include "ocrypto_types_p256.h"
29
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35
37typedef struct {
38 ocrypto_p256_mult_ctx mul;
39 int ret;
40} ocrypto_ecdh_p256_ctx;
57int ocrypto_ecdh_p256_secret_key_check(const uint8_t sk[32]);
58
67int ocrypto_ecdh_p256_public_key_check(const uint8_t pk[64]);
68
87int ocrypto_ecdh_p256_public_key(uint8_t pk[64], const uint8_t sk[32]);
88
104int ocrypto_ecdh_p256_common_secret(uint8_t r[32], const uint8_t sk[32], const uint8_t pk[64]);
105
106
139void ocrypto_ecdh_p256_public_key_init(ocrypto_ecdh_p256_ctx *ctx, const uint8_t sk[32]);
140
151int ocrypto_ecdh_p256_public_key_iterate(ocrypto_ecdh_p256_ctx *ctx);
152
164int ocrypto_ecdh_p256_public_key_final(ocrypto_ecdh_p256_ctx *ctx, uint8_t pk[64]);
165
175void ocrypto_ecdh_p256_common_secret_init(ocrypto_ecdh_p256_ctx *ctx, const uint8_t sk[32], const uint8_t pk[64]);
176
187int ocrypto_ecdh_p256_common_secret_iterate(ocrypto_ecdh_p256_ctx *ctx);
188
200int ocrypto_ecdh_p256_common_secret_final(ocrypto_ecdh_p256_ctx *ctx, uint8_t r[32]);
204#ifdef __cplusplus
205}
206#endif
207
208#endif
209
void ocrypto_ecdh_p256_common_secret_init(ocrypto_ecdh_p256_ctx *ctx, const uint8_t sk[32], const uint8_t pk[64])
int ocrypto_ecdh_p256_public_key(uint8_t pk[64], const uint8_t sk[32])
int ocrypto_ecdh_p256_secret_key_check(const uint8_t sk[32])
int ocrypto_ecdh_p256_common_secret_iterate(ocrypto_ecdh_p256_ctx *ctx)
int ocrypto_ecdh_p256_public_key_final(ocrypto_ecdh_p256_ctx *ctx, uint8_t pk[64])
int ocrypto_ecdh_p256_common_secret_final(ocrypto_ecdh_p256_ctx *ctx, uint8_t r[32])
int ocrypto_ecdh_p256_common_secret(uint8_t r[32], const uint8_t sk[32], const uint8_t pk[64])
int ocrypto_ecdh_p256_public_key_check(const uint8_t pk[64])
int ocrypto_ecdh_p256_public_key_iterate(ocrypto_ecdh_p256_ctx *ctx)
void ocrypto_ecdh_p256_public_key_init(ocrypto_ecdh_p256_ctx *ctx, const uint8_t sk[32])
Declaration of internal types used in public interfaces.