chiark / gitweb /
New approach to replay prevention - WIP
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 21 May 2015 09:12:23 +0000 (10:12 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 31 May 2015 11:58:00 +0000 (12:58 +0100)
infra/dgit-repos-server

index ab83136..f2f3088 100755 (executable)
@@ -632,11 +632,21 @@ sub checksuite () {
 }
 
 sub checktagnoreplay () {
+    # We need to prevent a replay attack using an earlier signed tag.
+    # We also want to archive in the history anything 
+    #
     # We check that the signed tag mentions the name and tag object id of
-    # (a) in the case of FRESHREPO all tags in the repo;
-    # (b) in the case of just NOFFCHECK all tags referring to
+    #
+    # (a) In the case of FRESHREPO all tags and refs/heads/heads in the
+    #     repo.  That is, effectively, all the things we are deleting.
+    #     This prevents any tag implying a FRESHREPO push being replayed
+    #     into a different state of the repo.
+    #
+    # (b) In the case of just NOFFCHECK all tags referring to
     #     the current head for the suite (there must be at least one).
-    # This prevents a replay attack using an earlier signed tag.
+    #     This guarantees that the 
+    #
+    # 
     return unless $policy & (FRESHREPO|NOFFCHECK);
 
     my $garbagerepo = "$dgitrepos/${package}_garbage";