Implementation of a cryptography aspect for EPOS:
WeŽll implement the simmetric cryptographer member of the crypto family (see design). Simple cryptography is too simple and easilly broken to be used in practice on a secure system, and assimetric cryptography, although more secure, has complex key exchanging requirements that we can not meet.

Considering simplicity of implementation, low memory and processor requirements - essential to a component to be used in an embedded system, we have decided to implement the RC5 algorithm. Legacy knowledge has also been considered here.

Implementation:

The filecrypt.xml contains the definition of the cryptography aspect family and it's interfaces. It should be placed into the config subdir in the epos directory, and after running the 'epos-newabs crypt' the following files will are automatically generated:

include/system/config.h.new
include/system/types.h.1.new
include/system/types.h.2.new
include/system/init_table.h.1.new
include/system/init_table.h.2.new

include/crypter.h
include/aspect/crypter/common.h
include/aspect/crypter/simple.h
include/aspect/crypter/simmetric.h
include/aspect/crypter/assimetric.h
src/aspect/crypter/crypter_common.cc
src/aspect/crypter/crypter_test.cc
src/aspect/crypter/simple.cc
src/aspect/crypter/simple_init.cc
src/aspect/crypter/simple_test.cc
src/aspect/crypter/simmetric.cc
src/aspect/crypter/simmetric_init.cc
src/aspect/crypter/simmetric_test.cc
src/aspect/crypter/assimetric.cc
src/aspect/crypter/assimetric_init.cc
src/aspect/crypter/assimetric_test.cc
src/aspect/crypter/makefile

The files in include/system must be integrated with the existing files in epos. After integrating those and implementing the simmetric member of the crypt family, we have these new files:

include/system/config.h
include/system/types.h
include/system/init_table.h

src/aspect/crypter/simmetric.cc
src/aspect/crypter/simmetric_init.cc
src/aspect/crypter/simmetric_test.cc

These files will also be needed by the simmetric member, they contain the RC5 implementation:
src/aspect/crypter/rc5.cpp
src/aspect/crypter/rc5.h
src/aspect/crypter/rc5_defs.h

Building:

??