licensify 1.6.1 copy "licensify: ^1.6.1" to clipboard
licensify: ^1.6.1 copied to clipboard

A lightweight yet powerful license management solution for Flutter and Dart applications with cryptographically secure signatures

example/main.dart

// SPDX-FileCopyrightText: 2025 Karim "nogipx" Mamatkazin <nogipx@gmail.com>
//
// SPDX-License-Identifier: LGPL-3.0-or-later

import 'package:licensify/licensify.dart';

void main() async {
  // Generate RSA key pair
  print('Generating RSA keys...');
  final keys = RsaKeyGenerator.generateKeyPairAsPem(bitLength: 2048);

  print('Public key:');
  print(keys.publicKey);
  print('\nPrivate key:');
  print(keys.privateKey);

  // Create a license generator
  final generator = GenerateLicenseUseCase(privateKey: keys.privateKey);

  // Generate a license with a standard type
  print('\nGenerating standard license...');
  final license = generator.generateLicense(
    appId: 'com.example.app',
    expirationDate: DateTime.now().add(Duration(days: 30)),
    type: LicenseType.trial,
  );

  print('Generated license:');
  print('ID: ${license.id}');
  print('Type: ${license.type.name}');
  print('Expiration date: ${license.expirationDate}');
  print('Signature: ${license.signature}');

  // Generate a license with a custom type
  print('\nGenerating custom license type...');
  final enterpriseType = LicenseType('enterprise');
  final enterpriseLicense = generator.generateLicense(
    appId: 'com.example.app',
    expirationDate: DateTime.now().add(Duration(days: 365)),
    type: enterpriseType,
    features: {
      'maxUsers': 100,
      'supportLevel': 'premium',
      'modules': ['admin', 'analytics', 'reporting'],
    },
  );

  print('Generated enterprise license:');
  print('ID: ${enterpriseLicense.id}');
  print('Type: ${enterpriseLicense.type.name}');
  print('Features: ${enterpriseLicense.features}');
  print('Expiration date: ${enterpriseLicense.expirationDate}');

  // Verify license with public key
  print('\nVerifying licenses...');
  final validator = LicenseValidator(publicKey: keys.publicKey);

  final isStandardValid = validator.validateLicense(license);
  print('Standard license valid: $isStandardValid');

  final isEnterpriseValid = validator.validateLicense(enterpriseLicense);
  print('Enterprise license valid: $isEnterpriseValid');

  // Create an invalid license for demonstration
  print('\nVerifying tampered license...');
  final invalidLicense = License(
    id: license.id,
    appId: license.appId,
    // Change expiration date, which makes the signature invalid
    expirationDate: license.expirationDate.add(Duration(days: 1)),
    createdAt: license.createdAt,
    signature: license.signature,
    type: license.type,
    features: license.features,
    metadata: license.metadata,
  );

  final isInvalidSignatureValid = validator.validateSignature(invalidLicense);
  print('Tampered license signature valid: $isInvalidSignatureValid');
}
copied to clipboard
4
likes
0
points
604
downloads

Publisher

verified publisherdart.nogipx.dev

Weekly Downloads

2024.09.21 - 2025.04.05

A lightweight yet powerful license management solution for Flutter and Dart applications with cryptographically secure signatures

Repository (GitHub)
View/report issues

Topics

#license #security #validation #cryptography #web

Documentation

Documentation

License

unknown (license)

Dependencies

basic_utils, pointycastle, uuid

More

Packages that depend on licensify