An ugly blob container based on protobuf. The project is meant to be an educational PGP-Like tamper-proof file container.
Image courtesy of Blobby the Blobfish
- Container Features
- Versioned container
- Multiple blob support
- Multiple recipient support
- Content Features
- Blob compression (GZIP)
- Blob protection (Encryption)
- Integrity checking (HMAC)
- Authenticity checking (ECDSA signature)
- Blob mimetype indicator
- Blob tagging
- Blob location path (simulates FS hierarchy)
- Key-Management Features
- multiple RSA-OAEP symmetric-key protection
- Multiple PBKDF2 based symmetric key protection
- Optional PBKDF2 based master-symmetric-key derivation
- Blob Discovery Features
- Tag listing
- Directory listing
- Open plob by Id
- Open plob by path
- List blob by tags
- List blob by partial/full path
- BlobPool, a mutable intermediate container
- Import from blobfish container
- Export to blobfish container
- Recipient CRUD access
- Blob CRUD access
- Tag CRUD access
- Find blobs by path
- Find tags by value
- Find recipients by name or metadata
- Keystore password is 'password'
- Testing images taken from lastblobfish
$ hexdump -Cv -n 512 target/output.ugly
00000000 08 e8 e6 a5 b3 96 8f db b3 75 10 01 1a 99 0b 0a |.........u......|
00000010 ef 03 0a ec 03 30 82 01 e8 30 82 01 6f a0 03 02 |.....0...0..o...|
00000020 01 02 02 04 59 bb da 1f 30 0a 06 08 2a 86 48 ce |....Y...0...*.H.|
00000030 3d 04 03 02 30 5b 31 11 30 0f 06 03 55 04 0a 0c |=...0[1.0...U...|
00000040 08 42 6c 6f 62 66 69 73 68 31 0d 30 0b 06 03 55 |.Blobfish1.0...U|
00000050 04 0b 0c 04 54 65 73 74 31 37 30 35 06 03 55 04 |....Test1705..U.|
00000060 03 0c 2e 72 6f 6f 74 63 61 2e 62 6c 6f 62 66 69 |...rootca.blobfi|
00000070 73 68 2e 73 65 63 75 72 69 74 79 2e 65 64 69 70 |sh.security.edip|
00000080 65 72 6d 61 64 69 2e 67 69 74 68 75 62 2e 63 6f |ermadi.github.co|
00000090 6d 30 20 17 0d 31 37 30 39 31 35 31 33 34 38 31 |m0 ..17091513481|
000000a0 35 5a 18 0f 32 31 31 37 30 39 31 35 31 33 34 38 |5Z..211709151348|
000000b0 31 35 5a 30 5f 31 11 30 0f 06 03 55 04 0a 0c 08 |15Z0_1.0...U....|
000000c0 42 6c 6f 62 66 69 73 68 31 0d 30 0b 06 03 55 04 |Blobfish1.0...U.|
000000d0 0b 0c 04 54 65 73 74 31 3b 30 39 06 03 55 04 03 |...Test1;09..U..|
000000e0 0c 32 73 65 6e 64 65 72 2e 73 69 67 2e 62 6c 6f |.2sender.sig.blo|
000000f0 62 66 69 73 68 2e 73 65 63 75 72 69 74 79 2e 65 |bfish.security.e|
00000100 64 69 70 65 72 6d 61 64 69 2e 67 69 74 68 75 62 |dipermadi.github|
00000110 2e 63 6f 6d 30 76 30 10 06 07 2a 86 48 ce 3d 02 |.com0v0...*.H.=.|
00000120 01 06 05 2b 81 04 00 22 03 62 00 04 68 2a a6 64 |...+...".b..h*.d|
00000130 d7 d5 b1 11 50 c6 bc 28 8b 20 e4 37 27 d0 59 13 |....P..(. .7'.Y.|
00000140 25 4d 35 09 55 18 41 30 81 b7 67 74 32 5b 1d 3d |%M5.U.A0..gt2[.=|
00000150 6a fd 1e 50 0f ab 64 be 17 72 70 57 49 6c 75 60 |j..P..d..rpWIlu`|
00000160 93 ae f7 c5 1a 5e 82 f2 3e c2 fb a0 04 75 74 7a |.....^..>....utz|
00000170 27 b6 1a e9 9b 3e 1b 99 1d d4 62 96 e6 47 53 65 |'....>....b..GSe|
00000180 ad b0 ac 9c b6 ca eb 3d d2 21 65 93 30 0a 06 08 |.......=.!e.0...|
00000190 2a 86 48 ce 3d 04 03 02 03 67 00 30 64 02 30 6c |*.H.=....g.0d.0l|
000001a0 75 82 32 d4 9b 82 c5 3c d5 aa c1 17 e9 b3 e1 d5 |u.2....<........|
000001b0 df d6 fa c6 43 e1 5a 79 1b cd 2f 72 ae a9 f0 8a |....C.Zy../r....|
000001c0 e9 42 03 39 fb ba d3 a8 67 ef ce f5 85 91 42 02 |.B.9....g.....B.|
000001d0 30 39 99 05 49 5c 79 25 ad c7 23 43 c0 32 6b a4 |09..I\y%..#C.2k.|
000001e0 1a 5c a2 8d c3 a2 dc f2 fc aa 26 ac 4b bb f6 49 |.\........&.K..I|
000001f0 bc 8c 90 8d 43 75 30 12 78 96 a8 11 1a cc bd 36 |....Cu0.x......6|
00000200