Commit Graph

12 Commits

Author SHA1 Message Date
Jarek Kowalski
3323d17536 renamed storage.Storage to blob.Storage 2016-09-08 21:11:50 -07:00
Jarek Kowalski
baa8451403 added kopia.Connection as top-level API.
simplified vault API
2016-09-05 22:30:27 -07:00
Jarek Kowalski
7d066ae2ea godoc 2016-08-28 10:18:16 -07:00
Jarek Kowalski
6f5b5dc9a9 Enabled bundling by default. 2016-08-27 14:29:35 -07:00
Jarek Kowalski
940e63832d Moved ObjectID and BundledChildren out of EntryMetadata and into repofs.dirEntry.
Fixed metadata hashing of bundles.
2016-08-27 10:45:45 -07:00
Jarek Kowalski
cded7ba49b renamed fs.EntryMetadataReadCloser as fs.Reader 2016-08-26 21:31:51 -07:00
Jarek Kowalski
38fc47e2f1 Continuing the API cleanup, Created internal/dirstream, internal/mockfs, repo/repofs and upload packages. 2016-08-26 21:26:35 -07:00
Jarek Kowalski
bf40d91585 replaced storage.BlockExists() with storage.BlockSize() which returns additional info 2016-08-25 21:39:17 -07:00
Jarek Kowalski
381d3780dc simplified Storage.PutBlock() API - passing []byte instead of convoluted reader, this greatly simplifies crypto code in the Repository
removed Storage.Flush()
2016-08-24 22:18:22 -07:00
Jarek Kowalski
dcd7e0f76f godoc cleanup, hiding internal APIs 2016-08-21 08:28:40 -07:00
Jarek Kowalski
91d4346f67 replaced generated protobuf code with hand-written, switched back to JSON serialization, but preserving protobuf code structure.
The generated code leaked unclean concepts to public API.
2016-08-21 00:21:40 -07:00
Jarek Kowalski
e528b32748 Major refactoring of data formats to use protobuf instead of JSON. This is a breaking change to data formats, but hoping to stabilize soon.
This change removes lots of pointless string and custom format parsing code and instead relies on protobuf to do the thing. JSON is still an option thanks to proto3-generated output.

- Refactored ObjectID to use protobuf
- Indirect blocks to use protobuf (in the form of seek table)
- Added generic proto stream reader and writer
- ObjectIDFormat became proto enum

Also:

- fixed major issue where indirect object ID entries were not encrypted, since they were storing block IDs and not object IDs.
- dropped support for majority of formats, only supporting HMAC-{SHA256,SHA512,SHA512_384} hashes with AES256.
This produces object IDs of 32 or 64 characters long.
- changed how pretty-printing works for 'kopia show'
2016-08-20 16:59:10 -07:00