Skip to content

Add custom client signature validation API#178

Open
kumaakh wants to merge 1 commit intoopen-license-manager:developfrom
Apra-Labs:client-signature-delegation
Open

Add custom client signature validation API#178
kumaakh wants to merge 1 commit intoopen-license-manager:developfrom
Apra-Labs:client-signature-delegation

Conversation

@kumaakh
Copy link
Copy Markdown

@kumaakh kumaakh commented Sep 7, 2025

Implements a flexible client signature (host ID) validation system that allows applications to provide their own host identification logic instead of relying solely on licensecc's built-in hardware fingerprinting.

Key features:

  • Added set_client_signature_validator() API function to register custom validators
  • Custom validator receives the client signature string from the license file
  • Validator returns boolean indicating whether the signature is valid
  • One-time-only registration to prevent runtime tampering (locked after first set)
  • Falls back to default licensecc hardware validation if no custom validator set
  • Maintains backward compatibility - existing code works without changes

API additions:

  • ClientSignatureValidator typedef for validator function signature
  • set_client_signature_validator() function in licensecc.h public API
  • Thread-safe implementation using static locked flag

Use cases:

  • Cloud/virtualized environments where hardware IDs change
  • Custom hardware identification schemes (e.g., USB dongles, TPM chips)
  • Enterprise environments with centralized license servers
  • Testing/development with mocked host validation

This feature enables more flexible licensing models while maintaining security through the one-time registration constraint.

Implements a flexible client signature (host ID) validation system that allows
applications to provide their own host identification logic instead of relying
solely on licensecc's built-in hardware fingerprinting.

Key features:
- Added set_client_signature_validator() API function to register custom validators
- Custom validator receives the client signature string from the license file
- Validator returns boolean indicating whether the signature is valid
- One-time-only registration to prevent runtime tampering (locked after first set)
- Falls back to default licensecc hardware validation if no custom validator set
- Maintains backward compatibility - existing code works without changes

API additions:
- ClientSignatureValidator typedef for validator function signature
- set_client_signature_validator() function in licensecc.h public API
- Thread-safe implementation using static locked flag

Use cases:
- Cloud/virtualized environments where hardware IDs change
- Custom hardware identification schemes (e.g., USB dongles, TPM chips)
- Enterprise environments with centralized license servers
- Testing/development with mocked host validation

This feature enables more flexible licensing models while maintaining security
through the one-time registration constraint.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant