ndn-lite
Data Structures | Typedefs | Functions
ndn-lite-default-ecc-impl.c File Reference
#include "ndn-lite-default-ecc-impl.h"
#include "ndn-lite-default-sha-impl.h"
#include "sec-lib/tinycrypt/tc_hmac.h"
#include "sec-lib/tinycrypt/tc_ecc_dh.h"
#include "sec-lib/tinycrypt/tc_constants.h"
#include "../../ndn-lite-ecc.h"
#include "../../ndn-lite-sha.h"
#include "../../ndn-lite-sec-utils.h"
#include "../../../ndn-constants.h"
#include "../../../ndn-error-code.h"
#include "../../../ndn-enums.h"
#include <string.h>

Data Structures

struct  uECC_SHA256_HashContext
 

Typedefs

typedef struct uECC_SHA256_HashContext uECC_SHA256_HashContext
 

Functions

static void _init_sha256 (const uECC_HashContext *base)
 
static void _update_sha256 (const uECC_HashContext *base, const uint8_t *message, unsigned message_size)
 
static void _finish_sha256 (const uECC_HashContext *base, uint8_t *hash_result)
 
uint32_t ndn_lite_default_ecc_get_pub_key_size (const struct abstract_ecc_pub_key *pub_key)
 
uint32_t ndn_lite_default_ecc_get_prv_key_size (const struct abstract_ecc_prv_key *prv_key)
 
const uint8_t * ndn_lite_default_ecc_get_pub_key_value (const struct abstract_ecc_pub_key *pub_key)
 
int ndn_lite_default_ecc_load_pub_key (struct abstract_ecc_pub_key *pub_key, const uint8_t *key_value, uint32_t key_size)
 
int ndn_lite_default_ecc_load_prv_key (struct abstract_ecc_prv_key *prv_key, const uint8_t *key_value, uint32_t key_size)
 
int ndn_lite_default_ecc_set_rng (ndn_rng_impl rng)
 
int ndn_lite_default_ecc_dh_shared_secret (const struct abstract_ecc_pub_key *pub_abs_key, const struct abstract_ecc_prv_key *prv_abs_key, uint8_t curve_type, uint8_t *output, uint32_t output_size)
 
int ndn_lite_default_ecc_make_key (struct abstract_ecc_pub_key *pub_abs_key, struct abstract_ecc_prv_key *prv_abs_key, uint8_t curve_type)
 
int ndn_lite_default_ecdsa_verify (const uint8_t *input_value, uint32_t input_size, const uint8_t *sig_value, uint32_t sig_size, const struct abstract_ecc_pub_key *abs_key, uint8_t ecdsa_type)
 
int ndn_lite_default_ecdsa_sign (const uint8_t *input_value, uint32_t input_size, uint8_t *output_value, uint32_t output_max_size, const struct abstract_ecc_prv_key *abs_key, uint8_t ecdsa_type, uint32_t *output_used_size)
 
void ndn_lite_default_ecc_load_backend (void)
 

Typedef Documentation

◆ uECC_SHA256_HashContext

Function Documentation

◆ _finish_sha256()

static void _finish_sha256 ( const uECC_HashContext base,
uint8_t *  hash_result 
)
static

◆ _init_sha256()

static void _init_sha256 ( const uECC_HashContext base)
static

◆ _update_sha256()

static void _update_sha256 ( const uECC_HashContext base,
const uint8_t *  message,
unsigned  message_size 
)
static

◆ ndn_lite_default_ecc_dh_shared_secret()

int ndn_lite_default_ecc_dh_shared_secret ( const struct abstract_ecc_pub_key pub_abs_key,
const struct abstract_ecc_prv_key prv_abs_key,
uint8_t  curve_type,
uint8_t *  output,
uint32_t  output_size 
)
Note
Current default backend implementation (i.e., tinycrypt) only supports curve type secp256r1.

◆ ndn_lite_default_ecc_get_prv_key_size()

uint32_t ndn_lite_default_ecc_get_prv_key_size ( const struct abstract_ecc_prv_key prv_key)

◆ ndn_lite_default_ecc_get_pub_key_size()

uint32_t ndn_lite_default_ecc_get_pub_key_size ( const struct abstract_ecc_pub_key pub_key)

◆ ndn_lite_default_ecc_get_pub_key_value()

const uint8_t* ndn_lite_default_ecc_get_pub_key_value ( const struct abstract_ecc_pub_key pub_key)

◆ ndn_lite_default_ecc_load_backend()

void ndn_lite_default_ecc_load_backend ( void  )

◆ ndn_lite_default_ecc_load_prv_key()

int ndn_lite_default_ecc_load_prv_key ( struct abstract_ecc_prv_key prv_key,
const uint8_t *  key_value,
uint32_t  key_size 
)

◆ ndn_lite_default_ecc_load_pub_key()

int ndn_lite_default_ecc_load_pub_key ( struct abstract_ecc_pub_key pub_key,
const uint8_t *  key_value,
uint32_t  key_size 
)

◆ ndn_lite_default_ecc_make_key()

int ndn_lite_default_ecc_make_key ( struct abstract_ecc_pub_key pub_abs_key,
struct abstract_ecc_prv_key prv_abs_key,
uint8_t  curve_type 
)
Note
Current default backend implementation (i.e., tinycrypt) only supports curve type secp256r1.

◆ ndn_lite_default_ecc_set_rng()

int ndn_lite_default_ecc_set_rng ( ndn_rng_impl  rng)

◆ ndn_lite_default_ecdsa_sign()

int ndn_lite_default_ecdsa_sign ( const uint8_t *  input_value,
uint32_t  input_size,
uint8_t *  output_value,
uint32_t  output_max_size,
const struct abstract_ecc_prv_key abs_key,
uint8_t  ecdsa_type,
uint32_t *  output_used_size 
)

◆ ndn_lite_default_ecdsa_verify()

int ndn_lite_default_ecdsa_verify ( const uint8_t *  input_value,
uint32_t  input_size,
const uint8_t *  sig_value,
uint32_t  sig_size,
const struct abstract_ecc_pub_key abs_key,
uint8_t  ecdsa_type 
)