]> Nutra Git (v2) - gamesguru/git-remote-gcrypt.git/log
gamesguru/git-remote-gcrypt.git
12 years agoMerge branch 'better_signature_validation' of https://github.com/jburnham/git-remote...
Joey Hess [Thu, 19 Sep 2013 17:00:58 +0000 (13:00 -0400)]
Merge branch 'better_signature_validation' of https://github.com/jburnham/git-remote-gcrypt

12 years agoimprove docs
Joey Hess [Thu, 19 Sep 2013 16:27:15 +0000 (12:27 -0400)]
improve docs

12 years ago--check option to see if a repo exists and can be decrypted
Joey Hess [Thu, 19 Sep 2013 16:03:33 +0000 (12:03 -0400)]
--check option to see if a repo exists and can be decrypted

This is to allow programs to determine if a repo uses gcrypt, per #6.

Since this program already knows the name of the manifest file and how to
download it and decrypt it, it makes sense to do the check here rather than
in, eg, git-annex.

12 years agoBetter signature validation for subkeys.
Justin Burnham [Thu, 19 Sep 2013 06:27:32 +0000 (23:27 -0700)]
Better signature validation for subkeys.

12 years agoadd remote.<name>.gcrypt-signingkey config
Joey Hess [Tue, 17 Sep 2013 19:30:25 +0000 (15:30 -0400)]
add remote.<name>.gcrypt-signingkey config

This is needed by git-annex assistant when it sets up a gcrypt repository,
to ensure that the gpg key it was asked to use to encrypt the repo is the
same key used to sign it. If it's not, pulling from the repo won't work,
due to git-remote-gcrypt's "Only accepting signatories" check.

The user may have a global user.signingkey setting (I do), but be setting
up a different special-purpose key for encrypting their git repo. The
git-annex assistant cannot mess with the global value, so needs this to
override it.

12 years agoset --trust-model=always when encrypting
Joey Hess [Mon, 16 Sep 2013 19:45:10 +0000 (15:45 -0400)]
set --trust-model=always when encrypting

Otherwise gpg may prompt to verify if we want to encrypt to users who
do not have a defined trust level. But, the participants setting
explicitly listed them, so we know we want to encrypt to them.

closes #3

12 years agoREADME: Don't mention keyring files, it's not relevant anymore
root [Wed, 13 Mar 2013 06:28:41 +0000 (23:28 -0700)]
README: Don't mention keyring files, it's not relevant anymore

12 years agoRemove deprecated /G.XxX.. repository "url fragments" (previously autofixed)
root [Fri, 8 Mar 2013 12:55:40 +0000 (04:55 -0800)]
Remove deprecated /G.XxX.. repository "url fragments" (previously autofixed)

12 years agoRemove deprecated gcrypt::ssh:// (use rsync instead, previously autofixed)
root [Tue, 5 Mar 2013 08:29:21 +0000 (08:29 +0000)]
Remove deprecated gcrypt::ssh:// (use rsync instead, previously autofixed)

We need to remove this since git handles ssh:// URLs already. With this
change, we now use the git backend for these.

12 years agoRemove deprecated config gcrypt.keyring (use gcrypt.participants or default)
root [Thu, 14 Mar 2013 08:04:57 +0000 (12:04 +0400)]
Remove deprecated config gcrypt.keyring (use gcrypt.participants or default)

12 years agoSimplify by replacing echo_kill with a pipefail function
root [Sat, 9 Mar 2013 06:38:10 +0000 (14:38 +0800)]
Simplify by replacing echo_kill with a pipefail function

12 years agoUse directory in /tmp for temporary files
root [Sat, 9 Mar 2013 21:44:26 +0000 (04:44 +0700)]
Use directory in /tmp for temporary files

Using a standard directory for temporaries buys us performance when the
user wants it (has configured tmpfs for /tmp) and configurability
(accepts TMPDIR=).

Moving /pack to a temporary directory gives safe concurrent remote
repacks.

12 years agoAdd license header and the text of the GNU GPL
root [Sun, 3 Mar 2013 08:02:43 +0000 (09:02 +0100)]
Add license header and the text of the GNU GPL

12 years agoUse a longer pack key
root [Sun, 3 Mar 2013 08:02:43 +0000 (09:02 +0100)]
Use a longer pack key

There should be no difference if we use 32 random bytes or more, since
GPG's longest symmetric key is 32 bytes, but to just remove any doubt we
use a longer random passphrase.

13 years agoEncrypt and hash the new packfile streamingly
root [Fri, 25 Jan 2013 03:36:22 +0000 (10:36 +0700)]
Encrypt and hash the new packfile streamingly

13 years agoSimplify the use of the object list file
root [Sun, 25 Nov 2012 21:53:17 +0000 (01:53 +0400)]
Simplify the use of the object list file

13 years agoIntroduce xfeed output function
root [Mon, 7 Jan 2013 11:43:45 +0000 (03:43 -0800)]
Introduce xfeed output function

12 years agoCombine tempfile naming into one function
root [Sat, 2 Feb 2013 23:09:59 +0000 (04:09 +0500)]
Combine tempfile naming into one function

12 years agoGuard verify-pack and pack-objects and die on error
root [Fri, 22 Feb 2013 15:43:46 +0000 (15:43 +0000)]
Guard verify-pack and pack-objects and die on error

Use echo_kill for when echo_die is not enough.

12 years agoUse pathname expansion only where needed
root [Fri, 22 Feb 2013 19:51:03 +0000 (10:51 -0900)]
Use pathname expansion only where needed

13 years agoFix GCRYPT_FULL_REPACK to also repack when target has only 1 pack
root [Tue, 25 Dec 2012 06:22:30 +0000 (01:22 -0500)]
Fix GCRYPT_FULL_REPACK to also repack when target has only 1 pack

12 years agoSimplify PRIVENCRYPT
root [Sat, 23 Feb 2013 17:38:54 +0000 (18:38 +0100)]
Simplify PRIVENCRYPT

13 years agoSimplify line_count and pick_fields
root [Mon, 7 Jan 2013 05:58:04 +0000 (21:58 -0800)]
Simplify line_count and pick_fields

12 years agoremove splitcolon use
root [Thu, 14 Feb 2013 16:48:46 +0000 (19:48 +0300)]
remove splitcolon use

13 years agouse gpg_hash
root [Tue, 22 Jan 2013 22:30:02 +0000 (07:30 +0900)]
use gpg_hash

13 years agoRefactor fetch and repack
root [Sat, 10 Nov 2012 05:25:35 +0000 (09:25 +0400)]
Refactor fetch and repack

13 years agoMore specific pattern for manifest filter
root [Mon, 19 Nov 2012 22:03:41 +0000 (22:03 +0000)]
More specific pattern for manifest filter

12 years agoUse $1, $2 instead of $@ here
root [Fri, 1 Feb 2013 05:01:36 +0000 (09:01 +0400)]
Use $1, $2 instead of $@ here

If found a bug in mksh, where it would not split "$@" if IFS is null
(reported).

13 years agoFixup cleanup at exit
root [Mon, 14 Jan 2013 10:00:07 +0000 (16:00 +0600)]
Fixup cleanup at exit

13 years agoCleanup use of "quotes"
root [Tue, 22 Jan 2013 18:25:23 +0000 (17:25 -0100)]
Cleanup use of "quotes"

12 years agoRename main manifest globals for consistency and symmetry
root [Thu, 7 Feb 2013 15:43:41 +0000 (21:43 +0600)]
Rename main manifest globals for consistency and symmetry

12 years agoUnify filter_to and its negation, also make it faster by direct append
root [Sun, 3 Feb 2013 18:30:06 +0000 (23:30 +0500)]
Unify filter_to and its negation, also make it faster by direct append

13 years agoEdit wording in README
root [Mon, 21 Jan 2013 22:37:06 +0000 (17:37 -0500)]
Edit wording in README

13 years agoCode and naming conventions around return variables
root [Sat, 5 Jan 2013 17:22:32 +0000 (16:22 -0100)]
Code and naming conventions around return variables

13 years agoUse filter_to for pruning Packlist after repack
root [Mon, 28 Jan 2013 07:44:43 +0000 (07:44 +0000)]
Use filter_to for pruning Packlist after repack

13 years agoReplace wc -l with line_count
root [Mon, 17 Dec 2012 15:38:26 +0000 (06:38 -0900)]
Replace wc -l with line_count

13 years agoUse filter_to for key_line
root [Thu, 22 Nov 2012 01:46:46 +0000 (02:46 +0100)]
Use filter_to for key_line

13 years agoFix checking for multiple keys
root [Fri, 4 Jan 2013 10:40:21 +0000 (10:40 +0000)]
Fix checking for multiple keys

13 years agoUpdate Branchlist using filter_remove
root [Fri, 23 Nov 2012 16:03:14 +0000 (20:03 +0400)]
Update Branchlist using filter_remove

13 years agoIntroduce filter_to, pick_fields
root [Sun, 9 Dec 2012 05:48:45 +0000 (11:48 +0600)]
Introduce filter_to, pick_fields

12 years agoMinicleanup in do_push
root [Mon, 11 Feb 2013 02:06:09 +0000 (23:06 -0300)]
Minicleanup in do_push

13 years agoUse have_packs+ file directly with grep
root [Sat, 10 Nov 2012 13:49:56 +0000 (13:49 +0000)]
Use have_packs+ file directly with grep

12 years agoFix bug with goodsig variable
root [Fri, 8 Feb 2013 09:21:21 +0000 (09:21 +0000)]
Fix bug with goodsig variable

13 years agoread_config: only pick first key for each key id
root [Thu, 24 Jan 2013 17:17:56 +0000 (17:17 +0000)]
read_config: only pick first key for each key id

13 years agoPut the main loop for the git protocol in a function
root [Mon, 7 Jan 2013 01:20:39 +0000 (18:20 -0700)]
Put the main loop for the git protocol in a function

13 years agoFix minor coding style and cleanup local variables
root [Fri, 16 Nov 2012 12:57:54 +0000 (04:57 -0800)]
Fix minor coding style and cleanup local variables

13 years agoDon't show errors from git fetch when using the git backend
root [Tue, 22 Jan 2013 07:24:36 +0000 (09:24 +0200)]
Don't show errors from git fetch when using the git backend

13 years agoUse a function for cleanup at exit
root [Thu, 13 Dec 2012 17:02:14 +0000 (21:02 +0400)]
Use a function for cleanup at exit

13 years agoREADME: Fix to use `remote id`
root [Thu, 29 Nov 2012 02:45:29 +0000 (07:45 +0500)]
README: Fix to use `remote id`

13 years agoSimplify formatting of the manifest
root [Tue, 6 Nov 2012 22:21:51 +0000 (07:21 +0900)]
Simplify formatting of the manifest

13 years agoUse append_to
root [Sun, 28 Oct 2012 05:40:19 +0000 (22:40 -0700)]
Use append_to

13 years agoGroup modifiable globals together
root [Fri, 11 Jan 2013 08:01:06 +0000 (11:01 +0300)]
Group modifiable globals together

13 years agoUpdate license text
root [Fri, 16 Nov 2012 06:47:51 +0000 (03:47 -0300)]
Update license text

13 years agoUse set -u (no unset vars)
root [Sat, 15 Dec 2012 08:37:51 +0000 (13:37 +0500)]
Use set -u (no unset vars)

13 years agoUse return variables for Goodsig and Signers
root [Sun, 2 Dec 2012 02:41:09 +0000 (00:41 -0200)]
Use return variables for Goodsig and Signers

13 years agoUse setvar for return variables
root [Wed, 21 Nov 2012 19:37:24 +0000 (03:37 +0800)]
Use setvar for return variables

13 years agoUpdate Gref_rbranch when connecting
root [Sun, 16 Dec 2012 09:01:02 +0000 (09:01 +0000)]
Update Gref_rbranch when connecting

13 years agoFix markup of Repository Format section
root [Thu, 3 Jan 2013 15:31:03 +0000 (16:31 +0100)]
Fix markup of Repository Format section

13 years agoEdit README
root [Sun, 20 Jan 2013 11:22:44 +0000 (19:22 +0800)]
Edit README

12 years agoOrganize the README in a neat way, putting extra info in the Notes chapter
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Organize the README in a neat way, putting extra info in the Notes chapter

12 years agoEdit the summary of the repository format/process
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Edit the summary of the repository format/process

12 years agoTone down the development version warnings
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Tone down the development version warnings

We have now implemented the usability changes (No fragment in repository
URL, and default encrypt-to-self), so no big changes planned.

12 years agoUse a shorter, simpler repo ID since users will see it (occasionally)
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use a shorter, simpler repo ID since users will see it (occasionally)

12 years agoAutomatically forward-port repository config
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Automatically forward-port repository config

Change remote configurations when encountered:

* gcrypt::ssh -> gcrypt::rsync
* repo/G.XXXX -> #XXX
* gitception:// -> ""

12 years agoUpdate README for remote.<name>.gcrypt-participants and default simple mode
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Update README for remote.<name>.gcrypt-participants and default simple mode

12 years agoEncrypt to self by default; basic functionality now needs no configuration
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Encrypt to self by default; basic functionality now needs no configuration

Introduces gcrypt.participants "simple" mode which encrypts to self, and
accepts any valid signature by default. No configuration needed for
private repositories.

We also adds  remote.<name>.gcrypt-participants to configure this per
remote.

12 years agoMigrate to SHA-256 and implicit repo ID (PARTIAL REPO FORMAT CHANGE)
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Migrate to SHA-256 and implicit repo ID (PARTIAL REPO FORMAT CHANGE)

* local, rsync, ssh, sftp repositories are still compatible
* gitception/git backend repositories are not compatible and need to be
  deleted and recreated
* Put manifest in a static location, so we don't need #fragment in the URL
* Record repository ID for each remote, and warn if it changes.
* Use SHA-256 by default but allow reading SHA-224-identified packfiles
* The URL #fragment identifies branch to use when using the git backend

12 years agoDo not use grep -F (busybox incompatible)
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Do not use grep -F (busybox incompatible)

12 years agoGive warning about future format change
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Give warning about future format change

12 years agoAllow user to set $GCRYPT_FULL_REPACK to force repack of remote
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Allow user to set $GCRYPT_FULL_REPACK to force repack of remote

12 years agoUnify all uses of trap
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Unify all uses of trap

12 years agoFactor out common code in do_fetch and repack
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Factor out common code in do_fetch and repack

12 years agoUse normal "url-safe" variant of base64 for repo url fragment
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use normal "url-safe" variant of base64 for repo url fragment

12 years agoUse rsync for both rsync and ssh access
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use rsync for both rsync and ssh access

12 years agoDocument the keep field
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Document the keep field

12 years agoRepack the encrypted remote regularly
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Repack the encrypted remote regularly

Use a simple but slow method of repacking the remote repository.
Download (and verify) all packs not marked 'keep', and repack those into
a new packfile. The new packfile is marked 'keep' with generation 1.
After PUT is called on the manifest, we remove the redundant old
packfiles.

The generation number will allow further iterations of repacking to be
implemented later.

12 years agoSimplify informational output to emphasize the new repo URL
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Simplify informational output to emphasize the new repo URL

12 years agoAdd ./install.sh to install git-remote-gcrypt and its man page
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Add ./install.sh to install git-remote-gcrypt and its man page

12 years agoParameterise type of hash used
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Parameterise type of hash used

12 years agoFix iseq for null strings
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Fix iseq for null strings

12 years agoDocument manifest fields better
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Document manifest fields better

12 years agoUse config gcrypt.participants for GPG key ids
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use config gcrypt.participants for GPG key ids

Instead of using a separate keyring file (gcrypt.keyring is now
deprecated!), use a simple list of key ids. Extract all keyids and use
these to match GOODSIG <keyid> manually on the gpg status output.

The gcrypt.keyring variable is still used, but it will be removed later.

12 years agoUse URL fragment for repository id instead of G.*
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use URL fragment for repository id instead of G.*

12 years agoRequest signature on manifest before uploading pack
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Request signature on manifest before uploading pack

Just to ensure that the user signs the push before we upload any files
(pack or manifest) to the remote.

12 years agoSupport rsync://
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Support rsync://

12 years agoSimply detect if using git repository backend. gitception:// is unneeded
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Simply detect if using git repository backend. gitception:// is unneeded

Simply treat absolute paths that do not lead to a HEAD file as local
directory backends, and all other as git backends.

12 years agoUse grep instead of sort/uniq
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use grep instead of sort/uniq

12 years agoUpdate README
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Update README

12 years agoUse batch-check to use only the remote_has commits we also have locally
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use batch-check to use only the remote_has commits we also have locally

12 years agoAllow deleting remote refs
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Allow deleting remote refs

12 years agoOnly encrypt to keys with encrypt capability
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Only encrypt to keys with encrypt capability

12 years agoUpdate README so it can generate a man page with rst2man
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Update README so it can generate a man page with rst2man

12 years agoMinor cleanup (make sure used variables are clear at start)
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Minor cleanup (make sure used variables are clear at start)

12 years agoAdd extension namespace in manifest files, 'extn' lines are preserved
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Add extension namespace in manifest files, 'extn' lines are preserved

12 years agoUse a packfile passphrase of 33 bytes, parity with 256-bit crypto
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use a packfile passphrase of 33 bytes, parity with 256-bit crypto

12 years agoObey git config user.signingkey
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Obey git config user.signingkey

12 years agoUse 'initial commit' as message for gitception commits
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use 'initial commit' as message for gitception commits

12 years agoUse a separate symmetric key per packfile (REPO FORMAT CHANGE)
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Use a separate symmetric key per packfile (REPO FORMAT CHANGE)

A separate key per pack is simpler and costs us very little; with
repack changes later it will be possible to change keys regularly.

12 years agoUpdate README
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Update README

12 years agoFix microissues
root [Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)]
Fix microissues