Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Variable Expiration Dates on a Specific Executable

IP.com Disclosure Number: IPCOM000112124D
Original Publication Date: 1994-Apr-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 93K

Publishing Venue

IBM

Related People

Heyman, JM: AUTHOR [+3]

Abstract

A program is disclosed that allows the shipping of an executable program to a customer with an modifiable expiration date.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Variable Expiration Dates on a Specific Executable

      A program is disclosed that allows the shipping of an
executable program to a customer with an modifiable expiration date.

This invention allows distribution of an ASCII file that can be
updated by the user (with the correct information provided by the
programmer) without having to update the executable program.

      Currently companies derive revenue from shipping their
executables with a license option such that if the license is expired
(past the date allowed to execute) a message is printed, and the
program does not execute.  An implementation of this concept is known
as a timebomb, and this may involve a hardcoded date compiled into
the executable, making use of a license server that checks a file to
determine if the user and/or the license is valid, or having the
executable check the file directly.

     There is a need for a light weight license encoding strategy for
tools that are to be distributed to customers that avoids compiling
in the date (which would force the reshipping of the executable when
the expiration date has passed), and avoids forcing the customer to
purchase extra license server software.  The lightweight solution to
this problem is as follows:

      Ship an ASCII file that contains three fields per line.  The
fields are the executable name, the date that the program will expire
on, and an encrypted representation of that date.  The encrypted date
is the the number of seconds since the creation of UNIX* (known as
the epoch), converted into the equivalent ASCII digits, and a
different prime number is added to each digit so that a repeatable
pattern is not discernable.  This ensures that the encrypted
representation of the date is printable and that the new file can be
faxed or sent via e-mail to the customer without necessitating the
resending of the executable.

      Decoding of the encrypted expiration date is done with each
invocation of the executable.  The encrypted date is first read in
from the file, the series of prime numbers is then subtracted from
the associated digit in the encrypted date, the number is converted
from ASCII to an integer and is finally compared against the epoch
time currently registered on the machine running the application.  If
the epoch is less than or equal to the encrypted date, then the
application continues execution, if the encrypted date is less than
the epoch, then a message is generated stating that the license has
expired.

      The user can then contact the supplier for a new license file
which will...