logo
News | Project Presentation | Architecture | Data Structures | Security | References | Project Page

Architecture



As depicted above, the SecCube project consists of 5 main layers, each of them exporting its own API:



FileCube System API

fs_mkdir: create a given directory name in a SecCube
fs_rmdir: removes a given directory from a SecCube
fs_mkfile: creates a given file within a given path, in a SecCube
fs_rmfile: removes a given file from a SecCube
fs_list: lists all file in a given path in a given SecCube

ManageCube API
sc_init: initializes a default SecCube
sc_configure: configure SecCube's security settings
sc_put: writes a given record to the SecCube
sc_get: reads a given record from the SecCube.
sc_del: removes a given record from the SecCube.
sc_list: lists existing records of the SecCube.

BlockCube API

bc_createinit: creates a new INIT block
bc_createmap: creates a new MAP block, chains this MAP block to the previous MAP block, or to the INIT block.
bc_createdata: creates a new DATA block, and chain it to a free entry of a MAP block.
bc_adddata: creates a new DATA block and chain it to a previous DATA block.
bc_rmdata: delete a given DATA block and recursively delete all other DATA blocks chained to it.
bc_unlinkdata: unlink a given DATA block from its parent
bc_rmmap: delete a given MAP block and recursively delete all chained data.
bc_unlinkmap: unlink a given MAP block from its parent


DumpCube API

dc_readblock: read data from the media, and build the appropriate INIT, MAP or DATA block out of it.
dc_writeblock: writes an INIT, MAP or DATA block to the media.