]> err.no Git - pwstore/commitdiff
Check if we are encrypting this to ourselves
authorPeter Palfrader <peter@palfrader.org>
Thu, 18 Sep 2008 21:05:28 +0000 (23:05 +0200)
committerPeter Palfrader <peter@palfrader.org>
Thu, 18 Sep 2008 21:05:28 +0000 (23:05 +0200)
pws

diff --git a/pws b/pws
index 415b4fa24c663362b073219b66c8ea9d6a14af64..7cbc8f4605896dd0e6387067032b2295605671ad 100755 (executable)
--- a/pws
+++ b/pws
@@ -1,5 +1,28 @@
 #!/usr/bin/ruby
 
+# password store management tool
+
+# Copyright (c) 2008 Peter Palfrader <peter@palfrader.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
 require 'optparse'
 require 'thread'
 require 'tempfile'
@@ -339,6 +362,18 @@ class EncryptedFile
       return false if tryagain
     end
 
+    to_me = false
+    GnuPG.get_my_fprs.each do |fpr|
+      if expanded.include?(fpr)
+        to_me = true
+        break
+      end
+    end
+    unless to_me
+      tryagain = read_input("File is not being encrypted to you.  Edit again (or continue)?", true)
+      return false if tryagain
+    end
+
     ok, encrypted = encrypt(content, expanded)
     return false unless ok