home *** CD-ROM | disk | FTP | other *** search
-
-
- RkPlus Version Log
-
-
- ------------------------------------------------------------------------------
-
-
- RkPlus version 3.0 (4-February-1993)
-
- This is a MAJOR update to RkPlus. Although version 3.0 is still compatible
- with versions 2.0 to 2.4 (mainly through the use of the Rkp2Enc unit), I have
- made several changes to the way keys are generated (allowing the programmer to
- create programmes with more secure keys) :
-
- (1) I have added hooks for user-written Encode functions. An encode
- function (there should be 3) needs to take 3 strings, a byte and
- an integer; returning a word. You can cause RkPlus to use
- your encoding functions by calling the SetEncode procedure. If
- you want RkPlus to use version 2.x/compatible encoding functions,
- you should Use the Rkp2Enc unit (must be listed AFTER RkPlus). If
- you want to use the new 3.x encoding functions, you should Use the
- Rkp3Enc unit (must be listed AFTER RkPlus).
-
- (2) There is no longer an OwnerCode or ProgramCode in RkPlus. You may
- use any constants of your own devising in your encoding functions.
- To maintain compatibility with 2.x, the RkpEnc2 unit contains
- definitions for OwnerCode and ProgramCode. Rkp3Enc uses SetOwnerCode,
- SetProgCode and SetVerCode procedures to define its encryption
- constants.
-
- (3) It is now possibly to have expiring keys which have an expiration
- day (as well as month and year). Because the expiration date for
- a key is binary encrypted directly into the key number, adding
- an expiration day caused a decrease in the number of bits available
- to store the month and year. Therefore, when using expiration
- days the range of years is less than when using only expiration
- months and years. The boolean UseExpDays determines whether
- RkPlus will use expiration days (which will allow a 21 year range)
- or the version 2.x/compatible approach of expiration month and
- year only (which allows a 340 year range). UseExpDays defaults to
- True, but the Rkp2Enc unit sets it to False (for compatibility
- with version 2.x).
-
- I have also added BaseYear (default is 1990), which is used to determine the
- actual date as stored in a registration key. It is very important that
- UseExpDays and BaseYear are set to the same value in the programme that
- generates keys and in the programme that uses them. Otherwise, different
- expiration date values will be calculated.
-
- Due to naming conflicts with the error return values of RkPlus (in Rkp.Status)
- and the error return values of other units that I was developing, I have
- changed the way that errors are returned. This will allow compatibility among
- all units produced by Serious Cybernetics. Registration status is now returned
- in the boolean Rkp.Registered (in the Rkp record). The function RkpOK will
- return False if an error has occured and RkpError will return the value of the
- error that occured (as a word). Values of $0001 to $00FF indicate a Turbo
- Pascal (tm) error and are the same as errors returned by IoResult. Other
- errors will return higher values (see RKPLUS.DOC for details). RkPlus defines
- constants for the more common errors (also documented in RKPLUS.DOC). Due to
- these changes, references to Rkp.Status will need to be changed to
- Rkp.Register, RkpOK and/or RkpError where applicable.
-
- I (finally!) added the BrandRegInfo procedure (originally to be called
- CloneRegInfo). This procedure will brand an EXE file with the contents of the
- Rkp record.
-
- RkPlusVer is now a Function.
-
- VerifyKey and SaveRegInfo will no longer return an InvalidKey error, if if
- Rkp.Key equals '' or '000000000000' (instead, Rkp.Registered will be set to
- False).
-
- I have removed the variables KeyFile and Rkp.KeyPath to allow RkPlus to store
- this information internally as individual path, name and extension. This is
- necessary to allow the new BrandRegInfo to correctly use the key file name
- (with an extension of '.EXE'), without having to store duplicate information.
- The name of the key file is now accessed through a procedure and 2 functions.
- SetKeyFile will set the key file name (with optional path and extension),
- KeyFileName will return the full path, filename and extension of the key file
- and ExeFileName will return the path and filename of the key file (with the
- extension .EXE').
-
- I have also added the boolean UseExePath, to specify where RkPlus reads/writes
- key files when no path is specified (using SetKeyFile). If UseExePath is True
- (default), RkPlus will use the path from which the programme was executed. If
- UseExePath is False, RkPlus will use the current path. If a path is specified
- for the key file, UseExePath will be ignored.
-
- Programmes written with unregistered copies of RkPlus will now display the
- message "RkPlus 3.0 * Unlicenced Evaluation Copy" when they are first executed.
- There is no delay or beep. This is NOT intended as an annoyance, simply as a
- gentle reminder that RkPlus is ShareWare and should be registered if it is
- actually used for software development. Programmes written with registered
- copies of RkPlus will not display this message. (see REGISTER.DOC for more
- information about registering RkPlus).
-
- Versions 1.0/1.5 of Turbo Pascal for Windows and Version 7.0 of Borland Pascal
- (all modes) are now supported by RkPlus. In order to make the TPW version
- compatible with the other versions, it was necessary to create a
- "compatibility" unit (WDCompat) which is included in the RKP10TPU.ZIP,
- RKP15TPU.ZIP and RKP70TPU.ZIP archives. This unit is used automatically by the
- TPW version of RkPlus and requires no intervention on the part of the
- programmer.
-
- Finally, I have added the variable KeyFileCode, to help generate more secure
- key files. KeyFileCode will be used by RkPlus to "scramble" the key file
- (Important: KeyFileCode must be set to the same value in all programmes which
- will access the key file, or they will be incompatible). For more information
- on KeyFileCode, see the READ.ME file included with this archive.
-
-
- ------------------------------------------------------------------------------
-
-
- RkPlus version 2.4 (13-June-1991)
-
- Due to a conflict between the naming of the RkPlus Registration Record as "Reg"
- and the use of "Reg" in other programmes/units as a record for holding
- registers, I have changed the name to "Rkp". Therefore all occurances of
- "Reg." in your existing programmes will need to be replaced with "Rkp." This
- can be done easily in the IDE by pressing CTRL-Q then CTRL-A then typing "Reg."
- (without the quotes) and pressing ENTER then typing "Rkp." (without the quotes)
- and pressing ENTER then typing "GNU" (without the quotes) and pressing ENTER.
-
- Also, due to a bug in the encryption algorythm, programmes which had an
- OwnerCode and/or ProgramCode of less than 10 characters MAY have produced
- incorrect keys under certain conditions. This has been fixed in version 2.4,
- but new keys MAY have to be generated for such programmes. This problem did
- not exist (to the best of my knowledge) when the OwnerCode and ProgramCode were
- both longer than 10 characters.
-
- In addition, I fixed a bug where an expiration month of 12 (December) would
- produce an invalid key.
-
- Rkp.Status may now contain an additional result code. If any of the RkPlus
- procedures/functions return BadTPU in Rkp.Status, it indicates that the
- RKPLUS.TPU file may have been tampered with or may be corrupt. If this
- occurs, you should immediately replace the questionable .TPU file.
-
- The various demo programmes now demonstrate more secure methods of assigning
- the OwnerCode.
-
-
- ------------------------------------------------------------------------------
-
-
- RkPlus version 2.3 (4-April-1991)
-
- The KeyFile variable is now String[12], instead of String[8]. This will allow
- you to include an extension for the key file, as well as a name. If no
- extension is specified, the default extension (.REG) will be used.
-
- BadSystemDate is now a Function.
-
- I have also added the Integer KeyFileSize. If KeyFileSize is greater than 337
- (the minimum possible key file size), then any key files that are created will
- have random bytes appended to the end of the file to a length of KeyFileSize.
- KeyFileSize is ignored if it is less than or equal to 337 and RkPlus ONLY reads
- the first 337 bytes. Any random bytes, at the end of the file, are ignored.
-
- In addition, I have added the function GetKeyFileSize. This will return the
- size of the key file (defined in the KeyFile variable), including any random
- bytes that were appended to the end of the file due to KeyFileSize. A value of
- -1 indicates that the information was not available (most likely the file did
- not exist). GetKeyFileSize does NOT alter or use the Reg record.
-
-
- ------------------------------------------------------------------------------
-
-
- RkPlus version 2.2 (19-February-1991)
-
- Starting with version 2.2, I am including a Turbo Pascal (tm) 5.0 version of
- RkPlus. All versions of RkPlus (for TP50, TP55 and TP60) are now RKPLUS.TPU.
- The 5.0 version is contained in RK50PLUS.ZIP. The 5.5 version is contained in
- RK55PLUS.ZIP and the 6.0 version is contained in RK60PLUS.ZIP. All three
- archives are contained in the RkPlus distribution archive (RKPLUS22.ZIP)
-
- I am now including a help text file (RKPLUS.TXT), for those of you who are
- using any of the Turbo Power (tm) libraries. It is in a format usable by
- the Turbo Power (tm) MAKEHELP programme. The compiled RKPLUS.HLP file and
- Turbo Power (tm) POPHELP programme are available as RKHELP22.ZIP.
-
- Also, GetRegInfo will no longer set the Reg record to "garbage" when a key file
- is invalid or corrupt.
-
-
- ------------------------------------------------------------------------------
-
-
- RkPlus version 2.1 (9-February-1991)
-
-
- The only real change in version 2.1 is a reduction in the size of the TPU, due
- to rearranging some of the internal constants and disabling internal range
- checking. This release is primarily to allow for some changes and corrections
- to the documentation, and the addition of some new sample programmes.
-
- I have added 2 new sample programmes, that demonstrate a couple of additional
- methods of handling keys. RkpDemo2 has a built-in "brand" routine, instead of
- using an external "brand" programme or pre-generated key files. RkpDemo3 saves
- registration information in its own configuration file, instead of using a key
- file. For simplicity, all three demo programmes (RkpDemo, RkpDemo2 and RkpDemo3)
- are identical (except, of course, for key handling method) and use identical
- keys. Therefore, a key file (RKPDEMO.REG) created for RkpDemo can also be used
- by RkpDemo2 and registration key numbers created for RkpDemo can also be used
- by both RkpDemo2 and RkpDemo3.
-
- Also, I accidentally overlooked SetRegInfo, when I wrote the initial
- documentation. A description and examples of using SetRegInfo are now included
- in RKPLUS.DOC.
-
-
- ------------------------------------------------------------------------------
-
-
- RkPlus version 2.0 (8-February-1991)
-
-
- Initial release of RkPlus. This is a total re-write of the rKey programme. It
- features alphanumeric keys, multiple encryption strings, expiring keys, etc.
-
- If you don't feel that you need the enhanced features, a new smaller version
- of rKey is also available.
-
-
- ------------------------------------------------------------------------------
-
-
- RkPlus (c) 1991-92 Serious Cybernetics
- Rkp2Enc, Rkp3Enc (c) 1992 Serious Cybernetics
- rKey (c) 1990-92 Serious Cybernetics
- Turbo Pascal (c) 1983-89 Borland International
- MAKEHELP, POPHELP (c) 1989 TurboPower Software
-
-
-