1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-02-23 14:41:43 +00:00
No description
Find a file
Thomas Waldmann 6c7c2e2e40 cleanup crypto.pyx, make it easier to adapt to other modes
There were some small issues:

 a) it never called EVP_EncryptFinal_ex.
For CTR mode, this had no visible consequences as EVP_EncryptUpdate already yielded all ciphertext.
For cleanliness and to have correctness even in other modes, the missing call was added.

b) decrypt = encrypt hack
This is a nice hack to abbreviate, but it only works for modes without padding and without authentication.
For cleanliness and to have correctness even in other modes, the missing usage of the decrypt api was added.

c) outl == inl assumption
Again, True for CTR mode, but not for padding or authenticating modes.
Fixed so it computes the ciphertext / plaintext length based on api return values.

Other changes:
As encrypt and decrypt API calls are different even for initialization/reset, added a is_encrypt flag.

Defensive output buffer allocation. Added the length of one extra AES block (16bytes) so it would
work even with padding modes. 16bytes are needed because a full block of padding might get
added when the plaintext was a multiple of aes block size.

These changes are based on some experimental code I did for aes-cbc and aes-gcm.
While we likely won't ever want aes-cbc in attic (maybe gcm though?), I think it is cleaner
to not make too many mode specific assumptions and hacks, but just use the API as it
was meant to be used.
2015-03-03 19:19:28 +01:00
attic cleanup crypto.pyx, make it easier to adapt to other modes 2015-03-03 19:19:28 +01:00
docs Fix documentation 'snapshot' to 'checkpoint' 2014-12-25 13:23:30 +01:00
scripts Project rename 2013-07-09 20:14:18 +02:00
.gitattributes Added .gitattributes 2013-08-12 15:12:14 +02:00
.gitignore Remove some autogenerated files 2014-02-18 23:10:32 +01:00
.travis.yml travis: Enable python 3.4 2014-05-01 14:08:12 +02:00
AUTHORS chunker: optimized the barrel shift 2014-05-13 23:05:13 +02:00
CHANGES hashindex: Fix issue with file sizes larger than 2GB. 2015-01-06 22:28:04 +01:00
LICENSE Fix sorting of segment names to ignore NFS left over files. 2014-01-03 14:47:44 +01:00
MANIFEST.in Include missing pyx files in dist file. 2015-01-04 22:25:11 +01:00
README.rst Move website to attic-backup.org 2014-03-09 15:12:07 +01:00
setup.py Add MacPorts' path to the default openssl search path 2014-08-01 14:48:49 +02:00
tox.ini Add python 3.4 to the tox environment list 2014-05-03 14:21:10 +02:00
versioneer.py Start using versioneer for version numbers 2013-08-05 23:05:15 +02:00

What is Attic?
--------------
Attic is a deduplicating backup program. The main goal of Attic is to provide
an efficient and secure way to backup data. The data deduplication
technique used makes Attic suitable for daily backups since only changes
are stored.

Easy to use
~~~~~~~~~~~
Initialize backup repository and create a backup archive::

    $ attic init /usbdrive/my-backup.attic
    $ attic create -v /usbdrive/my-backup.attic::documents ~/Documents

Main features
~~~~~~~~~~~~~
Space efficient storage
  Variable block size deduplication is used to reduce the number of bytes 
  stored by detecting redundant data. Each file is split into a number of
  variable length chunks and only chunks that have never been seen before are
  compressed and added to the repository.

Optional data encryption
    All data can be protected using 256-bit AES encryption and data integrity
    and authenticity is verified using HMAC-SHA256.

Off-site backups
    Attic can store data on any remote host accessible over SSH.  This is
    most efficient if Attic is also installed on the remote host.

Backups mountable as filesystems
    Backup archives are mountable as userspace filesystems for easy backup
    verification and restores.

What do I need?
---------------
Attic requires Python 3.2 or above to work. Besides Python, Attic also requires 
msgpack-python and sufficiently recent OpenSSL (>= 1.0.0).
In order to mount archives as filesystems, llfuse is required.

How do I install it?
--------------------
::

  $ pip install Attic

Where are the docs?
-------------------
Go to https://attic-backup.org/ for a prebuilt version of the documentation.
You can also build it yourself from the docs folder.

Where are the tests?
--------------------
The tests are in the attic/testsuite package. To run the test suite use the
following command::

  $ fakeroot -u python -m attic.testsuite.run