self_encryption 0.1.0

This is Pre alpha, and not useful, no code worth looking at.
docs.rs failed to build self_encryption-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: self_encryption-0.29.2

self_encryption

Self encrypting files (convergent encryption plus obfuscation)

Travis build and test status Windows build status Code Coverage
Build Status Build status Coverage Status

| API Documentation | MaidSafe System Documention | MaidSafe web site | Safe Community site |

#Overview

A version of convergent encryption with an additional obfuscation step. This pattern allows secured data that can also be de-duplicated. This library presents an API that can be utilised in any application that provides POSIX like a filesystem interface, where it will deal very effectively with the content part of any data (in tests the parallelised approach here can actually be faster than reading/writing data as a single stream). It is important to realise two important aspects of this library:

  1. This library deals with file content only
  2. This library provides very secure data, but does return a data structure (DataMap) that in turn requires to be secured.

![image of self encryption] (https://github.com/dirvine/self_encryption/blob/master/img/self-encryption.png?raw=true)

ToDo list

  • Initial structure
  • Test set-up
  • Travis integration
  • Docs creation
  • Docs hosting (github.io)
  • Windows CI set-up (ci.AppVeyor.com)
  • Read/Write file in memory based buffer
  • API version 0.0.8
  • Implement disk based interface as example
  • Full unit tests in lib.rs
  • Integrations tests in tests module
  • Benchmark tests for varying file sizes from 1 byte to 10 M/b
  • API stable version 0.1.0
  • Add compression pre encrypt and post encrypt in encrypt and decrypt methods
  • Add task passing to allow cores to be lit up when handling chunks
  • Allow any size file
    • Replace sequencer with new struct and use BufferedStream to offload to disk (MemoryMapped file)
    • Clean up any cache chunks when disk space is low (start + now < 90%)
    • Store intermediate chunks when disk space is low (start + now < 90%)
  • Add another functor to constructor to allow storage query for chunks (not get)
  • Check for first last middle chunks on net and presume file stored
  • Coverage analysis (coveralls ?)
  • Uncomment benchmark tests read methods (require bench in beta channel or stabilised first)

#Video of the process [self_encryption process and use case video] (https://www.youtube.com/watch?v=Jnvwv4z17b4)