Merge remote-tracking branch 'github/letsencrypt/master' into pylint

This commit is contained in:
Jakub Warmuz
2015-01-24 13:13:55 +00:00
6 changed files with 28 additions and 16 deletions
+2 -2
View File
@@ -2,8 +2,8 @@
import os.path import os.path
ACME_SERVER = "letsencrypt-demo.org" ACME_SERVER = "letsencrypt-demo.org:443"
"""CA hostname. """CA hostname (and optionally :port).
If you create your own server... change this line If you create your own server... change this line
+8 -4
View File
@@ -59,7 +59,6 @@ class Client(object):
:type dv_auth: :class:`letsencrypt.client.interfaces.IAuthenticator` :type dv_auth: :class:`letsencrypt.client.interfaces.IAuthenticator`
""" """
sanity_check_names([server])
self.network = network.Network(server) self.network = network.Network(server)
self.authkey = authkey self.authkey = authkey
@@ -330,7 +329,7 @@ def validate_key_csr(privkey, csr=None):
"The key and CSR do not match") "The key and CSR do not match")
def init_key(): def init_key(key_size):
"""Initializes privkey. """Initializes privkey.
Inits key and CSR using provided files or generating new files Inits key and CSR using provided files or generating new files
@@ -339,7 +338,12 @@ def init_key():
the namedtuple to easily work with the protocol. the namedtuple to easily work with the protocol.
""" """
key_pem = crypto_util.make_key(CONFIG.RSA_KEY_SIZE) try:
key_pem = crypto_util.make_key(key_size)
except ValueError as err:
logging.fatal(str(err))
logging.info("Note: The default RSA key size is %d bits.", CONFIG.RSA_KEY_SIZE)
sys.exit(1)
# Save file # Save file
le_util.make_or_verify_dir(CONFIG.KEY_DIR, 0o700) le_util.make_or_verify_dir(CONFIG.KEY_DIR, 0o700)
@@ -348,7 +352,7 @@ def init_key():
key_f.write(key_pem) key_f.write(key_pem)
key_f.close() key_f.close()
logging.info("Generating key: %s", key_filename) logging.info("Generating key (%d bits): %s", key_size, key_filename)
return Client.Key(key_filename, key_pem) return Client.Key(key_filename, key_pem)
+1 -1
View File
@@ -145,7 +145,7 @@ def csr_matches_pubkey(csr, privkey):
# based on M2Crypto unit test written by Toby Allsopp # based on M2Crypto unit test written by Toby Allsopp
def make_key(bits=CONFIG.RSA_KEY_SIZE): def make_key(bits):
"""Generate PEM encoded RSA key. """Generate PEM encoded RSA key.
:param int bits: Number of bits, at least 1024. :param int bits: Number of bits, at least 1024.
+7 -4
View File
@@ -17,13 +17,16 @@ logging.getLogger("requests").setLevel(logging.WARNING)
class Network(object): class Network(object):
"""Class for communicating with ACME servers. """Class for communicating with ACME servers.
:ivar str server: Certificate authority server :ivar str server_url: Full URL of the ACME service
:ivar str server_url: Full URL of the CSR server
""" """
def __init__(self, server): def __init__(self, server):
self.server = server """Initialize Network instance.
self.server_url = "https://%s/acme/" % self.server
:param str server: ACME (CA) server[:port]
"""
self.server_url = "https://%s/acme/" % server
def send(self, msg): def send(self, msg):
"""Send ACME message to server. """Send ACME message to server.
@@ -101,6 +101,8 @@ class MakeKeyTest(unittest.TestCase):
def test_it(self): # pylint: disable=no-self-use def test_it(self): # pylint: disable=no-self-use
from letsencrypt.client.crypto_util import make_key from letsencrypt.client.crypto_util import make_key
M2Crypto.RSA.load_key_string(make_key(1024)) M2Crypto.RSA.load_key_string(make_key(1024))
M2Crypto.RSA.load_key_string(make_key(2048))
M2Crypto.RSA.load_key_string(make_key(4096))
class ValidPrivkeyTest(unittest.TestCase): class ValidPrivkeyTest(unittest.TestCase):
+8 -5
View File
@@ -30,13 +30,17 @@ def main(): # pylint: disable=too-many-statements
parser.add_argument("-d", "--domains", dest="domains", metavar="DOMAIN", parser.add_argument("-d", "--domains", dest="domains", metavar="DOMAIN",
nargs="+") nargs="+")
parser.add_argument("-s", "--server", dest="server", parser.add_argument("-s", "--server", dest="server",
help="The ACME CA server address.") default=CONFIG.ACME_SERVER,
help="The ACME CA server. [%(default)s]")
parser.add_argument("-p", "--privkey", dest="privkey", type=read_file, parser.add_argument("-p", "--privkey", dest="privkey", type=read_file,
help="Path to the private key file for certificate " help="Path to the private key file for certificate "
"generation.") "generation.")
parser.add_argument("-b", "--rollback", dest="rollback", type=int, parser.add_argument("-b", "--rollback", dest="rollback", type=int,
default=0, metavar="N", default=0, metavar="N",
help="Revert configuration N number of checkpoints.") help="Revert configuration N number of checkpoints.")
parser.add_argument("-B", "--keysize", dest="key_size", type=int,
default=CONFIG.RSA_KEY_SIZE, metavar="N",
help="RSA key shall be sized N bits. [%d]" % CONFIG.RSA_KEY_SIZE)
parser.add_argument("-k", "--revoke", dest="revoke", action="store_true", parser.add_argument("-k", "--revoke", dest="revoke", action="store_true",
help="Revoke a certificate.") help="Revoke a certificate.")
parser.add_argument("-v", "--view-config-changes", parser.add_argument("-v", "--view-config-changes",
@@ -72,10 +76,9 @@ def main(): # pylint: disable=too-many-statements
zope.component.provideUtility(displayer) zope.component.provideUtility(displayer)
installer = determine_installer() installer = determine_installer()
server = CONFIG.ACME_SERVER if args.server is None else args.server
if args.revoke: if args.revoke:
revoc = revoker.Revoker(server, installer) revoc = revoker.Revoker(args.server, installer)
revoc.list_certs_keys() revoc.list_certs_keys()
sys.exit() sys.exit()
@@ -100,11 +103,11 @@ def main(): # pylint: disable=too-many-statements
# Prepare for init of Client # Prepare for init of Client
if args.privkey is None: if args.privkey is None:
privkey = client.init_key() privkey = client.init_key(args.key_size)
else: else:
privkey = client.Client.Key(args.privkey[0], args.privkey[1]) privkey = client.Client.Key(args.privkey[0], args.privkey[1])
acme = client.Client(server, privkey, auth, installer) acme = client.Client(args.server, privkey, auth, installer)
# Validate the key and csr # Validate the key and csr
client.validate_key_csr(privkey) client.validate_key_csr(privkey)