KKORINE (OPC) PVT. LTD.
KKORINE PVT LTD IDEA • INNOVATE • INSPIRE
SDK Version 1.0.0 • Universal Cross-Platform Licensing

Developer Documentation.

Complete technical guides, cryptographic anti-tamper specifications, and ready-to-use downloadable SDKs to protect, activate, and monetize your digital products across web, mobile, and native desktop environments.

Select Platform SDK
RSA Public Key

Embed this public key into your client application for zero-latency offline lease verification.

PHP Framework Reference

Laravel Licensing SDK

Drop-in middleware, Artisan activation command, and scheduled heartbeat sync.

Download Laravel SDK (.zip)

1 Configure Environment Variables

Add the credentials provided in your KKORINE Client Portal to your project's .env:

# KKORINE Licensing Authority

KKORINE_LICENSE_SERVER=https://kkorine.com

KKORINE_LICENSE_KEY=KKOR-XXXX-XXXX-XXXX-XXXX

KKORINE_LICENSE_EMAIL=purchaser@company.com

2 Initial Product Activation

Run the Artisan command in your server terminal or trigger it inside an installation wizard:

$ php artisan license:activate

3 Enforce License on Routes

Protect your application features using the included EnsureValidLicense middleware:

use Kkorine\License\Middleware\EnsureValidLicense;

Route::middleware([EnsureValidLicense::class])->group(function () {
    Route::get('/dashboard', [DashboardController::class, 'index']);
    Route::resource('billing', BillingController::class);
});

4 Schedule Automated Daily Heartbeat

In routes/console.php, schedule the background heartbeat to renew offline lease tokens automatically:

use Illuminate\Support\Facades\Schedule;
use Kkorine\License\KkorineLicenseClient;

Schedule::call(fn() => app(KkorineLicenseClient::class)->heartbeat())->daily();
JavaScript & TypeScript Runtime

Node.js / Express Client

Zero external dependencies. Uses native Node.js crypto for asymmetric RSA-2048 verification.

Download Node.js SDK (.zip)

1 Integration Example

const express = require('express');
const KkorineLicenseClient = require('./kkorine-license');

const licenseClient = new KkorineLicenseClient({
  serverUrl: 'https://kkorine.com',
  licenseKey: process.env.KKORINE_LICENSE_KEY,
  email: process.env.KKORINE_LICENSE_EMAIL
});

// 1. Initial activation on boot
await licenseClient.activate();

// 2. Automated background heartbeat timer (pings every 12 hours)
licenseClient.startHeartbeat(12);

// 3. Attach Express middleware
const app = express();
app.use(licenseClient.middleware());

app.get('/api/data', (req, res) => {
  res.json({ success: true, message: 'Authorized access' });
});

app.listen(3000, () => console.log('App running with active license guard.'));
Cross-Platform Mobile & Desktop

Flutter / Dart Client SDK

Secure lease storage, background timer, and ready-made license expired holding screen.

Download Flutter SDK (.zip)

1 Flutter Service Usage

import 'package:flutter/material.dart';
import 'kkorine_license_service.dart';
import 'license_expired_view.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  final license = KkorineLicenseService(serverUrl: 'https://kkorine.com');
  
  // Activate or verify existing offline lease
  await license.activate(
    licenseKey: 'KKOR-XXXX-XXXX-XXXX-XXXX',
    email: 'client@company.com',
  );

  runApp(MyApp(isLicensed: license.isLicensed, license: license));
}

class MyApp extends StatelessWidget {
  final bool isLicensed;
  final KkorineLicenseService license;

  const MyApp({Key? key, required this.isLicensed, required this.license}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: isLicensed 
        ? const HomeScreen() 
        : LicenseExpiredView(
            renewalUrl: license.renewalUrl,
            onRefresh: () => license.sendHeartbeat(),
          ),
    );
  }
}
Native Desktop Systems

Windows C# / .NET SDK

Hardware node-locking using Windows Registry Machine GUID and AppData encrypted lease persistence.

Download Windows SDK (.zip)

1 C# WinForms / WPF / Console Example

using Kkorine.Licensing;
using System.Diagnostics;

var licenseManager = new KkorineLicenseManager("https://kkorine.com");

// Verify offline lease status on application launch
if (!licenseManager.IsLicensed)
{
    Console.WriteLine("License not active. Activating...");
    bool ok = await licenseManager.ActivateAsync("KKOR-XXXX-XXXX-XXXX-XXXX", "client@company.com");

    if (!ok)
    {
        Console.WriteLine("Subscription expired or invalid.");
        // Open default browser to KKORINE customer renewal portal
        Process.Start(new ProcessStartInfo(licenseManager.GetRenewalUrl()) { UseShellExecute = true });
        return;
    }
}

Console.WriteLine("Authorized. Running application features...");
Single Page Applications (SPA)

Angular HTTP Interceptor

Intercepts HTTP 402/403 subscription expiry responses from your backend API.

Download Angular SDK (.zip)

1 Register Interceptor in app.config.ts

import { ApplicationConfig } from '@angular/core';
import { provideHttpClient, withInterceptorsFromDi, HTTP_INTERCEPTORS } from '@angular/common/http';
import { KkorineLicenseInterceptor } from './kkorine-license.interceptor';

export const appConfig: ApplicationConfig = {
  providers: [
    provideHttpClient(withInterceptorsFromDi()),
    {
      provide: HTTP_INTERCEPTORS,
      useClass: KkorineLicenseInterceptor,
      multi: true
    }
  ]
};
HTTP Protocol Specification

RESTful Licensing API Reference

Use standard HTTP POST requests to activate, verify, or sync heartbeats from Python, Go, Rust, or custom runtimes.

POST /api/v1/license/activate

Authenticates purchaser email and binds the runtime instance to the license key.

Request Body (JSON)
{
  "license_key": "KKOR-9B2F-4A81-9C3E-71D2",
  "email": "purchaser@company.com",
  "instance_identifier": "app.client.com",
  "fingerprint": "optional-hardware-hash",
  "platform": "laravel|node|flutter|windows|other",
  "client_version": "1.0.0"
}
Response Body (HTTP 200 OK)
{
  "success": true,
  "license_status": "active",
  "lease_token": "eyJhbGciOiJSU0EyNTYi...",
  "lease_payload": {
    "license_key": "KKOR-9B2F-4A81-9C3E-71D2",
    "status": "active",
    "expires_at": "2027-10-15T00:00:00Z",
    "lease_expires_at": "2026-10-19T13:30:00Z"
  },
  "lease_signature": "v9X8aZ...",
  "renewal_url": "https://kkorine.com/portal/licenses?renew=KKOR-9B2F-4A81-9C3E-71D2"
}
POST /api/v1/license/heartbeat

Periodic ping (recommended every 12 to 24 hours) to receive an updated cryptographic lease token.

{
  "license_key": "KKOR-9B2F-4A81-9C3E-71D2",
  "instance_hash": "a4f89b...",
  "client_version": "1.0.0"
}