CoreFSIF
From Wikipedia, the free encyclopedia
CoreFSIF is a library originally developed by Avanticore, Inc.[1] for on-disk storage of transparently-encrypted data. CoreFSIF targets primarily embedded platforms such as Microsoft's Windows CE, but other platforms and compilers are supported as well. The library is also available on Linux platforms, and is in direct competition with the Advanced Authoring Format[1] and Microsoft's Compound File Binary Format.
Contents |
[edit] Overview
At its simplest, CoreFSIF implements containers (FSIFs) of optionally-encrypted virtual files, with no restrictions on what can be stored within those files. CoreFSIF emulates the file management layer of typical operating systems, exposing functionality similar to the low-level I/O functions in runtime libraries, therefore ensuring smooth integration with applications that already make use of the OS's file management API.
[edit] History and Motivation
CoreFSIF primarily targets embedded applications and specialized applications such as console games. These applications have to work with large amounts of data. In some instances, that data needs to be scattered across thousands of files, for various reasons. Allowing the OS to manage those files itself is often a suboptimal choice due to (a) the resulting fragmentation which is often significant, and (b) the lack of built-in encyption for stored data. CoreFSIF was developed to address those underlying problems. When migrated to CoreFSIF, applications that make use of low-level file I/O can continue to take advantage of functions such as open, read, write, glob, lseek, and so on, except these operations will work on FSIFs, special databases of virtual files, optionally encrypted.
[edit] FSIF Structure
Internally a FSIF file loosely resembles a FAT filesystem: its directory and file structure are represented as parallel streams in a so-called Interlaced I/O (IIO) layer, and encoded using [Patricia Trie|Patricia Tries] for optimum performance. Streams are handled via Reference counting, causing CoreFSIF to support virtual Hard links. Data can be transparently encrypted and decrypted at runtime using either Advanced Encryption Standard strong encryption or a faster stream cipher.
[edit] Library Features
At its core, CoreFSIF is a portable, yet exceptionally lean library for emulating a file system within a file. It is compatible with Win32, Windows CE, as well as X operating systems such as Linux and Solaris. It is written in C for maximum cross-platform portability, yet it also exposes a simple and intuitive C++ wrapper for more ambitious applications. CoreFSIF provides a fast and flexible platform for:
- Archiving files within a single file in a transparent manner.
- Transparently encrypting and decrypting managed files.
- Password-protecting virtual files and data.
- Providing a file manipulation API similar to the one provided by the OS (create, open, close, etc).
- Providing fast globbing (searching for files that match given patterns).
- Providing faster first-match-only globbing.
- Providing fast file caching.
- Supporting Unix-style Hard links on all platforms (including Win32, Windows CE).
- Supporting a virtually unlimited number of files open at the same time.
- Imposing virtually no limit on the number of managed files.
- Imposing no maximum file size.
- Supports two types of encryption, including the strong Advanced Encryption Standard (AES), ensuring that managed files and data stay safe and secure.
- The built-in high-performance ciphers can process up to 250 MB/sec on Core Duo architectures, making the secure storage process as transparent and seamless as possible.
CoreFSIF comes with full source code, documentation, an API reference, and build configurations for today's most popular compilers and operating systems. CoreFSIF is a commercial application. Its license allows users to build CoreFSIF into their own applications and redistribute it and/or the applications in binary form only. Due to its flexible design and portable implementation, CoreFSIF lends itself to a variety of both embedded and desktop applications.
[edit] Glossary
- FSIF - CoreFSIF's representation for databases of virtual files.
- IIO - Interlaced I/O Layer. An on-disk representation for parallel streams of data.
- Refcount - The term refers to reference counting, a technique for storing the number of references, pointers, or handles to a resource such as an object or block of memory.
- AES - The terms refers to the Advanced Encryption Standard, a strong encryption algorithm using 128-, 192- or 256-bit keys.
[edit] See also
[edit] References
The following references relate to CoreFSIF:
- Microsoft Compound Document File Format (PDF). OpenOffice.org CFBF description. Retrieved on 2006-05-22.
- Advanced Authoring Format Low-Level Container Specification (PDF). Microsoft Structured Storage version 3 specification (PDF). Retrieved on 2006-05-22.
[edit] Notes
[edit] External links
- Microsoft Snapshot Viewer
- Avanticore's official CoreFSIF web site
- Avanticore, Inc.