RADLib
RADical C++ application framework
RADSecurity::LicenseManager Class Reference

Offline signed-license utilities for RADLib and RADLib applications. More...

#include <RADSecurity.h>

Static Public Member Functions

static RADCore::RADResult< std::string > machineFingerprint ()
 Returns a privacy-preserving host fingerprint for local license binding. More...
 
static RADCore::RADResult< std::string > publicKeyFingerprint (const std::string &publicKeyPem)
 Returns a SHA-256 fingerprint for a PEM public key. More...
 
static std::string licenseKindToString (LicenseKind kind)
 Converts a license kind to stable text. More...
 
static LicenseKind licenseKindFromString (const std::string &text)
 Parses stable license kind text. More...
 
static std::string licenseStatusToString (LicenseStatus status)
 Converts a license status to stable text. More...
 
static RADCore::RADJsonValue payloadToJson (const LicensePayload &payload)
 Serializes the signed payload in canonical form. More...
 
static RADCore::RADResult< LicensePayloadpayloadFromJson (const RADCore::RADJsonValue &value)
 Parses a payload object from JSON. More...
 
static std::string canonicalPayloadJson (const LicensePayload &payload)
 Returns canonical JSON bytes used for signing and verification. More...
 
static RADCore::RADResult< RADCore::RADJsonDocumentcreateSignedLicense (const LicensePayload &payload, const std::string &privateKeyPem, const std::string &issuerKeyId={})
 Creates a signed license JSON document with a hex RSA-SHA256 signature. More...
 
static RADCore::RADResult< RADCore::RADJsonDocumentcreateNodeLockedLicense (LicensePayload payload, const std::string &privateKeyPem, const std::string &machineFingerprintOverride={}, const std::string &issuerKeyId={})
 Creates a signed license bound to this machine or to machineFingerprintOverride. More...
 
static LicenseCheckResult verifySignedLicense (const RADCore::RADJsonDocument &document, const std::string &publicKeyPem, const LicenseCheckOptions &options={})
 Verifies a signed license document using publicKeyPem. More...
 
static LicenseCheckResult verifySignedLicense (const RADCore::RADJsonDocument &document, const std::vector< TrustedLicenseKey > &trustedKeys, const LicenseCheckOptions &options={})
 Verifies a signed license document by selecting the trusted key matching key_id. More...
 
static LicenseCheckResult verifySignedLicenseFile (const std::string &path, const std::string &publicKeyPem, const LicenseCheckOptions &options={})
 Loads and verifies a signed license file. More...
 
static LicenseCheckResult verifySignedLicenseFile (const std::string &path, const std::vector< TrustedLicenseKey > &trustedKeys, const LicenseCheckOptions &options={})
 Loads and verifies a signed license file using a trusted issuer key set. More...
 
static RADCore::RADResult< void > writeSignedLicenseFile (const std::string &path, const LicensePayload &payload, const std::string &privateKeyPem, const std::string &issuerKeyId={})
 Writes a signed license file. More...
 

Detailed Description

Offline signed-license utilities for RADLib and RADLib applications.

Member Function Documentation

◆ canonicalPayloadJson()

static std::string RADSecurity::LicenseManager::canonicalPayloadJson ( const LicensePayload payload)
static

Returns canonical JSON bytes used for signing and verification.

◆ createNodeLockedLicense()

static RADCore::RADResult<RADCore::RADJsonDocument> RADSecurity::LicenseManager::createNodeLockedLicense ( LicensePayload  payload,
const std::string &  privateKeyPem,
const std::string &  machineFingerprintOverride = {},
const std::string &  issuerKeyId = {} 
)
static

Creates a signed license bound to this machine or to machineFingerprintOverride.

◆ createSignedLicense()

static RADCore::RADResult<RADCore::RADJsonDocument> RADSecurity::LicenseManager::createSignedLicense ( const LicensePayload payload,
const std::string &  privateKeyPem,
const std::string &  issuerKeyId = {} 
)
static

Creates a signed license JSON document with a hex RSA-SHA256 signature.

◆ licenseKindFromString()

static LicenseKind RADSecurity::LicenseManager::licenseKindFromString ( const std::string &  text)
static

Parses stable license kind text.

◆ licenseKindToString()

static std::string RADSecurity::LicenseManager::licenseKindToString ( LicenseKind  kind)
static

Converts a license kind to stable text.

◆ licenseStatusToString()

static std::string RADSecurity::LicenseManager::licenseStatusToString ( LicenseStatus  status)
static

Converts a license status to stable text.

◆ machineFingerprint()

static RADCore::RADResult<std::string> RADSecurity::LicenseManager::machineFingerprint ( )
static

Returns a privacy-preserving host fingerprint for local license binding.

◆ payloadFromJson()

static RADCore::RADResult<LicensePayload> RADSecurity::LicenseManager::payloadFromJson ( const RADCore::RADJsonValue value)
static

Parses a payload object from JSON.

◆ payloadToJson()

static RADCore::RADJsonValue RADSecurity::LicenseManager::payloadToJson ( const LicensePayload payload)
static

Serializes the signed payload in canonical form.

◆ publicKeyFingerprint()

static RADCore::RADResult<std::string> RADSecurity::LicenseManager::publicKeyFingerprint ( const std::string &  publicKeyPem)
static

Returns a SHA-256 fingerprint for a PEM public key.

◆ verifySignedLicense() [1/2]

static LicenseCheckResult RADSecurity::LicenseManager::verifySignedLicense ( const RADCore::RADJsonDocument document,
const std::string &  publicKeyPem,
const LicenseCheckOptions options = {} 
)
static

Verifies a signed license document using publicKeyPem.

◆ verifySignedLicense() [2/2]

static LicenseCheckResult RADSecurity::LicenseManager::verifySignedLicense ( const RADCore::RADJsonDocument document,
const std::vector< TrustedLicenseKey > &  trustedKeys,
const LicenseCheckOptions options = {} 
)
static

Verifies a signed license document by selecting the trusted key matching key_id.

◆ verifySignedLicenseFile() [1/2]

static LicenseCheckResult RADSecurity::LicenseManager::verifySignedLicenseFile ( const std::string &  path,
const std::string &  publicKeyPem,
const LicenseCheckOptions options = {} 
)
static

Loads and verifies a signed license file.

◆ verifySignedLicenseFile() [2/2]

static LicenseCheckResult RADSecurity::LicenseManager::verifySignedLicenseFile ( const std::string &  path,
const std::vector< TrustedLicenseKey > &  trustedKeys,
const LicenseCheckOptions options = {} 
)
static

Loads and verifies a signed license file using a trusted issuer key set.

◆ writeSignedLicenseFile()

static RADCore::RADResult<void> RADSecurity::LicenseManager::writeSignedLicenseFile ( const std::string &  path,
const LicensePayload payload,
const std::string &  privateKeyPem,
const std::string &  issuerKeyId = {} 
)
static

Writes a signed license file.


The documentation for this class was generated from the following file: