Commit graph

73 commits

Author SHA1 Message Date
root
7aa54e1ae6 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.
2013-02-14 00:00:00 +00:00
root
6173d0ffe0 Use URL fragment for repository id instead of G.* 2013-02-14 00:00:00 +00:00
root
192befdb62 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.
2013-02-14 00:00:00 +00:00
root
b1f7d3ec22 Support rsync:// 2013-02-14 00:00:00 +00:00
root
e2de0ce73f 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.
2013-02-14 00:00:00 +00:00
root
853dae8914 Use grep instead of sort/uniq 2013-02-14 00:00:00 +00:00
root
0a1730741c Update README 2013-02-14 00:00:00 +00:00
root
fdb2732abb Use batch-check to use only the remote_has commits we also have locally 2013-02-14 00:00:00 +00:00
root
8e1246e738 Allow deleting remote refs 2013-02-14 00:00:00 +00:00
root
543ca86029 Only encrypt to keys with encrypt capability 2013-02-14 00:00:00 +00:00
root
aa4b80db7f Update README so it can generate a man page with rst2man 2013-02-14 00:00:00 +00:00
root
dc2d0b34b1 Minor cleanup (make sure used variables are clear at start) 2013-02-14 00:00:00 +00:00
root
6c203aaa77 Add extension namespace in manifest files, 'extn' lines are preserved 2013-02-14 00:00:00 +00:00
root
c355faebe8 Use a packfile passphrase of 33 bytes, parity with 256-bit crypto 2013-02-14 00:00:00 +00:00
root
e26f617761 Obey git config user.signingkey 2013-02-14 00:00:00 +00:00
root
745b893ebd Use 'initial commit' as message for gitception commits 2013-02-14 00:00:00 +00:00
root
63d7a7437e 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.
2013-02-14 00:00:00 +00:00
root
1cb9281b45 Update README 2013-02-14 00:00:00 +00:00
root
5245d68453 Fix microissues 2013-02-14 00:00:00 +00:00
root
27fe6e199d Simplify sort_stable_k2 2013-02-14 00:00:00 +00:00
root
4fe095e1c7 Use a shorter repository id in the URL, to simplify a tiny bit 2013-02-14 00:00:00 +00:00
root
3f3c9f05fc Fix trap resets 2013-02-14 00:00:00 +00:00
root
1e0decc893 Implement stable sort (Lacking in POSIX) 2013-02-14 00:00:00 +00:00
root
da65f512a7 Simplify isnull to use case 2013-02-14 00:00:00 +00:00
root
d6df0f1453 Allow pushing into an empty repo using gitception:// 2013-02-14 00:00:00 +00:00
root
1960c8ede0 Use git rev-list --stdin and cat-file --batch-check 2013-02-14 00:00:00 +00:00
root
a0232a9a67 Use utility functions for testing for equal and null strings
This way we do not show any sensitive data to the [ program.
2013-02-14 00:00:00 +00:00
root
71531be31e Replace use of printf and echo with a safe variant
Use  cat <<EOF  etc for safe output of all data to pipes (mostly that we
don't know what the shell does with echo and printf).
2013-02-14 00:00:00 +00:00
root
ca6a984195 Big coding style shakeup, use Titlecase and lowercase variables 2013-02-14 00:00:00 +00:00
root
d342bbceab Fix quoting of '$' for grep 2013-02-14 00:00:00 +00:00
root
7eb9620b7a Fix incompatibilities with bash 2013-02-14 00:00:00 +00:00
root
6d36367de5 Fix reST syntax in README 2013-02-14 00:00:00 +00:00
root
7d849acd12 Update README 2013-02-14 00:00:00 +00:00
root
8abbe35752 Generate a Repository ID and verify it in the manifest (REPO FORMAT CHANGE)
This is a simplification and defends at someone maliciously switching
around different sign+encrypted manifest files of the same user. This
way we verify the repository we read is the repository we want.

Repo ID is not secret. Only requirement is that the same user does not
generate the same repo id more than onece.
2013-02-14 00:00:00 +00:00
root
1518e3619e Use manifest file for master key, branches and packs (REPO FORMAT CHANGE) 2013-02-14 00:00:00 +00:00
root
0a722b2493 Update README 2013-02-14 00:00:00 +00:00
root
d96f17b02d When decrypting or verifying the master key, check input type
We rely on gpg to exit with success, but we also check the status output
to verify that the expected action (decrypt with privkey or verify) was
performed.
2013-02-14 00:00:00 +00:00
root
1112174651 Provide clear messages for signing and verifying 2013-02-14 00:00:00 +00:00
root
c689a38782 Use gpg --secret-keyring /dev/null where possible 2013-02-14 00:00:00 +00:00
root
1227529ff5 Use gpg --with-colons --print-md 2013-02-14 00:00:00 +00:00
root
1a7e58db58 Write gitception_get in a simpler way 2013-02-14 00:00:00 +00:00
root
903e9a5bbc Fix retval of gitception_get 2013-02-14 00:00:00 +00:00
root
d390ee8611 README, describe new option gcrypt.keyring 2013-02-14 00:00:00 +00:00
root
a0e16ce7df Require signed masterkey (REPO FORMAT CHANGE) 2013-02-14 00:00:00 +00:00
root
d03fcad84d Use git config gcrypt.keyring for repository security
To verify signatures, we need a small keyring where the user has
selected just the keys who are allowed to access and update the
repository.
2013-02-14 00:00:00 +00:00
root
3d90c4ab16 Disable keyring when using symmetric crypto 2013-02-14 00:00:00 +00:00
root
9efc5d82bf Cleanup manifest verification, require a non-empty manifest 2013-02-14 00:00:00 +00:00
root
08ad287a0c Fix bugs with gitception://<giturl> related to concurrency with git
Make sure we do not overwrite FETCH_HEAD. Using stacked gitception://
URLs was useful to make sure we handle our temporaries in a safe way.
2013-02-14 00:00:00 +00:00
root
b9501e5b25 Fix bug in do_fetch, skip empty line 2013-02-14 00:00:00 +00:00
root
3b95011da6 Use xgrep function to always exit grep with success 2013-02-14 00:00:00 +00:00