The present invention comprises a method and apparatus for enforcing
software licenses for resource libraries such as an application program
interface (API), a toolkit, a framework, a runtime library, a dynamic link
library (DLL), an applet (e.g. a Java or ActiveX applet), or any other
reusable resource. The present invention allows the resource library to be
selectively used only by authorized end user software programs. The
present invention can be used to enforce a "per-program" licensing scheme
for a resource library whereby the resource library is licensed only for
use with particular software programs. In one embodiment, a license text
string and a corresponding license key are embedded in a program that has
been licensed to use a resource library. The license text string and the
license key are supplied, for example, by a resource library vendor to a
program developer who wants to use the resource library with an end user
program being developed. The license text string includes information
about the terms of the license under which the end user program is allowed
to use the resource library. The license key is used to authenticate the
license text string. The resource library in turn is provided with means
for reading the license text string and the license key, and for
determining, using the license key, whether the license text string is
authentic and whether the license text string has been altered. Resource
library functions are made available only to a program having an authentic
and unaltered license text string.
A invenção atual compreende um método e um instrumento para licenças reforçando do software para bibliotecas do recurso tais como um Application Program Interface (API), um toolkit, uma estrutura, uma biblioteca runtime, uma biblioteca de ligação dinâmica (DLL), um applet (um applet por exemplo de Java ou de ActiveX), ou todo o outro recurso reusável. A invenção atual permite que a biblioteca do recurso seja usada seletivamente somente por programas autorizados do software do usuário da extremidade. A invenção atual pode ser usada reforçar um esquema licenciando do "por-programa" para uma biblioteca do recurso por meio de que a biblioteca do recurso é licenciada somente para o uso com programas particulares do software. Em uma incorporação, uma corda de texto da licença e uma chave correspondente da licença são encaixadas em um programa que seja licenciado para usar uma biblioteca do recurso. A corda de texto da licença e a chave da licença são fornecidas, para o exemplo, por um vendedor da biblioteca do recurso a um colaborador do programa que queira usar a biblioteca do recurso com um programa de usuário da extremidade que está sendo tornado. A corda de texto da licença inclui a informação sobre os termos da licença sob que o programa de usuário da extremidade é permitido usar a biblioteca do recurso. A chave da licença é usada authenticate a corda de texto da licença. A biblioteca do recurso é fornecida por sua vez com os meios lendo a corda de texto da licença e a chave da licença, e determinando, usando a chave da licença, se a corda de texto da licença é authentic e se a corda de texto da licença estêve alterada. As funções de biblioteca do recurso são feitas disponíveis somente a um programa que tem uma corda de texto authentic e unaltered da licença.