Elliptic curve J-PAKE. More...
#include "config.h"#include "ecp.h"#include "md.h"
Go to the source code of this file.
Data Structures | |
| struct | mbedtls_ecjpake_context |
Enumerations | |
| enum | mbedtls_ecjpake_role { MBEDTLS_ECJPAKE_CLIENT = 0, MBEDTLS_ECJPAKE_SERVER } |
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_check (const mbedtls_ecjpake_context *ctx) |
| Check if a context is ready 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. | |
Elliptic curve J-PAKE.
Definition in file ecjpake.h.
| enum mbedtls_ecjpake_role |
| int mbedtls_ecjpake_check | ( | const mbedtls_ecjpake_context * | ctx | ) |
Check if a context is ready for use.
| ctx | Context to check |
| 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).
| 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 |
| void mbedtls_ecjpake_free | ( | mbedtls_ecjpake_context * | ctx | ) |
Free a context's content.
| ctx | context to free |
| void mbedtls_ecjpake_init | ( | mbedtls_ecjpake_context * | ctx | ) |
Initialize a context (just makes it ready for setup() or free()).
| ctx | context to initialize |
| 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).
| ctx | Context to use | |
| buf | Pointer to extension contents | |
| len | Extension length |
| 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).
| ctx | Context to use | |
| buf | Pointer to the message | |
| len | Message length |
| int mbedtls_ecjpake_self_test | ( | int | verbose | ) |
Checkup routine.
| 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.
| 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 |
| 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).
| 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 |
| 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).
| 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 |
1.6.1