aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/pgp/keygen.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman_pgp/pgp/keygen.py')
-rw-r--r--src/mailman_pgp/pgp/keygen.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/mailman_pgp/pgp/keygen.py b/src/mailman_pgp/pgp/keygen.py
index b750e28..684b81a 100644
--- a/src/mailman_pgp/pgp/keygen.py
+++ b/src/mailman_pgp/pgp/keygen.py
@@ -29,36 +29,42 @@ from pgpy.constants import (
class ListKeyGenerator(mp.Process):
"""A multiprocessing list key generator."""
- def __init__(self, keypair_config, display_name, posting_address,
+ def __init__(self, primary_args, subkey_args, display_name,
+ posting_address,
request_address, key_path):
super().__init__(
target=self.generate,
- args=(keypair_config, display_name, posting_address,
+ args=(primary_args, subkey_args, display_name, posting_address,
request_address, key_path),
daemon=True)
- def generate(self, keypair_config, display_name, posting_address,
+ def generate(self, primary_args, subkey_args, display_name,
+ posting_address,
request_address, key_path):
"""
Generate the list keypair and save it.
- :param keypair_config:
+ :param primary_args:
+ :param subkey_args:
:param display_name:
:param posting_address:
:param request_address:
:param key_path:
"""
- key = self._create(keypair_config, display_name, posting_address,
+ key = self._create(primary_args, subkey_args, display_name,
+ posting_address,
request_address)
with Lock(key_path + '.lock'):
self._save(key, key_path)
- def _create(self, config, display_name, posting_address, request_address):
+ def _create(self, primary_args, subkey_args, display_name, posting_address,
+ request_address):
"""
Generate the list `PGPKey` keypair, with posting and request UIDs.
Use a Sign+Certify main key and Encrypt subkey.
- :param config:
+ :param primary_args:
+ :param subkey_args:
:param display_name:
:param posting_address:
:param request_address:
@@ -79,9 +85,7 @@ class ListKeyGenerator(mp.Process):
)
# Generate the Sign + Certify primary key.
- key_type = config['key_type']
- key_length = config['key_length']
- key = PGPKey.new(key_type, key_length)
+ key = PGPKey.new(*primary_args)
key_params = dict(usage={KeyFlags.Sign, KeyFlags.Certify},
**common_params)
# Generate the posting + request uids.
@@ -89,9 +93,7 @@ class ListKeyGenerator(mp.Process):
request_uid = PGPUID.new(display_name,
email=request_address)
# Generate the Encrypt subkey.
- subkey_type = config['subkey_type']
- subkey_length = config['subkey_length']
- subkey = PGPKey.new(subkey_type, subkey_length)
+ subkey = PGPKey.new(*subkey_args)
subkey_params = dict(
usage={KeyFlags.EncryptCommunications,
KeyFlags.EncryptStorage},