Portability

 

All toolkit modules are available in a variety of implementations, from totally portable to highly platform specific.

Totally portable implementations only assume the existence of a type of at least 8 bits and that a pointer can be used. Such implementations are designed to work on virtually any platform. Making more assumptions, such as the existence of a 32-bit type or pointers to bytes, gives improvements in performance and code size.

At the other extreme of portability, assembler versions of modules are written with a particular assembler in mind, but conversion programs are available to reformat the source. Use of standard calling conventions makes integration of assembler code a straightforward task.

Assembler modules are designed for maximal portability. For example, Intel implementations use only instructions available on all processors since the 386. More specially tuned modules targeted at particular processors are, of course, also available.

The CPKtec toolkit does not require any libraries. A version is available that uses operating-system provided malloc() and free() calls, but an independent version that allocates memory statically is also available.

Return to Technology page
 


Copyright © Cambridge Public Key Technology Ltd 2002-2006 CPKtec logo