mbedtls ported to mbed-classic
Fork of mbedtls by
ecjpake.h File Reference
Elliptic curve J-PAKE. More...
Go to the source code of this file.
Data Structures | |
struct | mbedtls_ecjpake_context |
EC J-PAKE context structure. More... | |
Enumerations | |
enum | mbedtls_ecjpake_role { MBEDTLS_ECJPAKE_CLIENT = 0, MBEDTLS_ECJPAKE_SERVER } |
Roles in the EC J-PAKE exchange. More... | |
Functions | |
void | mbedtls_ecjpake_init (mbedtls_ecjpake_context *ctx) |
Initialize a context (just makes it ready for setup() or free()). | |
int | mbedtls_ecjpake_setup (mbedtls_ecjpake_context *ctx, mbedtls_ecjpake_role role, mbedtls_md_type_t hash, mbedtls_ecp_group_id curve, const unsigned char *secret, size_t len) |
Set up a context for use. | |
int | mbedtls_ecjpake_write_round_one (mbedtls_ecjpake_context *ctx, unsigned char *buf, size_t len, size_t *olen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng) |
Generate and write the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes) | |
int | mbedtls_ecjpake_read_round_one (mbedtls_ecjpake_context *ctx, const unsigned char *buf, size_t len) |
Read and process the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes) | |
int | mbedtls_ecjpake_write_round_two (mbedtls_ecjpake_context *ctx, unsigned char *buf, size_t len, size_t *olen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng) |
Generate and write the second round message (TLS: contents of the Client/ServerKeyExchange) | |
int | mbedtls_ecjpake_read_round_two (mbedtls_ecjpake_context *ctx, const unsigned char *buf, size_t len) |
Read and process the second round message (TLS: contents of the Client/ServerKeyExchange) | |
int | mbedtls_ecjpake_derive_secret (mbedtls_ecjpake_context *ctx, unsigned char *buf, size_t len, size_t *olen, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng) |
Derive the shared secret (TLS: Pre-Master Secret) | |
void | mbedtls_ecjpake_free (mbedtls_ecjpake_context *ctx) |
Free a context's content. | |
int | mbedtls_ecjpake_self_test (int verbose) |
Checkup routine. |
Detailed Description
Elliptic curve J-PAKE.
Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This file is part of mbed TLS (https://tls.mbed.org)
Definition in file ecjpake.h.
Enumeration Type Documentation
enum mbedtls_ecjpake_role |
Function Documentation
int mbedtls_ecjpake_derive_secret | ( | mbedtls_ecjpake_context * | ctx, |
unsigned char * | buf, | ||
size_t | len, | ||
size_t * | olen, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Derive the shared secret (TLS: Pre-Master Secret)
- Parameters:
-
ctx Context to use buf Buffer to write the contents to len Buffer size olen Will be updated with the number of bytes written f_rng RNG function p_rng RNG parameter
- Returns:
- 0 if successfull, a negative error code otherwise
void mbedtls_ecjpake_free | ( | mbedtls_ecjpake_context * | ctx ) |
void mbedtls_ecjpake_init | ( | mbedtls_ecjpake_context * | ctx ) |
int mbedtls_ecjpake_read_round_one | ( | mbedtls_ecjpake_context * | ctx, |
const unsigned char * | buf, | ||
size_t | len | ||
) |
Read and process the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes)
- Parameters:
-
ctx Context to use buf Pointer to extension contents len Extension length
- Returns:
- 0 if successfull, a negative error code otherwise
int mbedtls_ecjpake_read_round_two | ( | mbedtls_ecjpake_context * | ctx, |
const unsigned char * | buf, | ||
size_t | len | ||
) |
int mbedtls_ecjpake_self_test | ( | int | verbose ) |
int mbedtls_ecjpake_setup | ( | mbedtls_ecjpake_context * | ctx, |
mbedtls_ecjpake_role | role, | ||
mbedtls_md_type_t | hash, | ||
mbedtls_ecp_group_id | curve, | ||
const unsigned char * | secret, | ||
size_t | len | ||
) |
Set up a context for use.
- Note:
- Currently the only values for hash/curve allowed by the standard are MBEDTLS_MD_SHA256/MBEDTLS_ECP_DP_SECP256R1.
- Parameters:
-
ctx context to set up role Our role: client or server hash hash function to use (MBEDTLS_MD_XXX) curve elliptic curve identifier (MBEDTLS_ECP_DP_XXX) secret pre-shared secret (passphrase) len length of the shared secret
- Returns:
- 0 if successfull, a negative error code otherwise
int mbedtls_ecjpake_write_round_one | ( | mbedtls_ecjpake_context * | ctx, |
unsigned char * | buf, | ||
size_t | len, | ||
size_t * | olen, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Generate and write the first round message (TLS: contents of the Client/ServerHello extension, excluding extension type and length bytes)
- Parameters:
-
ctx Context to use buf Buffer to write the contents to len Buffer size olen Will be updated with the number of bytes written f_rng RNG function p_rng RNG parameter
- Returns:
- 0 if successfull, a negative error code otherwise
int mbedtls_ecjpake_write_round_two | ( | mbedtls_ecjpake_context * | ctx, |
unsigned char * | buf, | ||
size_t | len, | ||
size_t * | olen, | ||
int(*)(void *, unsigned char *, size_t) | f_rng, | ||
void * | p_rng | ||
) |
Generate and write the second round message (TLS: contents of the Client/ServerKeyExchange)
- Parameters:
-
ctx Context to use buf Buffer to write the contents to len Buffer size olen Will be updated with the number of bytes written f_rng RNG function p_rng RNG parameter
- Returns:
- 0 if successfull, a negative error code otherwise
Generated on Tue Jul 12 2022 12:52:51 by 1.7.2