diff options
| author | J08nY | 2017-07-31 22:40:01 +0200 |
|---|---|---|
| committer | J08nY | 2017-07-31 22:40:01 +0200 |
| commit | 39291794b39b52804b2b45d74d0d5aad0f0eefcf (patch) | |
| tree | 2a606169dcd655f5dc5b69b1770fa1fd72a5298e /src/mailman_pgp/model/fs_key.py | |
| parent | b16fe8644ddc82584a8ff9a2f98e40c1571437f2 (diff) | |
| download | mailman-pgp-feature/key-store.tar.gz mailman-pgp-feature/key-store.tar.zst mailman-pgp-feature/key-store.zip | |
Diffstat (limited to 'src/mailman_pgp/model/fs_key.py')
| -rw-r--r-- | src/mailman_pgp/model/fs_key.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/mailman_pgp/model/fs_key.py b/src/mailman_pgp/model/fs_key.py index c4a2ac4..118f971 100644 --- a/src/mailman_pgp/model/fs_key.py +++ b/src/mailman_pgp/model/fs_key.py @@ -16,14 +16,15 @@ # this program. If not, see <http://www.gnu.org/licenses/>. """Filesystem stored PGP key.""" -from os import remove -from os.path import getmtime, join +from os import remove, urandom +from os.path import getmtime, getsize, join from public import public from mailman_pgp.utils.file import locked_obj from mailman_pgp.utils.pgp import key_from_file + @public class FSKey: """Filesystem stored PGP key.""" @@ -94,4 +95,19 @@ class FSKey: @locked_obj('lock_path') def delete(self): - remove(self.key_path) + try: + remove(self.key_path) + except FileNotFoundError: + pass + + @locked_obj('lock_path') + def shred(self): + try: + size = getsize(self.key_path) + for _ in range(10): + with open(self.key_path, 'wb') as f: + data = urandom(size) + f.write(data) + remove(self.key_path) + except FileNotFoundError: + pass |
