I'm looking at using either git-crypt or transcrypt to "transparently" encrypt a few secret files in a private github repository, using a symmetric key.

Separate from the debate of whether this should actually be done or not, I am wondering if one of these tools appears to be notably more insecure or carry more concerning risk vs the other.

Here's the primary security differences I've noticed:


  • is using c++ in combination with openssl c++ libraries to perform its functions and encryption/decryption at a lower level than transcrypt
    • This sounds like the kind of scenario where security vulnerabilities can be introduced by coding something incorrectly (as in some git-crypt code is incorrect, not the openssl library code), which seems to be where encryption products' weak points are (vs the underlying math actually being broken), but I don't have the expertise to evaluate the git-crypt code for this concern myself.
  • is made of mostly 6-9 year old code at the time of this writing.
    • So is it possibly using old vulnerable openssl libraries or unfavored security algorithms?


  • is a bash script that simply calls openssl from the command line for all crypto-related things.
    • So if it's relying on openssl cli commands and doing much less "roll your own" crypto-related implementation, this sounds more secure, although I'm assuming some logic errors/vulnerabilities could still be introduced.
  • is currently hard-coded to use MD5 in some capacity.
    • I don't understand what it's being used for, I just know that MD5 has not been in favor for a number of years, so this sounds like a negative thing, although I'm not sure how bad it is.
    • It's under active development to add support for PBKDF2 so maybe if they do that, this negative mark goes away.
  • Your understanding is not correct. Using library is namely the opposite of "roll your own".
    – mentallurg
    Commented Apr 4, 2023 at 6:48
  • @mentallurg which makes this a good question! Commented May 8 at 17:04
  • In addition to the issues you mention, the git crypt documentation mentions another important security consideration: It uses a hash of the file, which reduces the inherent risk that the same file must always encrypt to the same ciphertext. This opens in my mind the question of how any transparent encryption system can avoid the many challenges that even encrypted and salted password databases face when compromised. Perhaps either system should address those, too. Commented May 8 at 17:13
  • @JosiahYoder: "which makes this a good question! - What do you mean? The both methods use openssl library. The author doesn't understand that.
    – mentallurg
    Commented May 9 at 10:32
  • @JosiahYoder: "This opens in my mind the question of how any transparent encryption system..." - I don't understand how is this comment related to the question. If you have a question, just post it as a question.
    – mentallurg
    Commented May 9 at 10:35


You must log in to answer this question.

Browse other questions tagged .