Commit Graph

4328 Commits

Author SHA1 Message Date
Jacob Hoffman-Andrews 2dc3b56fa9
Add variable latency to ct-test-srv (#3435)
For the upcoming SCT embedding changes, it will be useful to have a CT test server that blocks for nontrivial amounts of time before responding. This change introduces a config file for `ct-test-srv` that can be used to set up multiple "personalities" on various ports. Each personality can have a "latencySchedule" that determines how long it will sleep before servicing responding to a submission.

This change also introduces two new "personalities" on :4510 and :4511, plus configures CTLogGroups in the RA. Having four CT log personalities allows us to simulate two nontrivial log groups.

Note: This triggers Publisher to emit audit errors on timed-out submissions. We may want to make Publisher not treat those as errors, and instead only log an error if a whole log group fails.
2018-02-09 13:48:19 -08:00
Daniel McCarney f3d2dc50d9 Fix RA V2 wildcard authz reuse safety check. (#3434)
Prior to this commit a logical error in the RA's `NewOrder` caused
a safety check that prevents authorization reuse with a non-wildcard
authz for a wildcard name to not work. This commit adds a test for the
condition that the safety check is designed for and fixes the logical
error. Prior to fixing the logical error the test fails. With the
corrected safety check the test passes.
2018-02-08 15:35:11 -08:00
Roland Bracewell Shoemaker 9e23edf850 Use ctpolicy package in RA (#3422)
And collect the metrics on success/failure rates. Built on top of #3414.

Fixes #3413.
2018-02-08 13:33:42 -08:00
Daniel McCarney 4ac109ac25 Do not reuse legacy authzs in V2 new-order. (#3432)
Prior to this commit when building up the authorizations for a new-order
request we looked for any unexpired pending/valid authorizations owned
by the account and used them for the order. This allows a client to use
the V1 new-authz endpoint in combination with the V2 new-order endpoint
and we do not want to support this behaviour. All V2 authorizations
should be sourced from other V2 orders. This commit implements a new
parameter for the SA's getAuthorizations function that allows filtering
out legacy V1 authorizations by doing a JOIN on the order to
authorizations join table.

Resolves #3328
2018-02-08 12:31:04 -08:00
Daniel McCarney d7bfb542c0
Handle order finalization errors. (#3404)
This commit resolves the case where an error during finalization occurs.
Prior to this commit if an error (expected or otherwise) occurred after
setting an order to status processing at the start of order
finalization the order would be stuck processing forever.

The SA now has a `SetOrderError` RPC that can be used by the RA to
persist an error onto an order. The order status calculation can use
this error to decide if the order is invalid. The WFE is updated to
write the error to the order JSON when displaying the order information.

Prior to this commit the order protobuf had the error field as
a `[]byte`. It doesn't seem like this is the right decision, we have
a specific protobuf type for ProblemDetails and so this commit switches
the error field to use it. The conversion to/from `[]byte` is done with
the model by the SA.

An integration test is included that prior to this commit left an order
in a stuck processing state. With this commit the integration test
passes as expected.

Resolves https://github.com/letsencrypt/boulder/issues/3403
2018-02-07 16:34:07 -05:00
Daniel McCarney 67ae7f75b4 `sa.GetOrderAuthorizations` -> `sa.GetValidOrderAuthorizations`. (#3411)
The SA RPC previously called `GetOrderAuthorizations` only returns
**valid, unexpired** authorizations. This commit updates the name to
emphasize that it only returns valid order authzs.
2018-02-07 11:54:18 -08:00
Roland Bracewell Shoemaker 38549919ae
Add CODEOWNERS file (#3430)
[GitHub allows automatically assigning review requests based on the CODEOWNERS file](https://help.github.com/articles/about-codeowners/) so that we don't have to manually do it ourselves every time.
2018-02-06 16:11:31 -08:00
Jacob Hoffman-Andrews 6584d2067b
Return 500s from ocsp-responder. (#3423)
Previously, all errors were treated as Not Found, but we actually want
to treat database errors differently; for instance, by not caching them,
and by setting tighter alerting thresholds for them.

Fixes #3419.
2018-02-06 11:37:44 -08:00
Daniel McCarney dae0e4e41d Remove `.mil` check from cert-checker. (#3426)
We're no longer forbidden from issuing `.mil` certificates and shouldn't
flag certs with `.mil` subjects when running `cert-checker`.
2018-02-06 11:02:45 -08:00
Roland Bracewell Shoemaker 62f3978f3b
Add inital CTPolicy impl (#3414)
Adds a package which implements group based SCT retrieval.

Fixes #3412.
2018-02-06 10:52:20 -08:00
Jacob Hoffman-Andrews c0ffa3d5d1 Remove logging of Request/ResponseNonce. (#3421)
These take up a lot of space in the logs, and we almost never reference
them.
2018-02-06 10:17:12 -05:00
Jacob Hoffman-Andrews 1b9eccf626
Fail `test/setup.sh` if either process waited on fails (#3418)
Previously, we could miss failures depending on which job's status was
returned. Now, any failure is propagated.
2018-02-05 14:33:42 -08:00
Adam Eijdenberg 0d2afcc504 Simplify per suggestion form @jsha 2018-02-06 08:24:59 +11:00
Adam Eijdenberg 4d6f60cb0e Fail if either process waited on fails
A simple "wait" returns the return code of the "last process or job".

It's not 100% clear to me what that means, and probably not what we want.
2018-02-05 08:33:52 +11:00
Jacob Hoffman-Andrews 1dfffa3fa4
Expand PKI.md to include override instructions (#3321)
Expand PKI.md to include override instructions
2018-02-01 17:15:22 -08:00
Daniel McCarney eea049da40
Fix order reuse, calc order status by authz status (#3402)
This PR is a rework of what was originally https://github.com/letsencrypt/boulder/pull/3382, integrating the design feedback proposed by @jsha: https://github.com/letsencrypt/boulder/pull/3382#issuecomment-359912549 

This PR removes the stored Order status field and replaces it with a value that is calculated on-the-fly by the SA when fetching an order, based on the order's associated authorizations. 

In summary (and order of precedence):
* If any of the order's authorizations are invalid, the order is invalid.
* If any of the order's authorizations are deactivated, the order is deactivated.
* If any of the order's authorizations are pending, the order is pending.
* If all of the order's authorizations are valid, and there is a certificate serial, the order is valid.
* If all of the order's authorizations are valid, and we have began processing, but there is no certificate serial, the order is processing.
* If all of the order's authorizations are valid, and we haven't processing, then the order is pending waiting a finalization request.

This avoids having to explicitly update the order status when an associated authorization changes status.

The RA's implementation of new-order is updated to only reuse an existing order if the calculated status is pending. This avoids giving back invalid or deactivated orders to clients.

Resolves #3333
2018-02-01 16:33:42 -05:00
Daniel McCarney c325339e90 Document new release process. (#3417)
We are no longer updating the `staging` and `release` branches. See
https://github.com/letsencrypt/boulder-release-process for the new
process.
2018-02-01 11:29:23 -08:00
Roland Bracewell Shoemaker 2a8066b54b Refactor revocation integration tests (#3415)
Fixes #3330.
2018-01-31 17:22:07 -08:00
Daniel McCarney 200e31b9d5 Update CFSSL to tip of master (ed5223a). (#3408)
Update CFSSL to get upstream ocsp changes required to minimize log
volume.

Confirmed that unit tests pass:

```
$ git rev-parse HEAD
ed5223a490ece4d66899bbb292e3e46c0677cb86

$> go test ./...
ok      github.com/cloudflare/cfssl/api 0.009s
ok      github.com/cloudflare/cfssl/api/bundle  0.811s
ok      github.com/cloudflare/cfssl/api/certadd 6.735s
?       github.com/cloudflare/cfssl/api/certinfo        [no test files]
ok      github.com/cloudflare/cfssl/api/client  0.069s
ok      github.com/cloudflare/cfssl/api/crl     0.103s
ok      github.com/cloudflare/cfssl/api/gencrl  0.008s
ok      github.com/cloudflare/cfssl/api/generator       0.051s
ok      github.com/cloudflare/cfssl/api/info    0.027s
ok      github.com/cloudflare/cfssl/api/initca  0.022s
ok      github.com/cloudflare/cfssl/api/ocsp    0.026s
ok      github.com/cloudflare/cfssl/api/revoke  0.614s
ok      github.com/cloudflare/cfssl/api/scan    51.888s
ok      github.com/cloudflare/cfssl/api/sign    0.329s
ok      github.com/cloudflare/cfssl/api/signhandler     0.056s
ok      github.com/cloudflare/cfssl/auth        0.002s
ok      github.com/cloudflare/cfssl/bundler     7.864s
?       github.com/cloudflare/cfssl/certdb      [no test files]
ok      github.com/cloudflare/cfssl/certdb/dbconf       0.003s
ok      github.com/cloudflare/cfssl/certdb/ocspstapling 1.103s
ok      github.com/cloudflare/cfssl/certdb/sql  0.369s
?       github.com/cloudflare/cfssl/certdb/testdb       [no test files]
?       github.com/cloudflare/cfssl/certinfo    [no test files]
ok      github.com/cloudflare/cfssl/cli 0.003s
ok      github.com/cloudflare/cfssl/cli/bundle  0.003s [no tests to run]
?       github.com/cloudflare/cfssl/cli/certinfo        [no test files]
ok      github.com/cloudflare/cfssl/cli/crl     0.061s
ok      github.com/cloudflare/cfssl/cli/gencert 1.518s
ok      github.com/cloudflare/cfssl/cli/gencrl  0.011s
ok      github.com/cloudflare/cfssl/cli/gencsr  0.010s
ok      github.com/cloudflare/cfssl/cli/genkey  0.583s
?       github.com/cloudflare/cfssl/cli/info    [no test files]
?       github.com/cloudflare/cfssl/cli/ocspdump        [no test files]
ok      github.com/cloudflare/cfssl/cli/ocsprefresh     0.068s
?       github.com/cloudflare/cfssl/cli/ocspserve       [no test files]
?       github.com/cloudflare/cfssl/cli/ocspsign        [no test files]
?       github.com/cloudflare/cfssl/cli/printdefault    [no test files]
ok      github.com/cloudflare/cfssl/cli/revoke  0.092s
ok      github.com/cloudflare/cfssl/cli/scan    0.003s
ok      github.com/cloudflare/cfssl/cli/selfsign        0.648s
ok      github.com/cloudflare/cfssl/cli/serve   0.016s
ok      github.com/cloudflare/cfssl/cli/sign    0.041s
ok      github.com/cloudflare/cfssl/cli/version 0.003s
ok      github.com/cloudflare/cfssl/cmd/cfssl   0.005s [no tests to run]
?       github.com/cloudflare/cfssl/cmd/cfssl-bundle    [no test files]
?       github.com/cloudflare/cfssl/cmd/cfssl-certinfo  [no test files]
?       github.com/cloudflare/cfssl/cmd/cfssl-newkey    [no test files]
?       github.com/cloudflare/cfssl/cmd/cfssl-scan      [no test files]
ok      github.com/cloudflare/cfssl/cmd/cfssljson       0.012s
ok      github.com/cloudflare/cfssl/cmd/mkbundle        0.011s [no tests
to run]
?       github.com/cloudflare/cfssl/cmd/multirootca     [no test files]
ok      github.com/cloudflare/cfssl/config      0.004s
ok      github.com/cloudflare/cfssl/crl 0.013s
?       github.com/cloudflare/cfssl/crypto      [no test files]
?       github.com/cloudflare/cfssl/crypto/pkcs7        [no test files]
ok      github.com/cloudflare/cfssl/csr 4.836s
ok      github.com/cloudflare/cfssl/errors      0.004s
ok      github.com/cloudflare/cfssl/helpers     0.037s
?       github.com/cloudflare/cfssl/helpers/derhelpers  [no test files]
ok      github.com/cloudflare/cfssl/helpers/testsuite   4.830s
?       github.com/cloudflare/cfssl/info        [no test files]
ok      github.com/cloudflare/cfssl/initca      17.794s
ok      github.com/cloudflare/cfssl/log 0.002s
ok      github.com/cloudflare/cfssl/multiroot/config    0.022s
ok      github.com/cloudflare/cfssl/ocsp        0.119s
?       github.com/cloudflare/cfssl/ocsp/config [no test files]
?       github.com/cloudflare/cfssl/ocsp/universal      [no test files]
ok      github.com/cloudflare/cfssl/revoke      2.172s
ok      github.com/cloudflare/cfssl/scan        0.003s
?       github.com/cloudflare/cfssl/scan/vendor/crypto  [no test files]
?       github.com/cloudflare/cfssl/scan/vendor/crypto/md5      [no test
files]
?       github.com/cloudflare/cfssl/scan/vendor/crypto/rsa      [no test
files]
?       github.com/cloudflare/cfssl/scan/vendor/crypto/sha1     [no test
files]
?       github.com/cloudflare/cfssl/scan/vendor/crypto/sha256   [no test
files]
?       github.com/cloudflare/cfssl/scan/vendor/crypto/sha512   [no test
files]
?       github.com/cloudflare/cfssl/scan/vendor/crypto/tls      [no test
files]
ok      github.com/cloudflare/cfssl/selfsign    0.011s
ok      github.com/cloudflare/cfssl/signer      0.003s
ok      github.com/cloudflare/cfssl/signer/local        0.419s
ok      github.com/cloudflare/cfssl/signer/remote       0.341s
ok      github.com/cloudflare/cfssl/signer/universal    0.262s
ok      github.com/cloudflare/cfssl/transport   0.017s
?       github.com/cloudflare/cfssl/transport/ca        [no test files]
ok      github.com/cloudflare/cfssl/transport/ca/localca        0.020s
ok      github.com/cloudflare/cfssl/transport/core      0.021s
?       github.com/cloudflare/cfssl/transport/example/exlib     [no test
files]
?       github.com/cloudflare/cfssl/transport/example/maclient  [no test
files]
?       github.com/cloudflare/cfssl/transport/example/maserver  [no test
files]
ok      github.com/cloudflare/cfssl/transport/kp        0.021s
?       github.com/cloudflare/cfssl/transport/roots     [no test files]
?       github.com/cloudflare/cfssl/transport/roots/system      [no test
files]
ok      github.com/cloudflare/cfssl/ubiquity    0.012s
ok      github.com/cloudflare/cfssl/whitelist   0.086s
?       github.com/cloudflare/cfssl/whitelist/example   [no test files]

```
2018-01-31 12:50:33 -08:00
Roland Bracewell Shoemaker 9c6a1f2adc Move deactivated pending authorizations to the authorization table (#3389)
Fixes #3238.
2018-01-29 23:42:27 -08:00
Roland Bracewell Shoemaker 1231f577d0 Allow revocation of certificate by issuing account and add integration tests (#3390)
Fixes #3331 and #3330.
2018-01-29 13:23:20 -08:00
Roland Bracewell Shoemaker 2adf5a54ab Move CN to SAN in v2 API (#3394)
Fixes #3368.

Basically just adds a `csr.VerifyCSR` call in `ra.FinalizeOrder` that mirrors what we have in `ra.NewCertificate`, this moves the CN to SAN as expected if included.
2018-01-29 13:21:12 -08:00
Roland Bracewell Shoemaker 8f168b909e Omit empty fields in JSON representation of core.ValidationRecord struct (#3399) 2018-01-29 10:51:57 -08:00
Roland Bracewell Shoemaker 88aa44e43d Reject NotBefore and NotAfter if sent in NewOrder Request (#3397)
Fixes #3363.
2018-01-29 10:50:39 -08:00
Roland Bracewell Shoemaker d7a831b81b Enforce single AIA in signing profiles (#3396)
Fixes #3374.
2018-01-29 10:50:04 -08:00
Roland Bracewell Shoemaker cdab3a2ef8 Improve wildcard error (#3398) 2018-01-29 10:49:31 -08:00
Roland Bracewell Shoemaker d916ccc9ed Only return nonce for non-GET unless req is for new-nonce (#3400) 2018-01-29 10:03:52 -08:00
Roland Bracewell Shoemaker 3e33d56d03 Remove test/config-next gating from unittests (#3395)
The migrations are all applied and the tests can run unconditionally.
2018-01-25 09:08:07 -05:00
Roland Bracewell Shoemaker fc5c8f76b6 Remove unused features (#3393)
This removes a number of unused features (i.e. they are never checked anywhere).
2018-01-25 08:55:05 -05:00
Bouke van der Bijl 308a4f4d45 Upgrade publicsuffix-go to 7881288 (#3391)
HEAD is now at 7881288 autopull: 2018-01-24T06:00:45Z (#102)
?     github.com/weppos/publicsuffix-go/cmd/load  [no test files]
=== RUN   TestPublicSuffix
--- PASS: TestPublicSuffix (0.00s)
=== RUN   TestEffectiveTLDPlusOne
--- PASS: TestEffectiveTLDPlusOne (0.00s)
PASS
ok    github.com/weppos/publicsuffix-go/net/publicsuffix  0.020s
=== RUN   TestValid
--- PASS: TestValid (0.00s)
=== RUN   TestIncludePrivate
--- PASS: TestIncludePrivate (0.00s)
=== RUN   TestIDNA
--- PASS: TestIDNA (0.00s)
=== RUN   TestPsl
--- PASS: TestPsl (0.01s)
=== RUN   TestNewListFromString
--- PASS: TestNewListFromString (0.00s)
=== RUN   TestNewListFromString_IDNAInputIsUnicode
--- PASS: TestNewListFromString_IDNAInputIsUnicode (0.00s)
=== RUN   TestNewListFromString_IDNAInputIsAscii
--- PASS: TestNewListFromString_IDNAInputIsAscii (0.00s)
=== RUN   TestNewListFromFile
--- PASS: TestNewListFromFile (0.00s)
=== RUN   TestListAddRule
--- PASS: TestListAddRule (0.00s)
=== RUN   TestListFind
--- PASS: TestListFind (0.00s)
=== RUN   TestNewRule_Normal
--- PASS: TestNewRule_Normal (0.00s)
=== RUN   TestNewRule_Wildcard
--- PASS: TestNewRule_Wildcard (0.00s)
=== RUN   TestNewRule_Exception
--- PASS: TestNewRule_Exception (0.00s)
=== RUN   TestNewRule_FromASCII
--- PASS: TestNewRule_FromASCII (0.00s)
=== RUN   TestNewRule_FromUnicode
--- PASS: TestNewRule_FromUnicode (0.00s)
=== RUN   TestNewRuleUnicode_FromASCII
--- PASS: TestNewRuleUnicode_FromASCII (0.00s)
=== RUN   TestNewRuleUnicode_FromUnicode
--- PASS: TestNewRuleUnicode_FromUnicode (0.00s)
=== RUN   TestRuleMatch
--- PASS: TestRuleMatch (0.00s)
=== RUN   TestRuleDecompose
--- PASS: TestRuleDecompose (0.00s)
=== RUN   TestLabels
--- PASS: TestLabels (0.00s)
=== RUN   TestToASCII
--- PASS: TestToASCII (0.00s)
=== RUN   TestCookieJarList
--- PASS: TestCookieJarList (0.00s)
PASS
ok    github.com/weppos/publicsuffix-go/publicsuffix  0.039s
2018-01-24 15:09:56 -08:00
Roland Bracewell Shoemaker 2a04a85c49 Export max DB connections in boulder-sa and ocsp-responder (#3388)
Fixes #3387.
2018-01-24 09:11:01 -05:00
Daniel McCarney d6a33d1108 Return full cert chain for V2 cert GET. (#3366)
This commit implements a mapping from certificate AIA Issuer URL to PEM
encoded certificate chain. GET's to the V2 Certificate endpoint will
return a full PEM encoded certificate chain in addition to the leaf cert
using the AIA issuer URL of the leaf cert and the configured mapping.

The boulder-wfe2 command builds the chain mapping by reading the
"wfe" config section's 'certificateChains" field, specifying a list
of file paths to PEM certificates for each AIA issuer URL. At startup
the PEM file contents are ready, verified and separated by a newline.
The resulting populated AIA issuer URL -> PEM cert chain mapping is
given to the WFE for use with the Certificate endpoint.

Resolves #3291
2018-01-19 11:23:44 -08:00
Roland Bracewell Shoemaker 230b397403 Fix wfe2 key rollover (#3373)
Fixes #3340.

Required some monkeying around with the test keys used.
2018-01-18 14:31:48 -08:00
Roland Bracewell Shoemaker 7e4d44e172 Don't mask sa.GetValidAuthorization error in ra.NewAuthorization (#3381) 2018-01-18 15:53:14 -05:00
Jacob Hoffman-Andrews f6ff59c9ab Move db-next migrations into db. (#3379)
These have now all been applied in production.
2018-01-18 15:13:21 -05:00
Jacob Hoffman-Andrews 54ca6fe939 Use WillingToIssueWildcard in cert-checker. (#3372)
Fixes #3348 and #3369
2018-01-18 08:36:58 -05:00
Daniel McCarney ba264a5091 Remove unused WFE2 feature flags. (#3375)
The WFE2 doesn't check any of the feature flags that are configured in
the `test/config/wfe2.json` and `test/config-next/wfe2.json` config
files - we default to acting as if all new features are enabled for the
V2 work. This commit removes the flags from the config to avoid
confusion or expectations that changing the config will disable the
features.
2018-01-17 12:28:19 -08:00
Daniel McCarney c6d56b7a84 Match RA `authorizationLifetimeDays` to prod. (#3370) 2018-01-16 10:39:57 -08:00
Daniel McCarney f969847070 Delete unused WFE/WFE2 cache configuration params. (#3360)
This commit removes `CertCacheDuration`, `CertNoCacheExpirationWindow`,
`IndexCacheDuration` and `IssuerCacheDuration`. These were read from
config values that weren't set in config/config-next into WFE struct
fields that were never referenced in any code.
2018-01-12 15:54:02 -08:00
Jacob Hoffman-Andrews cfc7823cdd
Remove EnforceChallengeDisable check at issuance. (#3362)
Per
https://community.letsencrypt.org/t/2018-01-11-update-regarding-acme-tls-sni-and-shared-hosting-infrastructure/50188/3,
we are planning to treat prior issuance by an account as reason to whitelist
that account for reissuance via TLS-SNI. By extension, reusing validations that
occurred prior to disclosure of the TLS-SNI issue is reasonably safe, so this
change removes the issuance-time check for whether a challenge has been
disabled. This saves us significant complexity and database load in implementing
TLSSNIRevalidation (https://github.com/letsencrypt/boulder/pull/3361), since
ChallengeTypeEnabled returns false, so we'd have to plumb through data about
whether an issuance was based on a revalidation. Instead, we can safely delete
this code.

Note that "EnforceChallengeDisable" is implemented in three places: new-authz,
validation time, and issuance time. We're keeping it in place at new-authz for
now because it's intertwined with the account whitelisting code. We're keeping
it in place at validation time, because there's a small chance that someone
could have created a pending authz for a domain they don't control before the
TLS-SNI issue was announced, and that authz could still be pending, and they
could find out that that domain is hosted on a vulnerable provider, and use the
vulnerability now that they know about it. A tiny chance, but may as well be
careful.
2018-01-12 11:35:23 -08:00
Jacob Hoffman-Andrews 8153b919be
Implement TLSSNIRevalidation (#3361)
This change adds a feature flag, TLSSNIRevalidation. When it is enabled, Boulder
will create new authorization objects with TLS-SNI challenges if the requesting
account has issued a certificate with the relevant domain name, and was the most
recent account to do so*. This setting overrides the configured list of
challenges in the PolicyAuthority, so even if TLS-SNI is disabled in general, it
will be enabled for revalidation.

Note that this interacts with EnforceChallengeDisable. Because
EnforceChallengeDisable causes additional checked at validation time and at
issuance time, we need to update those two places as well. We'll send a
follow-up PR with that.

*We chose to make this work only for the most recent account to issue, even if
there were overlapping certificates, because it significantly simplifies the
database access patterns and should work for 95+% of cases.

Note that this change will let an account revalidate and reissue for a domain
even if the previous issuance on that account used http-01 or dns-01. This also
simplifies implementation, and fits within the intent of the mitigation plan: If
someone previously issued for a domain using http-01, we have high confidence
that they are actually the owner, and they are not going to "steal" the domain
from themselves using tls-sni-01.

Also note: This change also doesn't work properly with ReusePendingAuthz: true.
Specifically, if you attempted issuance in the last couple days and failed
because there was no tls-sni challenge, you'll still have an http-01 challenge
lying around, and we'll reuse that; then your client will fail due to lack of
tls-sni challenge again.

This change was joint work between @rolandshoemaker and @jsha.
2018-01-12 11:00:06 -08:00
Jacob Hoffman-Andrews 198fd1426a Bring config up-to-date with prod. (#3359)
This brings in some changes from config-next that are now live in production.
2018-01-11 16:29:41 -05:00
Andrew Gabbitas 50596ef386 Remove redundant semicolon. (#3355)
The redundant semicolon breaks the goose down
function for this migration
2018-01-10 16:26:53 -08:00
Maciej Dębski 44984cd84a Implement regID whitelist for allowed challenge types. (#3352)
This updates the PA component to allow authorization challenge types that are globally disabled if the account ID owning the authorization is on a configured whitelist for that challenge type.
2018-01-10 13:44:53 -05:00
Jacob Hoffman-Andrews cbcfce44ab
Disallow the use of disabled challenge types (#3351)
This patch does three things:
* Prevent the use of a authorization for issuance that was validated using a disabled challenge type
* Don't reuse a authorization that was validated using a disabled challenge type
* Don't allow validation using a disabled validation type

And adds tests for all three cases.

It also factors out the challenge-fetching code common to several SA functions into
a new getChallenges function, and adds a call to getChallenges as part of getAuthorizations.
2018-01-09 21:18:46 -08:00
Roland Shoemaker d07092baf5 Satisfy travis 2018-01-09 21:06:41 -08:00
Roland Shoemaker d92713826c remove debug statements 2018-01-09 20:58:53 -08:00
Roland Shoemaker 4d7f68de21 Properly flag gate SA authorization challenge population 2018-01-09 20:53:04 -08:00
Roland Shoemaker 400ffede3d More fixes 2018-01-09 20:48:16 -08:00
Roland Shoemaker 1a3a76438c Fix tests and GetOrderAuthorizations 2018-01-09 20:38:52 -08:00