Skip to content

About

The Barracuda App Server's resource files

Resources

Stars

8 stars

Watchers

4 watching

Forks

Latest commit

 

History

277 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BAS-Resources

The Barracuda App Server's resource files. See the build directory for build instructions.

Files

  • core

  • opcua

  • sparkplug - MQTT Sparkplug Library

    • sparkplug.lua - The library
    • sparkplug_b.proto - Sparkplug protobuf definition
  • mako - The Mako Server's Lua implementation

    • .config - the Mako Server's core logic
    • .openports - Logic for opening the server's listening ports
    • noapp.shtml - sent to browser when no apps are loaded
    • .lua
      • asyncresp.lua
      • loadconf.lua
      • log.lua
      • noapp.lua
      • rwfile.lua
      • psatpm.lua - Shared PSA TPM implementation; selected at build time for standalone Xedge
      • seed.lua
      • sqlutil.lua
  • xedge - Xedge's client and server code

    • .config -- Xedge standalone
    • .preload -- Xedge for Mako Server
    • index.html
    • README.md
    • .lua
      • 404.html
      • intro.html
      • ms-sso.lua
      • rwfile.lua
      • tpm.lua - Default softTPM startup and named-key API; replaced in PSA packages
      • xedge.lua
    • assets
      • tree.css
      • tree.js
      • xedge.css
      • xedge.js
    • login
      • index.lsp
    • private
      • command.lsp
    • templates
      • Various templates

Documents

TPM and default TLS identity

Mako and standalone Xedge use softTPM by default. Custom builds can use protected persistent keys through PSA Crypto while retaining the Lua TPM API. See build-time resource selection. Trusted PSA initialization sets ba.psa=true before validating the roots; missing or incompatible roots are fatal, without a softTPM fallback.

Both hosts generate their default self-signed certificate using a named TPM key. There are no bundled Mako/Xedge default private keys or leaf certificates. Configured certificates and ACME remain supported; clients must explicitly trust a self-signed identity. The shared core .certificate/cacert.shark remains the outbound TLS trust store for file-based hosts such as Mako. Standalone Xedge omits this file and requires BAS and Xedge to be compiled with BA_ENABLE_EMBEDDED_CA=1, using inc/cacert.h. Xedge-on-Mako uses Mako's trust configuration. These trust roots are separate from the default server identity.

Standalone Xedge deliberately encrypts xcfg.bin with a global configuration key so devices in the same OEM trust domain can share configuration. PSA uses SHA256(ba.tpm.globalkey("xedge.config",64)); the OEM must provision the same global root value and match derivation settings on those devices. Choosing two independent device-specific roots keeps the same Lua code but makes the file device-specific. The softTPM formula remains unchanged. Xedge hosted in Mako keeps its device-bound uniquekey policy. See provisioning and migration. Copying configuration never substitutes for retaining the PSA signing keys.

doc

Xedge REST API

Xedge REST API

ACME client

The shared Mako Server and Xedge Automatic Certificate Management Environment (ACME) client is under src/core/.lua/acme/, with host adapters in src/mako/ and src/xedge/.

mkCaCert.sh

# Creates rtl/.certificate/cacert.shark from curl's cacert.pem
wget https://curl.se/ca/cacert.pem
SharkSSLParseCAList -b cacert.shark cacert.pem
rm -f cacert.pem

About

The Barracuda App Server's resource files

Resources

Stars

8 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages