OKAPI Kernel Simulator
Major changes - fixes in version 2.3
- The kernel has been changed to conform with the specifications described in document D12 regarding the message format
and the State Transition Representation.
- The new operation "Add SPv" was added to the User module to enable it to access more SPvs.
- The new operation "Create ACU" was added to the User and TTP modules. ACU creation involves the generation of
a new public - secret key pair for the new ACU.
- The GUI program of the User server was integrated into the server itself. This version of the User is only available for
the Windows95/NT platform.
Major changes - fixes in version 2.2
- Modification of the IMD protocol between the USER-FM and USER-GUI programs to support
the functionality enhancements in various operations as they are described below. The
specifications for the modified operations can be found in the
Imd01 Message Specification
Modifications document in Word 7.0 format.
- Transmission of billing information to the SPv during the order entitlement
- Enhancement of the Download - Execute operation. The user is presented
a list of all the ordered entitlements to choose from. Then the source
for the selected entitlement is downloaded directly from the SPv, executed
locally (if the user is running on a PC) and removed after the completion
of the operation. Before a user is allowed to access the entitlement, the
appropriate attributes such as the starting and ending dates and the threshold
permission on the terminal are validated.
- Enhancement of the Cancel Entitlement operation. The user is given
a list with the available ordered entitlements in the ACU to choose which
one to cancel.
- Implementation of encryption - decryption capabilities using the routines
from the PGPTools package. So far this has only been implemented on the
HP-UX platform. The usage of the different keys used is briefly described
- Each ACU is assigned a pair of public and secret keys that are only
known to the TTP and the ACU itself.
- Each SPv is assigned a pair of public and secret keys that only known
to the TTP and the SPv itself.
- Each ACU is also assigned a unique pair of public and secret Programmer
Distribution Keys (PDK) from each SPv that it can access. The PDK is transmitted
to the ACU using the ACU's public key that the SPv retrieves from the TTP.
- The transmission of the ACU's public key from the TTP to the SPv is
encrypted using the SPv's public key.
- The PDK is used for the encrypted transmission of the Service Key (SK)
from the SPv to the ACU which is unique to the SPv but can be the same
for different ACUs. The SK is used for the decryption of the transmitted
- Implementation of encryption of the source code for an entitlements
before transmission, using the SPv's Service Key. The encrypted program
can be decrypted by the ACU if the SK is present in the ACU.
- Transmission of the SPv's ID during SPv - TTP communication to enable
the encryption of the exchanged messages with the appropriate keys.
Furthermore all the servers i.e. the User, SPv and TTP server have been
ported to run on the PC.
Major changes - fixes in version 2.1
- Introduction of the ability to communicate with more than one Service
Providers. Each provider must be running on a different host since all
the SPvs use the same port for communication.
- Addition of the Download - Execute operation that allows the execution
of an ordered entitlement. The user enters the public name of an SPv (which
is currently the same as its internet address) and the ISBN code for an
ordered entitlement and the source for that entitlement is downloaded from
an HTTP server running at the same location with the SPv. If the user is
running on a PC the entitlement is executed after downloading is complete.
- Enhancement of the Order Entitlement operation. The user is given an
up-to-date list with the available entitlements from the SPv to choose.
- The Test_MsgTag( ) function was moved inside the Recv_Msg( ) function
so that messages can be received without the need for checking of the type
of message that is now being done transparently. However it can also be
checked explicitly if the need arises. This change has only been implemented
in the User Functional Module.