============================================================
 RockyGuard Library - Customer Package (Windows x64)
============================================================

This zip contains the Windows x64 build of RockyGuard. For the
Linux x64 build, download rockyguard-vX.Y.Z-linux-x64-customer.zip.
Both packages share the same C++ API and license-file format;
see docs/Customer_Documentation.txt for cross-platform coverage.

CONTENTS:

  include/rockyguard/       Public headers (verification only)
    rockyguard.h              Single-include convenience header
    version.h                 Library version macros (auto-generated)
    types.h                   Enums and result types
    license.h                 License data model
    license_verifier.h        License verification
    hardware_fingerprint.h    Machine hardware fingerprinting
    floating_client.h         Floating license client (Premium)
    export.h                  DLL export macros

  lib/static/
    rockyguard.lib          Static library (link directly)

  lib/shared/
    rockyguard.dll          Shared library (DLL)
    rockyguard.lib          Import library for DLL
    rockyguard.sig          Integrity signature (ship with DLL)
    libcrypto-3-x64.dll     OpenSSL runtime (ship with DLL)

  tools/
    license_keygen.exe              Generate your Ed25519/RSA keypair
    license_create.exe              Create end-user licenses
    license_verify.exe              Verify and inspect license files
    rg_fingerprint.exe              Print machine hardware fingerprint
    floating_server_example.exe     Floating license server (Premium tier only)
    floating_server_config.yaml     Sample server config file
    floating_client_example.exe     Floating license client (Premium tier only)

  deps/
    include/openssl/                Bundled OpenSSL headers (C++17)
    lib/libcrypto.lib               OpenSSL crypto -- link into your app
    lib/libssl.lib                  OpenSSL TLS -- link into your app

  examples/
    CMakeLists.txt                  Build script for the examples
    node_locked_example.cpp         Node-locked license verification example
    floating_client_example.cpp     Floating license client example (Premium)

  docs/
    Customer_Documentation.txt/pdf          Library documentation
    Customer_API_Reference.txt/pdf          API reference
    RockyGuard_License_Agreement.txt/pdf    Software License Agreement

QUICK START:

  1. Generate your keypair (once):
     tools\license_keygen.exe --private private.pem --public public.pem

  2. Create end-user licenses (vendor license required, CLI tool):
       tools\license_create.exe ^
         --vendor-license vendor_license.json ^
         --key private.pem --id "LIC-001" ^
         --licensee "User" --product "App" ^
         --fingerprint-value "<end user's fingerprint>" ^
         --expires "2027-12-31T23:59:59Z"

  3. In your end-user application (NO vendor license needed):
       LicenseVerifier verifier(PUBLIC_KEY);
       auto result = verifier.load("license.json");
       result = verifier.check_node_locked();

LINKING:

  Static (recommended):
    Add to CMake:
      target_link_libraries(your_app PRIVATE rockyguard)
    Link: lib/static/rockyguard.lib + OpenSSL::Crypto

  Shared (DLL):
    Define ROCKYGUARD_SHARED_LIB in your project
    Link: lib/shared/rockyguard.lib (import library)
    Ship: rockyguard.dll + rockyguard.sig + libcrypto-3-x64.dll with your app

PLATFORM:

  Windows 10 / Windows 11 x64, Windows Server 2019 / 2022 x64.
  Visual Studio 2019 or newer (MSVC 19.20+) to link the .lib/.dll.
  Visual Studio 2022 17.4+ recommended for C++17/20 front-end
  features used in the examples.
