Barracuda Application Server C/C++ Reference
Native APIs, integration guides, and platform interfaces
SharkTrustX_Config Struct Reference

Detailed Description

Required integration objects and provisioning information.

Initialize to zero, then set required members. All pointers and strings are borrowed until successful cleanup completes, including the config itself. Do not modify them while management or cleanup is active. See

  1. Configure the client
.

#include <SharkTrustX.h>

Public Attributes

HttpServer * server
 Required initialized server with running dispatcher. More...
 
BaTimer * timer
 Required dedicated timer using the server's mutex. More...
 
IoIntf * io
 Required private writable state store; see
  1. Store keys and enrollment safely
. More...
 
SharkSsl * clientSsl
 Required client TLS context with trusted CA list. More...
 
const char * portalDomain
 Required tokengen domain only, without scheme/path. More...
 
const unsigned char * zoneKey
 Required borrowed 32-byte tokengen zone key. More...
 
SharkTrustX_Proof proof
 Required tokengen proof callback. More...
 
const char * name
 Preferred hostname label, 1..63 ASCII letters/digits/hyphens; no leading/trailing hyphen. More...
 
const char * directoryUrl
 Required absolute HTTPS ACME directory in public builds. More...
 
const char * email
 Required contact email in public builds; ignored privately. More...
 
BaBool acceptTerms
 Must be TRUE publicly; ignored privately. More...
 
const char * interfaceName
 Optional bind address passed to both listener attempts; NULL selects all interfaces. More...
 
U16 port
 Required unused HTTPS port, 1..65535, normally 443. More...
 
SharkTrustX_Event onEvent
 Optional status callback, or NULL. More...
 
SharkTrustX_Name onName
 Optional confirmed-name callback, or NULL. More...
 
void * context
 Optional borrowed application pointer for both callbacks. More...
 

Member Data Documentation

◆ acceptTerms

BaBool SharkTrustX_Config::acceptTerms

Must be TRUE publicly; ignored privately.

◆ clientSsl

SharkSsl* SharkTrustX_Config::clientSsl

Required client TLS context with trusted CA list.

◆ context

void* SharkTrustX_Config::context

Optional borrowed application pointer for both callbacks.

◆ directoryUrl

const char* SharkTrustX_Config::directoryUrl

Required absolute HTTPS ACME directory in public builds.

Ignored in private builds, which derive https://portalDomain/acme/directory.

◆ email

const char* SharkTrustX_Config::email

Required contact email in public builds; ignored privately.

◆ interfaceName

const char* SharkTrustX_Config::interfaceName

Optional bind address passed to both listener attempts; NULL selects all interfaces.

A literal address restricts binding to its address family. Same meaning as HttpSharkSslServCon.

◆ io

IoIntf* SharkTrustX_Config::io

Required private writable state store; see

  1. Store keys and enrollment safely
.

◆ name

const char* SharkTrustX_Config::name

Preferred hostname label, 1..63 ASCII letters/digits/hyphens; no leading/trailing hyphen.

The portal assigns the final name. NULL allowed only for SharkCA IP-only enrollment.

◆ onEvent

SharkTrustX_Event SharkTrustX_Config::onEvent

Optional status callback, or NULL.

◆ onName

SharkTrustX_Name SharkTrustX_Config::onName

Optional confirmed-name callback, or NULL.

◆ port

U16 SharkTrustX_Config::port

Required unused HTTPS port, 1..65535, normally 443.

Shared by the IPv6 and IPv4 listener attempts.

◆ portalDomain

const char* SharkTrustX_Config::portalDomain

Required tokengen domain only, without scheme/path.

◆ proof

SharkTrustX_Proof SharkTrustX_Config::proof

Required tokengen proof callback.

◆ server

HttpServer* SharkTrustX_Config::server

Required initialized server with running dispatcher.

◆ timer

BaTimer* SharkTrustX_Config::timer

Required dedicated timer using the server's mutex.

◆ zoneKey

const unsigned char* SharkTrustX_Config::zoneKey

Required borrowed 32-byte tokengen zone key.