Skip to content

edipermadi/blobfish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

blobfish

Overview

An ugly blob container based on protobuf. The project is meant to be an educational PGP-Like tamper-proof file container.

Blobby Twerkin

Image courtesy of Blobby the Blobfish

Features

  • 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

Blobfish Random Facts

Documentation

Test Resources

  • Keystore password is 'password'
  • Testing images taken from lastblobfish

Hexdump example of generated .ugly file

$ 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