F.A.Q.

We invite you to check out our answers to frequently asked questions.

What is Ellipter?

Ellipter is a powerful yet easy to use 100% managed .NET library for licensing applications using user friendly and secure license keys based on asymmetric elliptic curves encryption.

Yet, what it is doing exactly?

Ellipter is helping developers and software companies to create the licensing part of their software products.

More exactly Ellipter can help you to create and verify serials, register your users in your apps, add hardware binding to a serial and more.

How is Ellipter protecting me against cracks?

It isn't, Ellipter protects your products against keygens, a much more dangerous threat for you business.

Regarding cracks, our recommendation is to use a good obfuscator (ConfuserEx is our preferred one), and to not spend too much time and effort protecting your app against cracks - if the app is popular enough it will be craked anyway. Better spend this time on improving your product and making your users happy.

Still don't believe me? Read this story (or this one) or take a look at this example of a great software business without crack protection entirely. I've intentionally put here examples in the gaming industry - games are one of the most cracked products in the software business.

What is Ellipter UI?

Ellipter User Interface is an executable program which helps you to create Public and Private Keys, generate and validate serials.

What is a developer key?

It is a key that permits you to use Ellipter in a production environment and costs money, think of it as a registration code for Ellipter.

Where can I get a developer Key?

You can buy some on Ellipter's order page.

What is a trial key?

A trial key is a developer key, but with one essential limitation - you can use Ellipter only on your computer and you can't distribute your software if it is protected with Ellipter and that trial key. This key is free.

Where can I get a trial key?

Hm...

What is the Public Key?

The Public Key is a string used to verify a serial. It can't be used to generate a serial or to calculate the Private Key, so you can freely put it in you source code:

string developerName = "SeriousBit";
string developerKey = "1UASDASD595FLEA11QQ1TJFT2AJEZBGRWUQXTAFQ22JEBA";
SerialsManager manager = new SerialsManager(developerName, developerKey);
//set public key
manager.PublicKey = "WTCCV77CW4BTCCV7S6DJEPSJEPS2N7F92E";
//verify serial
bool isSerialValid = manager.IsValid(serial);

What is the Private Key?

The Private Key is used to create serials. You should keep it secret and safe, and never put it into your end-user product's source code. If a hacker will reverse your code and get your private key then he can create a Keygen for your product very easy.

SerialsManager manager = new SerialsManager();
//set private key
manager.PrivateKey = "3UFTLG36ENNWR9GVC4QGMTA";
string serial = manager.CreateSerial();

What is Serial Info?

Serial Info is a string containing any data you want, and which is embedded in the serial upon creation.

How do I create a serial with embedded Serial Info?

SerialsManager manager = new SerialsManager();
manager.PrivateKey = "3UFTLG36ENNWR9GVC4QGMTA";
string info = "ELL1";
string serial = manager.CreateSerial(SerialInfo: info);

How to read the Serial Info?

SerialsManager manager = new SerialsManager();
manager.PublicKey = "WTCCV77CW4BTCCV7S6DJEPSJEPS2N7F92E";
string info = manager.GetInfo(serial);

Can Ellipter create time-limited serials?

Yes, Serial Info can contain expiration dates or you can use the TimeBomb helper.

How do I create a time-limited serial?

SerialsManager manager = new SerialsManager();
manager.PrivateKey = "3UFTLG36ENNWR9GVC4QGMTA";
DateTime expDate = new DateTime(2013, 01, 01);
string serial = manager.CreateSerial(expirationDate: expDate);

How do I read an expiration date?

SerialsManager manager = new SerialsManager();
manager.PublicKey = "WTCCV77CW4BTCCV7S6DJEPSJEPS2N7F92E";
DateTime expirationDate = manager.GetDate(serial);

How can I blacklist a serial?

Use SerialsManager.BlackList with an ID/serial you no longer trust.

What is Hardware Binding?

Binding a serial to machine information retrieved via MachineInfoReader.

How do I read a computer's info?

MachineInfoReader reader = new MachineInfoReader();
string cpuId = reader.ProcessorId;

How do I create a serial bound to hardware?

var reader = new MachineInfoReader();
string info = reader.ProcessorId;
string serial = manager.CreateSerial(SerialInfo: info);

How do I verify a hardware-bound serial?

string info = manager.GetInfo(serial);
if(info != reader.ProcessorId)
{
    Console.WriteLine("Serial invalid on this machine");
}

Why my generated serials are so long?

Most likely because of too much Serial Info, try to minimize it. Sometimes it is better to embed a CRC instead (calculate it with Crc16 or Crc32).

Can I make trials using Ellipter?

Of course yes, would we put this question here if you couldn't? :) With Ellipter you can make two kinds of trials:

And also it is possible to combine them.

How should I use the TimeBomb class?

TimeBomb bomb = new TimeBomb(15, new Guid("{34B23D72-B135-4615-B253-3813B6A1FD71}"));
bomb.Update();
if(bomb.IsExpired)
{
    if(bomb.IsHacked)
    {
        // take action
    }
    return;
}
ShowMessage(string.Format("Your trial expires in {0} days.", bomb.DaysLeft));

How should I use the UsageBomb class?

UsageBomb bomb = new UsageBomb(30, false, new Guid("{34B23D72-B135-4615-B253-3813B6A1FD71}"));
bomb.Update();
if(bomb.IsExpired)
{
    if(bomb.IsHacked)
    {
        // take action
    }
    return;
}
ShowMessage(string.Format("Your trial expires after {0} product runs.", bomb.UsageLeft));

Where are stored TimeBomb's and UsageBomb's records?

In Windows registry, the exact place depends on the GUID provided in their constructors.

Can I read various hardware IDs with Ellipter?

Yes, use MachineInfoReader for that.

What is SeriousBit.Ellipter.Pcl.dll library for?

It is the portable (PCL) build compatible with Windows Phone, Silverlight, Mono, Unity3D, etc.

How do I contact support?

Email us via contact page and we'll assist.

What Now?