git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Encrypted repositories

From
Enrico Weigelt <enrico.weigelt@vnc.biz>
Date
Sep 6, 2012, 02:23 UTC
Message-ID
<f6682453-92bc-4f3b-9bf3-1910ca6fb307@zcs>
In-Reply-To
<fcbea7c0-b433-414b-abd3-b0e205a96fc5@zcs>
Hi,

I'm currently planning to implement an strong encryption in git (not like gitcrypt, but with encrypted blobs, directories, etc, directly in the core).

The idea goes like this:
* blobs are encrypted with their (original) content hash as
  encryption keys
* directory objects only hold randomized filenames and pointers
  to the encrypted blob (content hash of the encrypted data)
* new ext-directory objects are holding a mapping of the
  randomized file names to the real ones and the encryption keys,
  stored encrypted similar to the blobs
* ext-directory object is referenced by a special filename in
  the directory object.
* commit objects also hold an encrypted section (eg. uuencoded)
  with the ext-directory node's key, additional commit text, etc,
  itself encrypted with the repository key

This way, the lowlevel / bare repository operations (including remote sync and gc) should continue to work, while only actual access (eg. checkout or commit) need to be changed and have the repository key available.

What do you think about this approach ?
cu
-- 
Mit freundlichen Grüßen / Kind regards 

Enrico Weigelt 
VNC - Virtual Network Consult GmbH 
Head Of Development 

Pariser Platz 4a, D-10117 Berlin
Tel.: +49 (30) 3464615-20
Fax: +49 (30) 3464615-59

enrico.weigelt@vnc.biz; www.vnc.de 
Next: Junio C Hamano
Message 1 of 6 in “Encrypted repositories”
  1. Enrico WeigeltSep 6, 2012
  2. Junio C HamanoSep 6, 2012
  3. Enrico WeigeltSep 6, 2012
  4. Junio C HamanoSep 6, 2012
  5. Enrico WeigeltSep 8, 2012
  6. David AguilarSep 8, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.