Drm

About: Drm License server responsible for generating licenses

Installation

If available in Hex, the package can be installed by adding drm to your list of dependencies in mix.exs:

def deps do
[
{:drm, "~> 0.2.0"}
]
end

Usage

config.exs config :drm, allow_burner_emails: true, validation_interval: 2000,
max_floats: 5, path: Path.expand("../priv/license", DIR),
refresh_interval: 2000, key: "yyyyy", salt: "xxxx"

config :drm, Encryption.Vault, ciphers: [ default: { Cloak.Ciphers.AES.GCM, tag: "AES.GCM.V1", key: Base.decode64!(System.get_env("ENCRYPTION_KEY")), iv_length: 12 } ]

Generating a license

iex> license = %{hash: "license-key12", meta: %{email: "demo@example.com", name: "licensee name"}, policy: %{name: " policy name", type: "free", expiration: nil, validation_type: "strict", checkin: false, checkin_interval: nil, max_fingerprints: nil, fingerprint: "umbrella-app-hash-id"}}

iex> License.create(license)

iex> License.fingerprint_valid?(license.policy.fingerprint)

This will also create an encrypted key file on the filesystem you can decide if/how you want to distribute it.

Build Status

Inline docs

Buy Me A Coffee

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/license.