36 Commits
Author SHA1 Message Date
Brad WarrenandJoona Hoikkala afa7e3fb82 Unrevert #6000 and silence deprecation warnings (#6082)
* Revert "Revert "switch signature verification to use pure cryptography (#6000)" (#6074)"

This reverts commit 3cffe1449c.

* Fixes #6073.

This silences the deprecation warnings from cryptography. I looked into only
silencing the cryptography warning specifically in the function, however,
CryptographyDeprecationWarning doesn't seem to be publicly documented, so we
probably shouldn't depend on it.
2018-06-08 00:45:23 +03:00
Brad WarrenandGitHub 3cffe1449c Revert "switch signature verification to use pure cryptography (#6000)" (#6074)
This reverts commit 366c50e28e.
2018-06-06 07:58:50 -07:00
Paul KehrerandBrad Warren 366c50e28e switch signature verification to use pure cryptography (#6000)
* switch signature verification to use pure cryptography

On systems that prevent write/execute pages this prevents a segfault
that is caused by pyopenssl creating a dynamic callback in the
verification helper.

* switch to using a verifier for older cryptography releases

also add ec support, test vectors, and a test
2018-05-18 09:10:41 -07:00
Dmitry FigolandBrad Warren 36dfd06503 Prepare certbot module for mypy check untyped defs (#6005)
* Prepare certbot module for mypy check untyped defs

* Fix #5952

* Bump mypy to version 0.600 and fix associated bugs

* Fix pylint bugs after introducing mypy

* Implement Brad's suggestions

* Reenabling pylint and adding nginx mypy back
2018-05-18 06:28:17 -07:00
ohemorangeandBrad Warren 6253acf335 Get mypy running with clean output (#5864)
Fixes #5849.

* extract mypy flags into mypy.ini file

* Get mypy running with clean output
2018-04-12 18:53:07 -07:00
Brad Warrenandohemorange b3e73bd2ab removes blank line from chain.pem (#5730) 2018-03-14 17:38:37 -07:00
Brad WarrenandGitHub e1878593d5 Ensure fullchain_pem in the order is unicode/str (#5654)
* Decode fullchain_pem in ACMEv1

* Convert back to bytes in Certbot

* document bytes are returned
2018-03-05 07:27:44 -08:00
ohemorangeandBrad Warren 457269b005 Add finalize_order to shim object, update Certbot to use it (#5601)
* update order object with returned authorizations

* major structure of finalize_order shim refactor

* util methods and imports for finalize_order shim refactor

* update certbot.tests.client_test.py

* extraneous client_test imports

* remove correct import

* update renewal call

* add test for acme.dump_pyopenssl_chain

* Add test for certbot.crypto_util.cert_and_chain_from_fullchain

* add tests for acme.client and change to fetch chain failure to TimeoutError

* s/rytpe/rtype

* remove ClientV1 passthrough

* dump the wrapped cert

* remove dead code

* remove the correct dead code

* support earlier mock
2018-02-22 10:14:29 -08:00
ohemorangeandBrad Warren e95e963ad6 Get common name from CSR in new_order in ClientV2 (#5587)
* switch new_order to use crypto_util._pyopenssl_cert_or_req_san

* move certbot.crypto_util._get_names_from_loaded_cert_or_req functionality to acme.crypto_util._pyopenssl_cert_or_req_all_names
2018-02-16 16:05:16 -08:00
Jannis LeidelandBrad Warren 2abc94661a Use josepy instead of acme.jose. (#5203) 2017-12-11 11:25:09 -08:00
Baime 3a9150a7ba Fix for revoke cert by key process 2017-07-08 19:36:39 +02:00
Baime 62bdf663f2 Check keys if revoke certificate by private key 2017-07-08 16:20:12 +02:00
Brad WarrenandGitHub 828363b21a Fix nginx --dry-run (#4889)
* Revert "Don't save keys/csr on dry run (#4380)"

This reverts commit e034b50363.

* Don't save CSRs and keys during dry run

* Factor out _test_obtain_certificate_common

* Add test_obtain_certificate_dry_run

* Wrap key from make_key in util.Key

* Wrap result from make_csr in util.CSR
2017-06-30 08:10:55 -04:00
yomnaandBrad Warren d7f9859c3f [#3866]: "certbot certificates" checks validity with OpenSSL (#4155)
* cert signature validation for certificates subcommand + a test

* refactoring validation + adding in a check for making sure that the private key matches the certificate

* adding testing certs

* assertIsNone(x) -> assertEqual(None,x) to unbreak the py2.6 tests

* modifying test_verifu_renewable_cert_failure to hopefully appease python 3 test timeouts

* updating cryptography to be >=1.2 so that we can use verify

* removing unused, old testing certificate

* adding better error handling/logging

* adding test for IOError

* switching to a 2048 bit rsa key
2017-05-31 15:04:41 -07:00
ohemorangeandBrad Warren 033c995bd2 Update options-ssl-nginx.conf inprepare if it hasn't been manually modified (#4689)
Fixes #4559.

* Update options-ssl-nginx.conf in prepare, if it hasn't been modified.

* add previous options-ssl-nginx.conf hashes

* InstallSslOptionsConfTest

* remove .new file and only print warning once

* save digest to /etc/letsencrypt

* add comment reminding devs to update hashes

* add comment and test for sha256sum

* treat hash file as text file because python3

* move constants and rename hidden digest file
2017-05-23 13:18:50 -07:00
schoenandBrad Warren 0c4e813a72 Demote PEM generation to logger.debug (#4549) 2017-04-26 10:54:40 -07:00
Jacob Hoffman-AndrewsandBrad Warren cacee80c51 Move make_csr into acme.crypto_util (#4165)
It's relatively finicky to make a CSR appropriate to pass to poll_and_request_issuance. I think most users want to be able to give a list of domains and a private key, and get back a CSR. This branch adds that functionality to crypto_util.

Note that the two new functions take arguments, and return values, as PEM-encoded buffers. This is a departure from some existing ACME interfaces that take PyOpenSSL types. I've discussed with the Certbot team, and we agree that this is broadly the direction the ACME API should take, so that users of the module don't need to import PyOpenSSL themselves, or use its primitives.

* Add make_csr.

* accept privkey

* Tweak API.

* Remove make_csr from certbot package.

* Skip test in older Pythons.

* Move get_Extensions call under protection.

* Remove assertIn because not backwards-compatible.

* Fix encoding, and use PEM.

* Fix test

* Fix tests on py35.

* Fix error in test.

* Make import_csr_file always return PEM.

Also delete get_sans_from_csr (unused) and get_names_from_csr (newly unused).

* Fix function doc.

* Fix indent

* Fix call of obtain_certificate_from_Csr

* lint

* Handle review feedback.

* Fix test.
2017-04-07 09:43:33 -07:00
Daniel HuangandBrad Warren e034b50363 Don't save keys/csr on dry run (#4380)
* Don't save keys/csr on dry run (#2495)

* Replace assertIsNone for py26

* Fix config defaults for compat tests
2017-03-18 13:42:54 -07:00
kaiyouandPeter Eckersley 82c69815d1 Fix writing pem files with Python3 (#3757)
* Standardize arguments name for mode and chmod in the util API

* Handle OpenSSL pem as bytes objects only for Python3 compatibility

* Handle OpenSSL pem as bytes objects only (remaining bits)

* Manipulate bytes objects only when testing PEM-related functions

* Fix argument order when calling util.unique_file
2016-11-07 14:22:20 -08:00
Yen Chi Hsuan fe76d558ed Enable unit tests of certbot core on Python 3 2016-08-06 21:09:43 +08:00
Brad Warren 0a707b64ec Use common_name instead of subject 2016-06-08 16:59:44 -07:00
Brad Warren 753aea2f3f Add get_names_from_cert function 2016-06-08 16:53:04 -07:00
Brad Warren ac581951b3 Have get_names_from_csr use _get_names_from_cert_or_req 2016-06-08 16:50:34 -07:00
Brad Warren a0be028340 Add _get_names_from_cert_or_req 2016-06-08 16:49:08 -07:00
Blake Griffith d9d2377242 Rename certbot.le_util to certbot.util
Also rename certbot/tests/le_util_test.py to certbot/tests/util_test.py
2016-05-25 18:50:02 -05:00
Brad Warren 53286863fe Simplify import_csr_file 2016-05-20 16:26:09 -07:00
Brad Warren 34cc714281 Merge branch 'use-cn-from-csr' into csr++ 2016-05-20 15:13:34 -07:00
Brad Warren dfb1b72c99 Merge branch 'master' into csr++ 2016-05-20 15:10:46 -07:00
Brad Warren 77e4be933c Simplify get_names_from_csr 2016-05-18 13:59:17 -07:00
Brad Warren 8e17d7498d Add get_names_from_csr 2016-05-18 10:14:15 -07:00
Brad Warren 50421e99be Factor loading cert/req into its own function 2016-05-18 09:56:34 -07:00
Peter Eckersley d2df6880e5 Merge remote-tracking branch 'origin/master' into must-staple 2016-05-13 13:10:23 -07:00
Peter Eckersley a7d0b1a7d3 Address review comments 2016-05-12 17:49:44 -07:00
Peter Eckersley 65c4f77c1e Merge remote-tracking branch 'origin/master' into noninteractive-location 2016-05-12 17:36:55 -07:00
Brad Warren 1b565ef74a s/Let's Encrypt/Certbot 2016-04-13 16:13:50 -07:00
Brad Warren 3961b70deb s/letsencrypt/certbot 2016-04-13 16:03:59 -07:00