Functions
trust_token.c File Reference
#include <openssl/bytestring.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/mem.h>
#include <openssl/sha.h>
#include <openssl/trust_token.h>
#include "internal.h"
Include dependency graph for trust_token.c:

Go to the source code of this file.

Functions

static int add_cbor_bytes (CBB *cbb, const uint8_t *data, size_t len)
 
static int add_cbor_int (CBB *cbb, uint64_t value)
 
static int add_cbor_int_with_type (CBB *cbb, uint8_t major_type, uint64_t value)
 
static int add_cbor_map (CBB *cbb, uint8_t size)
 
static int add_cbor_text (CBB *cbb, const char *data, size_t len)
 
static uint8_t get_metadata_obfuscator (const uint8_t *key, size_t key_len, const uint8_t *client_data, size_t client_data_len)
 
 STACK_OF (TRUST_TOKEN)
 
int TRUST_TOKEN_CLIENT_add_key (TRUST_TOKEN_CLIENT *ctx, size_t *out_key_index, const uint8_t *key, size_t key_len)
 
int TRUST_TOKEN_CLIENT_begin_issuance (TRUST_TOKEN_CLIENT *ctx, uint8_t **out, size_t *out_len, size_t count)
 
int TRUST_TOKEN_CLIENT_begin_redemption (TRUST_TOKEN_CLIENT *ctx, uint8_t **out, size_t *out_len, const TRUST_TOKEN *token, const uint8_t *data, size_t data_len, uint64_t time)
 
int TRUST_TOKEN_CLIENT_finish_redemption (TRUST_TOKEN_CLIENT *ctx, uint8_t **out_rr, size_t *out_rr_len, uint8_t **out_sig, size_t *out_sig_len, const uint8_t *response, size_t response_len)
 
void TRUST_TOKEN_CLIENT_free (TRUST_TOKEN_CLIENT *ctx)
 
TRUST_TOKEN_CLIENTTRUST_TOKEN_CLIENT_new (const TRUST_TOKEN_METHOD *method, size_t max_batchsize)
 
int TRUST_TOKEN_CLIENT_set_srr_key (TRUST_TOKEN_CLIENT *ctx, EVP_PKEY *key)
 
int TRUST_TOKEN_decode_private_metadata (const TRUST_TOKEN_METHOD *method, uint8_t *out_value, const uint8_t *key, size_t key_len, const uint8_t *nonce, size_t nonce_len, uint8_t encrypted_bit)
 
const TRUST_TOKEN_METHODTRUST_TOKEN_experiment_v1 (void)
 
const TRUST_TOKEN_METHODTRUST_TOKEN_experiment_v2_pmb (void)
 
const TRUST_TOKEN_METHODTRUST_TOKEN_experiment_v2_voprf (void)
 
void TRUST_TOKEN_free (TRUST_TOKEN *token)
 
int TRUST_TOKEN_generate_key (const TRUST_TOKEN_METHOD *method, uint8_t *out_priv_key, size_t *out_priv_key_len, size_t max_priv_key_len, uint8_t *out_pub_key, size_t *out_pub_key_len, size_t max_pub_key_len, uint32_t id)
 
int TRUST_TOKEN_ISSUER_add_key (TRUST_TOKEN_ISSUER *ctx, const uint8_t *key, size_t key_len)
 
void TRUST_TOKEN_ISSUER_free (TRUST_TOKEN_ISSUER *ctx)
 
static const struct trust_token_issuer_key_sttrust_token_issuer_get_key (const TRUST_TOKEN_ISSUER *ctx, uint32_t key_id)
 
int TRUST_TOKEN_ISSUER_issue (const TRUST_TOKEN_ISSUER *ctx, uint8_t **out, size_t *out_len, size_t *out_tokens_issued, const uint8_t *request, size_t request_len, uint32_t public_metadata, uint8_t private_metadata, size_t max_issuance)
 
TRUST_TOKEN_ISSUERTRUST_TOKEN_ISSUER_new (const TRUST_TOKEN_METHOD *method, size_t max_batchsize)
 
int TRUST_TOKEN_ISSUER_redeem (const TRUST_TOKEN_ISSUER *ctx, uint8_t **out, size_t *out_len, TRUST_TOKEN **out_token, uint8_t **out_client_data, size_t *out_client_data_len, uint64_t *out_redemption_time, const uint8_t *request, size_t request_len, uint64_t lifetime)
 
int TRUST_TOKEN_ISSUER_redeem_raw (const TRUST_TOKEN_ISSUER *ctx, uint32_t *out_public, uint8_t *out_private, TRUST_TOKEN **out_token, uint8_t **out_client_data, size_t *out_client_data_len, const uint8_t *request, size_t request_len)
 
int TRUST_TOKEN_ISSUER_set_metadata_key (TRUST_TOKEN_ISSUER *ctx, const uint8_t *key, size_t len)
 
int TRUST_TOKEN_ISSUER_set_srr_key (TRUST_TOKEN_ISSUER *ctx, EVP_PKEY *key)
 
TRUST_TOKENTRUST_TOKEN_new (const uint8_t *data, size_t len)
 
void TRUST_TOKEN_PRETOKEN_free (TRUST_TOKEN_PRETOKEN *pretoken)
 

Function Documentation

◆ add_cbor_bytes()

static int add_cbor_bytes ( CBB cbb,
const uint8_t data,
size_t  len 
)
static

Definition at line 615 of file trust_token.c.

◆ add_cbor_int()

static int add_cbor_int ( CBB cbb,
uint64_t  value 
)
static

Definition at line 610 of file trust_token.c.

◆ add_cbor_int_with_type()

static int add_cbor_int_with_type ( CBB cbb,
uint8_t  major_type,
uint64_t  value 
)
static

Definition at line 588 of file trust_token.c.

◆ add_cbor_map()

static int add_cbor_map ( CBB cbb,
uint8_t  size 
)
static

Definition at line 627 of file trust_token.c.

◆ add_cbor_text()

static int add_cbor_text ( CBB cbb,
const char *  data,
size_t  len 
)
static

Definition at line 621 of file trust_token.c.

◆ get_metadata_obfuscator()

static uint8_t get_metadata_obfuscator ( const uint8_t key,
size_t  key_len,
const uint8_t client_data,
size_t  client_data_len 
)
static

Definition at line 631 of file trust_token.c.

◆ STACK_OF()

STACK_OF ( TRUST_TOKEN  )

Definition at line 241 of file trust_token.c.

◆ TRUST_TOKEN_CLIENT_add_key()

int TRUST_TOKEN_CLIENT_add_key ( TRUST_TOKEN_CLIENT ctx,
size_t *  out_key_index,
const uint8_t key,
size_t  key_len 
)

Definition at line 171 of file trust_token.c.

◆ TRUST_TOKEN_CLIENT_begin_issuance()

int TRUST_TOKEN_CLIENT_begin_issuance ( TRUST_TOKEN_CLIENT ctx,
uint8_t **  out,
size_t *  out_len,
size_t  count 
)

Definition at line 205 of file trust_token.c.

◆ TRUST_TOKEN_CLIENT_begin_redemption()

int TRUST_TOKEN_CLIENT_begin_redemption ( TRUST_TOKEN_CLIENT ctx,
uint8_t **  out,
size_t *  out_len,
const TRUST_TOKEN token,
const uint8_t data,
size_t  data_len,
uint64_t  time 
)

Definition at line 295 of file trust_token.c.

◆ TRUST_TOKEN_CLIENT_finish_redemption()

int TRUST_TOKEN_CLIENT_finish_redemption ( TRUST_TOKEN_CLIENT ctx,
uint8_t **  out_rr,
size_t *  out_rr_len,
uint8_t **  out_sig,
size_t *  out_sig_len,
const uint8_t response,
size_t  response_len 
)

Definition at line 315 of file trust_token.c.

◆ TRUST_TOKEN_CLIENT_free()

void TRUST_TOKEN_CLIENT_free ( TRUST_TOKEN_CLIENT ctx)

Definition at line 162 of file trust_token.c.

◆ TRUST_TOKEN_CLIENT_new()

TRUST_TOKEN_CLIENT* TRUST_TOKEN_CLIENT_new ( const TRUST_TOKEN_METHOD method,
size_t  max_batchsize 
)

Definition at line 143 of file trust_token.c.

◆ TRUST_TOKEN_CLIENT_set_srr_key()

int TRUST_TOKEN_CLIENT_set_srr_key ( TRUST_TOKEN_CLIENT ctx,
EVP_PKEY key 
)

Definition at line 195 of file trust_token.c.

◆ TRUST_TOKEN_decode_private_metadata()

int TRUST_TOKEN_decode_private_metadata ( const TRUST_TOKEN_METHOD method,
uint8_t out_value,
const uint8_t key,
size_t  key_len,
const uint8_t nonce,
size_t  nonce_len,
uint8_t  encrypted_bit 
)

Definition at line 849 of file trust_token.c.

◆ TRUST_TOKEN_experiment_v1()

const TRUST_TOKEN_METHOD* TRUST_TOKEN_experiment_v1 ( void  )

Definition at line 30 of file trust_token.c.

◆ TRUST_TOKEN_experiment_v2_pmb()

const TRUST_TOKEN_METHOD* TRUST_TOKEN_experiment_v2_pmb ( void  )

Definition at line 62 of file trust_token.c.

◆ TRUST_TOKEN_experiment_v2_voprf()

const TRUST_TOKEN_METHOD* TRUST_TOKEN_experiment_v2_voprf ( void  )

Definition at line 46 of file trust_token.c.

◆ TRUST_TOKEN_free()

void TRUST_TOKEN_free ( TRUST_TOKEN token)

Definition at line 99 of file trust_token.c.

◆ TRUST_TOKEN_generate_key()

int TRUST_TOKEN_generate_key ( const TRUST_TOKEN_METHOD method,
uint8_t out_priv_key,
size_t *  out_priv_key_len,
size_t  max_priv_key_len,
uint8_t out_pub_key,
size_t *  out_pub_key_len,
size_t  max_pub_key_len,
uint32_t  id 
)

Definition at line 107 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_add_key()

int TRUST_TOKEN_ISSUER_add_key ( TRUST_TOKEN_ISSUER ctx,
const uint8_t key,
size_t  key_len 
)

Definition at line 402 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_free()

void TRUST_TOKEN_ISSUER_free ( TRUST_TOKEN_ISSUER ctx)

Definition at line 393 of file trust_token.c.

◆ trust_token_issuer_get_key()

static const struct trust_token_issuer_key_st* trust_token_issuer_get_key ( const TRUST_TOKEN_ISSUER ctx,
uint32_t  key_id 
)
static

Definition at line 449 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_issue()

int TRUST_TOKEN_ISSUER_issue ( const TRUST_TOKEN_ISSUER ctx,
uint8_t **  out,
size_t *  out_len,
size_t *  out_tokens_issued,
const uint8_t request,
size_t  request_len,
uint32_t  public_metadata,
uint8_t  private_metadata,
size_t  max_issuance 
)

Definition at line 459 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_new()

TRUST_TOKEN_ISSUER* TRUST_TOKEN_ISSUER_new ( const TRUST_TOKEN_METHOD method,
size_t  max_batchsize 
)

Definition at line 374 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_redeem()

int TRUST_TOKEN_ISSUER_redeem ( const TRUST_TOKEN_ISSUER ctx,
uint8_t **  out,
size_t *  out_len,
TRUST_TOKEN **  out_token,
uint8_t **  out_client_data,
size_t *  out_client_data_len,
uint64_t out_redemption_time,
const uint8_t request,
size_t  request_len,
uint64_t  lifetime 
)

Definition at line 643 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_redeem_raw()

int TRUST_TOKEN_ISSUER_redeem_raw ( const TRUST_TOKEN_ISSUER ctx,
uint32_t out_public,
uint8_t out_private,
TRUST_TOKEN **  out_token,
uint8_t **  out_client_data,
size_t *  out_client_data_len,
const uint8_t request,
size_t  request_len 
)

Definition at line 522 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_set_metadata_key()

int TRUST_TOKEN_ISSUER_set_metadata_key ( TRUST_TOKEN_ISSUER ctx,
const uint8_t key,
size_t  len 
)

Definition at line 433 of file trust_token.c.

◆ TRUST_TOKEN_ISSUER_set_srr_key()

int TRUST_TOKEN_ISSUER_set_srr_key ( TRUST_TOKEN_ISSUER ctx,
EVP_PKEY key 
)

Definition at line 426 of file trust_token.c.

◆ TRUST_TOKEN_new()

TRUST_TOKEN* TRUST_TOKEN_new ( const uint8_t data,
size_t  len 
)

Definition at line 82 of file trust_token.c.

◆ TRUST_TOKEN_PRETOKEN_free()

void TRUST_TOKEN_PRETOKEN_free ( TRUST_TOKEN_PRETOKEN pretoken)

Definition at line 78 of file trust_token.c.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:35