digicert 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +62 -51
- data/CHANGELOG.md +5 -0
- data/README.md +36 -1
- data/lib/digicert/client_certificate/private_premium.rb +13 -0
- data/lib/digicert/order.rb +1 -0
- data/lib/digicert/version.rb +1 -1
- data/spec/acceptance/certificate_download_spec.rb +64 -33
- data/spec/digicert/client_certificate/private_premium_spec.rb +30 -0
- data/spec/fixtures/order_created_with_immediate_issuance.json +24 -0
- data/spec/support/fake_digicert_api.rb +9 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 887669f2db4c933b460abb1314bdb46c983d35af
|
4
|
+
data.tar.gz: 417f9b150c70c521493bf0492e3d0a722a2ae966
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d06d51b8585a96e2385c47aeea0106c2ba8c2b9c4b97f9950b004c474109f67a1097044a57d623fd76c5e87b16e32c0e794eee0354df9a0da015fb33f6d1ca6
|
7
|
+
data.tar.gz: '09d586baf9055abeb8a35e766161489bbb253b881324e9e44ac59b189f9672ebf0410a833244d626df6335421303bb8213df2d89a813fb89ef144462bd6f199b'
|
data/.rubocop.yml
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
AllCops:
|
2
|
-
|
2
|
+
Include:
|
3
|
+
- "**/*.rake"
|
4
|
+
- "**/Gemfile"
|
5
|
+
- "**/Rakefile"
|
3
6
|
|
4
7
|
Exclude:
|
5
8
|
- db/schema.rb
|
6
9
|
|
7
|
-
|
10
|
+
Naming/AccessorMethodName:
|
8
11
|
Description: Check the naming of accessor methods for get_/set_.
|
9
12
|
Enabled: false
|
10
13
|
|
@@ -23,7 +26,7 @@ Style/AsciiComments:
|
|
23
26
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
|
24
27
|
Enabled: false
|
25
28
|
|
26
|
-
|
29
|
+
Naming/AsciiIdentifiers:
|
27
30
|
Description: 'Use only ascii symbols in identifiers.'
|
28
31
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
|
29
32
|
Enabled: false
|
@@ -92,6 +95,13 @@ Metrics/AbcSize:
|
|
92
95
|
branches, and conditions.
|
93
96
|
Enabled: false
|
94
97
|
|
98
|
+
Metrics/BlockLength:
|
99
|
+
CountComments: true # count full line comments?
|
100
|
+
Max: 25
|
101
|
+
ExcludedMethods: []
|
102
|
+
Exclude:
|
103
|
+
- "spec/**/*"
|
104
|
+
|
95
105
|
Metrics/CyclomaticComplexity:
|
96
106
|
Description: >-
|
97
107
|
A complexity metric that is strongly correlated to the number
|
@@ -102,20 +112,15 @@ Rails/Delegate:
|
|
102
112
|
Description: 'Prefer delegate method for delegations.'
|
103
113
|
Enabled: false
|
104
114
|
|
105
|
-
Style/
|
106
|
-
Description: 'Checks
|
107
|
-
StyleGuide: '
|
115
|
+
Style/PreferredHashMethods:
|
116
|
+
Description: 'Checks use of `has_key?` and `has_value?` Hash methods.'
|
117
|
+
StyleGuide: '#hash-key'
|
108
118
|
Enabled: false
|
109
119
|
|
110
120
|
Style/Documentation:
|
111
121
|
Description: 'Document classes and non-namespace modules.'
|
112
122
|
Enabled: false
|
113
123
|
|
114
|
-
Style/DotPosition:
|
115
|
-
Description: 'Checks the position of the dot in multi-line method calls.'
|
116
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
|
117
|
-
EnforcedStyle: trailing
|
118
|
-
|
119
124
|
Style/DoubleNegation:
|
120
125
|
Description: 'Checks for uses of double negation (!!).'
|
121
126
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
|
@@ -141,15 +146,17 @@ Style/EvenOdd:
|
|
141
146
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
|
142
147
|
Enabled: false
|
143
148
|
|
144
|
-
|
145
|
-
Description: 'Do not use unnecessary spacing.'
|
146
|
-
Enabled: true
|
147
|
-
|
148
|
-
Style/FileName:
|
149
|
+
Naming/FileName:
|
149
150
|
Description: 'Use snake_case for source file names.'
|
150
151
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
|
151
152
|
Enabled: false
|
152
153
|
|
154
|
+
Style/FrozenStringLiteralComment:
|
155
|
+
Description: >-
|
156
|
+
Add the frozen_string_literal comment to the top of files
|
157
|
+
to help transition from Ruby 2.3.0 to Ruby 3.0.
|
158
|
+
Enabled: false
|
159
|
+
|
153
160
|
Style/FlipFlop:
|
154
161
|
Description: 'Checks for flip flops'
|
155
162
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
|
@@ -218,25 +225,11 @@ Style/ModuleFunction:
|
|
218
225
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
|
219
226
|
Enabled: false
|
220
227
|
|
221
|
-
Style/MultilineOperationIndentation:
|
222
|
-
Description: >-
|
223
|
-
Checks indentation of binary operations that span more than
|
224
|
-
one line.
|
225
|
-
Enabled: true
|
226
|
-
EnforcedStyle: indented
|
227
|
-
|
228
228
|
Style/MultilineBlockChain:
|
229
229
|
Description: 'Avoid multi-line chains of blocks.'
|
230
230
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
|
231
231
|
Enabled: false
|
232
232
|
|
233
|
-
Style/MultilineMethodCallIndentation:
|
234
|
-
Description: >-
|
235
|
-
Checks indentation of method calls with the dot operator
|
236
|
-
that span more than one line.
|
237
|
-
Enabled: true
|
238
|
-
EnforcedStyle: indented
|
239
|
-
|
240
233
|
Style/NegatedIf:
|
241
234
|
Description: >-
|
242
235
|
Favor unless over if for negative conditions
|
@@ -278,7 +271,7 @@ Style/OneLineConditional:
|
|
278
271
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
|
279
272
|
Enabled: false
|
280
273
|
|
281
|
-
|
274
|
+
Naming/BinaryOperatorParameterName:
|
282
275
|
Description: 'When defining binary operators, name the argument other.'
|
283
276
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
|
284
277
|
Enabled: false
|
@@ -298,7 +291,7 @@ Style/PerlBackrefs:
|
|
298
291
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
|
299
292
|
Enabled: false
|
300
293
|
|
301
|
-
|
294
|
+
Naming/PredicateName:
|
302
295
|
Description: 'Check the names of predicate methods.'
|
303
296
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
|
304
297
|
NamePrefixBlacklist:
|
@@ -353,18 +346,12 @@ Style/StringLiterals:
|
|
353
346
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
|
354
347
|
EnforcedStyle: double_quotes
|
355
348
|
Enabled: true
|
356
|
-
SupportedStyles:
|
357
|
-
- single_quotes
|
358
|
-
- double_quotes
|
359
|
-
|
360
|
-
Style/FrozenStringLiteralComment:
|
361
|
-
Enabled: false
|
362
349
|
|
363
350
|
Style/TrailingCommaInArguments:
|
364
351
|
Description: 'Checks for trailing comma in argument lists.'
|
365
352
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
366
353
|
EnforcedStyleForMultiline: comma
|
367
|
-
|
354
|
+
SupportedStylesForMultiline:
|
368
355
|
- comma
|
369
356
|
- consistent_comma
|
370
357
|
- no_comma
|
@@ -374,7 +361,7 @@ Style/TrailingCommaInLiteral:
|
|
374
361
|
Description: 'Checks for trailing comma in array and hash literals.'
|
375
362
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
376
363
|
EnforcedStyleForMultiline: comma
|
377
|
-
|
364
|
+
SupportedStylesForMultiline:
|
378
365
|
- comma
|
379
366
|
- consistent_comma
|
380
367
|
- no_comma
|
@@ -409,6 +396,41 @@ Style/WordArray:
|
|
409
396
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
|
410
397
|
Enabled: false
|
411
398
|
|
399
|
+
# Layout
|
400
|
+
|
401
|
+
Layout/AlignParameters:
|
402
|
+
Description: 'Here we check if the parameters on a multi-line method call or definition are aligned.'
|
403
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
|
404
|
+
Enabled: false
|
405
|
+
|
406
|
+
Layout/DotPosition:
|
407
|
+
Description: 'Checks the position of the dot in multi-line method calls.'
|
408
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
|
409
|
+
EnforcedStyle: trailing
|
410
|
+
|
411
|
+
Layout/ExtraSpacing:
|
412
|
+
Description: 'Do not use unnecessary spacing.'
|
413
|
+
Enabled: true
|
414
|
+
|
415
|
+
Layout/MultilineOperationIndentation:
|
416
|
+
Description: >-
|
417
|
+
Checks indentation of binary operations that span more than
|
418
|
+
one line.
|
419
|
+
Enabled: true
|
420
|
+
EnforcedStyle: indented
|
421
|
+
|
422
|
+
Layout/MultilineMethodCallIndentation:
|
423
|
+
Description: >-
|
424
|
+
Checks indentation of method calls with the dot operator
|
425
|
+
that span more than one line.
|
426
|
+
Enabled: true
|
427
|
+
EnforcedStyle: indented
|
428
|
+
|
429
|
+
Layout/InitialIndentation:
|
430
|
+
Description: >-
|
431
|
+
Checks the indentation of the first non-blank non-comment line in a file.
|
432
|
+
Enabled: false
|
433
|
+
|
412
434
|
# Lint
|
413
435
|
|
414
436
|
Lint/AmbiguousOperator:
|
@@ -465,17 +487,6 @@ Lint/HandleExceptions:
|
|
465
487
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
|
466
488
|
Enabled: false
|
467
489
|
|
468
|
-
Lint/InvalidCharacterLiteral:
|
469
|
-
Description: >-
|
470
|
-
Checks for invalid character literals with a non-escaped
|
471
|
-
whitespace character.
|
472
|
-
Enabled: false
|
473
|
-
|
474
|
-
Style/InitialIndentation:
|
475
|
-
Description: >-
|
476
|
-
Checks the indentation of the first non-blank non-comment line in a file.
|
477
|
-
Enabled: false
|
478
|
-
|
479
490
|
Lint/LiteralInCondition:
|
480
491
|
Description: 'Checks of literals used in conditions.'
|
481
492
|
Enabled: false
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -250,6 +250,17 @@ Digicert::Domain.all(filter_params_hash)
|
|
250
250
|
|
251
251
|
### Submitting Orders
|
252
252
|
|
253
|
+
#### Important Note
|
254
|
+
|
255
|
+
Recently DigiCert improved the certificate issuance process to allow for
|
256
|
+
[immediate certificate issuance]. It does not require us to change anything on
|
257
|
+
our API calls but now the response will be different based on your DigiCert
|
258
|
+
account settings.
|
259
|
+
|
260
|
+
If you have everything setup in place and any order is eligible for immediate
|
261
|
+
issuance then the certificate will be included with the response. Please check
|
262
|
+
the [certificate download spec] for inspiration.
|
263
|
+
|
253
264
|
#### View Product List
|
254
265
|
|
255
266
|
Use this interface to retrieve a list of available products for an account.
|
@@ -276,7 +287,7 @@ Digicert::CSRGenerator.generate(
|
|
276
287
|
common_name: "example.com",
|
277
288
|
san_names: ["example.com", "www.example.com"],
|
278
289
|
rsa_key: File.read("your_rsa_key_file_path"),
|
279
|
-
organization: Digicert::Organization.first,
|
290
|
+
organization: Digicert::Organization.all.first,
|
280
291
|
)
|
281
292
|
```
|
282
293
|
|
@@ -426,6 +437,28 @@ Digicert::ClientCertificate::Premium.create(
|
|
426
437
|
)
|
427
438
|
```
|
428
439
|
|
440
|
+
#### Order Private Client Premium Certificate
|
441
|
+
|
442
|
+
Use this interface to order a Private Client Premium Certificate.
|
443
|
+
|
444
|
+
```ruby
|
445
|
+
Digicert::ClientCertificate::PrivatePremium.create(
|
446
|
+
certificate: {
|
447
|
+
organization_units: ["Developer Operations"],
|
448
|
+
|
449
|
+
csr: "------ [CSR HERE] ------",
|
450
|
+
emails: ["a.name@example.com"],
|
451
|
+
common_name: "Common Name",
|
452
|
+
signature_hash: "sha256",
|
453
|
+
},
|
454
|
+
organization: { id: "12345" },
|
455
|
+
validity_years: 3,
|
456
|
+
auto_renew: nil,
|
457
|
+
container: { id: "654321" },
|
458
|
+
payment_method: "balance",
|
459
|
+
)
|
460
|
+
```
|
461
|
+
|
429
462
|
#### Order Email Security Plus
|
430
463
|
|
431
464
|
Use this interface to order a Email Security Plus Certificate
|
@@ -864,3 +897,5 @@ This gem is developed, maintained and funded by [Ribose Inc.][riboseinc]
|
|
864
897
|
[issues]: https://github.com/riboseinc/digicert/issues
|
865
898
|
[squash]: https://github.com/thoughtbot/guides/tree/master/protocol/git#write-a-feature
|
866
899
|
[sandi-metz]: http://robots.thoughtbot.com/post/50655960596/sandi-metz-rules-for-developers
|
900
|
+
[immediate certificate issuance]: https://www.digicert.com/certcentral-support/immediate-certificate-issuance-feature.htm
|
901
|
+
[certificate download spec]: https://github.com/riboseinc/digicert/blob/master/spec/acceptance/certificate_download_spec.rb#L5
|
data/lib/digicert/order.rb
CHANGED
@@ -6,6 +6,7 @@ require "digicert/ssl_certificate/ssl_ev_plus"
|
|
6
6
|
require "digicert/ssl_certificate/ssl_wildcard"
|
7
7
|
|
8
8
|
require "digicert/client_certificate/premium"
|
9
|
+
require "digicert/client_certificate/private_premium"
|
9
10
|
require "digicert/client_certificate/email_security_plus"
|
10
11
|
require "digicert/client_certificate/digital_signature_plus"
|
11
12
|
|
data/lib/digicert/version.rb
CHANGED
@@ -2,44 +2,75 @@ require "spec_helper"
|
|
2
2
|
require "digicert"
|
3
3
|
|
4
4
|
RSpec.describe "Download a certificate" do
|
5
|
-
|
6
|
-
|
5
|
+
context "with immediate issuance" do
|
6
|
+
it "creates an download the certificate instantly" do
|
7
|
+
name_id = "ssl_plus"
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
# Retrieve the product details uisng the
|
10
|
+
# name id specificed for that specific one
|
11
|
+
#
|
12
|
+
stub_digicert_product_fetch_api(name_id)
|
13
|
+
product = Digicert::Product.fetch(name_id)
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
# Order a new certificate using the product details
|
16
|
+
# server platform, signature hash and other fields
|
17
|
+
#
|
18
|
+
order_attributes = build_order_attributes(product)
|
19
|
+
stub_digicert_order_with_immediate_issuance("ssl_plus", order_attributes)
|
20
|
+
order = Digicert::Order.create("ssl_plus", order_attributes)
|
20
21
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
stub_digicert_order_fetch_api(order.id)
|
26
|
-
certificate_order = Digicert::Order.fetch(order.id)
|
22
|
+
expect(
|
23
|
+
order.certificate_chain.first.pem.
|
24
|
+
start_with?("-----BEGIN CERTIFICATE")
|
25
|
+
).to be_truthy
|
27
26
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
expect(order.id).not_to be_nil
|
28
|
+
expect(order.certificate_id).not_to be_nil
|
29
|
+
expect(order.certificate_chain.count).to eq(3)
|
30
|
+
expect(order.requests.first.status).to eq("approved")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "without immediate issuance" do
|
35
|
+
it "creates and download an approved certificate" do
|
36
|
+
name_id = "ssl_plus"
|
37
|
+
|
38
|
+
# Retrieve the product details uisng the
|
39
|
+
# name id specificed for that specific one
|
40
|
+
#
|
41
|
+
stub_digicert_product_fetch_api(name_id)
|
42
|
+
product = Digicert::Product.fetch(name_id)
|
43
|
+
|
44
|
+
# Order a new certificate using the product details
|
45
|
+
# server platform, signature hash and other fields
|
46
|
+
#
|
47
|
+
order_attributes = build_order_attributes(product)
|
48
|
+
stub_digicert_order_create_api("ssl_plus", order_attributes)
|
49
|
+
order = Digicert::Order.create("ssl_plus", order_attributes)
|
50
|
+
|
51
|
+
# Retrieve the certificate order details with the
|
52
|
+
# certificate id in it, so we can use this one to
|
53
|
+
# download the certificate using the API
|
54
|
+
#
|
55
|
+
stub_digicert_order_fetch_api(order.id)
|
56
|
+
certificate_order = Digicert::Order.fetch(order.id)
|
57
|
+
|
58
|
+
# Now that we have the certicate orders detials with
|
59
|
+
# the certificate id and the order status, so let's assume
|
60
|
+
# all requiremetns are meet and let's fetch the certificate
|
61
|
+
#
|
62
|
+
certificate_id = certificate_order.certificate.id
|
63
|
+
stub_digicert_certificate_download_by_platform(certificate_id)
|
64
|
+
certificate = Digicert::CertificateDownloader.fetch(certificate_id)
|
35
65
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
66
|
+
# Normally zip archieves content starts with `PK` and then
|
67
|
+
# the content of the files inside the zip folder
|
68
|
+
#
|
69
|
+
# Source: http://filext.com/faq/look_into_files.php
|
70
|
+
#
|
71
|
+
expect(certificate.code.to_i).to eq(200)
|
72
|
+
expect(certificate.body.start_with?("PK")).to be_truthy
|
73
|
+
end
|
43
74
|
end
|
44
75
|
|
45
76
|
def build_order_attributes(product)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Digicert::ClientCertificate::PrivatePremium do
|
4
|
+
describe ".create" do
|
5
|
+
it "creates a new order for a client private premium certificate" do
|
6
|
+
stub_digicert_order_create_api("private_client_premium", order_attributes)
|
7
|
+
order = Digicert::ClientCertificate::PrivatePremium.create(order_attributes)
|
8
|
+
|
9
|
+
expect(order.id).not_to be_nil
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def order_attributes
|
14
|
+
{
|
15
|
+
certificate: {
|
16
|
+
organization_units: ["Developers"],
|
17
|
+
|
18
|
+
csr: "----- CSR HERE -----",
|
19
|
+
emails: ["a.name@example.com"],
|
20
|
+
common_name: "A Name",
|
21
|
+
signature_hash: "sha256",
|
22
|
+
},
|
23
|
+
organization: { id: "12345" },
|
24
|
+
validity_years: 3,
|
25
|
+
auto_renew: nil,
|
26
|
+
container: { id: "654321" },
|
27
|
+
payment_method: "balance"
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"id": 123456789,
|
3
|
+
"requests": [
|
4
|
+
{
|
5
|
+
"id": 987654321,
|
6
|
+
"status":"approved"
|
7
|
+
}
|
8
|
+
],
|
9
|
+
"certificate_id": 456789123,
|
10
|
+
"certificate_chain": [
|
11
|
+
{
|
12
|
+
"subject_common_name":"*.ribosetest.com",
|
13
|
+
"pem":"-----BEGIN CERTIFICATE-----\r\nMIIFJjCCBA6gAwIBAgIQBzZmRrds99wbDkLGqgLQUTANBgkqhkiG9w0BAQsFADBN\r\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E\r\naWdpQ2VydCBTSEEyIFNlY3VyZSBTZXJ2ZXIgQ0EwHhcNMTcxMDA5MDAwMDAwWhcN\r\nMTcxMDEyMTIwMDAwWjBmMQswCQYDVQQGEwJVUzERMA8GA1UECBMIRGVsYXdhcmUx\r\nEzARBgNVBAcTCldpbG1pbmd0b24xFDASBgNVBAoTC1JpYm9zZSBJbmMuMRkwFwYD\r\nVQQDDBAqLnJpYm9zZXRlc3QuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\r\nCgKCAQEA08DFkS\/DoUmbX8q0sANL7Wl198bFwoRXHxlXpd\/OudhMn+Og\/YqwAdyK\r\nZbeiaq494PKWdradOHTRH4m9+2\/LBvUTXHrgc9o1tr6Iu7WtJT8R9JKOI4epIkRZ\r\nyRXd4qBM8unIU53OYuzLakrJLYSHEMDZvCC59u\/iRglupwRJfPvNRNgOADSnBV7g\r\nH5yt+bL9J6PtUHGouT6SL1Gq8QI6qeRKEfTasnaiNXEcf73tRYWOW6CKva4sds1t\r\nG3p7yPcrsMYI2GSVQel5SXlKWipLd5ZD3Py7yJtZzPwRs+s02Cp7dpdzE9My\/wv+\r\npFIvBWchrw2IuZGXdvxq0rfxvttb1QIDAQABo4IB5zCCAeMwHwYDVR0jBBgwFoAU\r\nD4BhHIIxYdUvKOeNRji0LOHG2eIwHQYDVR0OBBYEFLeHRKqDcuUf4wR5YBPCCjBu\r\nt4TIMCsGA1UdEQQkMCKCECoucmlib3NldGVzdC5jb22CDnJpYm9zZXRlc3QuY29t\r\nMA4GA1UdDwEB\/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\r\nawYDVR0fBGQwYjAvoC2gK4YpaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NzY2Et\r\nc2hhMi1nMS5jcmwwL6AtoCuGKWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zc2Nh\r\nLXNoYTItZzEuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAEBMCowKAYIKwYBBQUH\r\nAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQICMHwGCCsG\r\nAQUFBwEBBHAwbjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t\r\nMEYGCCsGAQUFBzAChjpodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNl\r\ncnRTSEEyU2VjdXJlU2VydmVyQ0EuY3J0MAwGA1UdEwEB\/wQCMAAwDQYJKoZIhvcN\r\nAQELBQADggEBADwbIoMtQIA3\/pESMFNzfmPcye6X4tTTLwIUy9MrAKp2m3CZE3ly\r\nar7yO1N03lthCcCsS4Yjr\/WXUeTapz3\/fRgPmKYBpevkJwIIBZP3vQt37CsJY4Iq\r\nvvqempjxadLdB0SxJp02OKh42v+fUSYr624I9qVrFvQ9X7TvCl8ZrMpYPPGGi\/MP\r\nc9z3YOHf5NMBTQfZCw1T5WFZRA3nM2o9yrGYnc5TJg+G31sd+wKXKOGXt5P3ddSU\r\nAPSkVfgHeUFgoM24fhv6tSEk3WU0wtHPd855VeXXE44pgcsGUWUjEdTC1Dx6tDUu\r\n3be4D8b66CesfHzvHKbtzOe4LTVnyVxzDG8=\r\n-----END CERTIFICATE-----\r\n"
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"subject_common_name":"DigiCert SHA2 Secure Server CA",
|
17
|
+
"pem":"-----BEGIN CERTIFICATE-----\r\nMIIElDCCA3ygAwIBAgIQAf2j627KdciIQ4tyS8+8kTANBgkqhkiG9w0BAQsFADBh\r\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\r\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\r\nQTAeFw0xMzAzMDgxMjAwMDBaFw0yMzAzMDgxMjAwMDBaME0xCzAJBgNVBAYTAlVT\r\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxJzAlBgNVBAMTHkRpZ2lDZXJ0IFNIQTIg\r\nU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\r\nANyuWJBNwcQwFZA1W248ghX1LFy949v\/cUP6ZCWA1O4Yok3wZtAKc24RmDYXZK83\r\nnf36QYSvx6+M\/hpzTc8zl5CilodTgyu5pnVILR1WN3vaMTIa16yrBvSqXUu3R0bd\r\nKpPDkC55gIDvEwRqFDu1m5K+wgdlTvza\/P96rtxcflUxDOg5B6TXvi\/TC2rSsd9f\r\n\/ld0Uzs1gN2ujkSYs58O09rg1\/RrKatEp0tYhG2SS4HD2nOLEpdIkARFdRrdNzGX\r\nkujNVA075ME\/OV4uuPNcfhCOhkEAjUVmR7ChZc6gqikJTvOX6+guqw9ypzAO+sf0\r\n\/RR3w6RbKFfCs\/mC\/bdFWJsCAwEAAaOCAVowggFWMBIGA1UdEwEB\/wQIMAYBAf8C\r\nAQAwDgYDVR0PAQH\/BAQDAgGGMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYY\r\naHR0cDovL29jc3AuZGlnaWNlcnQuY29tMHsGA1UdHwR0MHIwN6A1oDOGMWh0dHA6\r\nLy9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwN6A1\r\noDOGMWh0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RD\r\nQS5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v\r\nd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwHQYDVR0OBBYEFA+AYRyCMWHVLyjnjUY4tCzh\r\nxtniMB8GA1UdIwQYMBaAFAPeUDVW0Uy7ZvCj4hsbw5eyPdFVMA0GCSqGSIb3DQEB\r\nCwUAA4IBAQAjPt9L0jFCpbZ+QlwaRMxp0Wi0XUvgBCFsS+JtzLHgl4+mUwnNqipl\r\n5TlPHoOlblyYoiQm5vuh7ZPHLgLGTUq\/sELfeNqzqPlt\/yGFUzZgTHbO7Djc1lGA\r\n8MXW5dRNJ2Srm8c+cftIl7gzbckTB+6WohsYFfZcTEDts8Ls\/3HB40f\/1LkAtDdC\r\n2iDJ6m6K7hQGrn2iWZiIqBtvLfTyyRRfJs8sjX7tN8Cp1Tm5gr8ZDOo0rwAhaPit\r\nc+LJMto4JQtV05od8GiG7S5BNO98pVAdvzr508EIDObtHopYJeS4d60tbvVS3bR0\r\nj6tJLp07kzQoH3jOlOrHvdPJbRzeXDLz\r\n-----END CERTIFICATE-----\r\n"
|
18
|
+
},
|
19
|
+
{
|
20
|
+
"subject_common_name":"DigiCert Global Root CA",
|
21
|
+
"pem":"-----BEGIN CERTIFICATE-----\r\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\r\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\r\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\r\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\r\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\r\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\r\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\r\nCSDMAZOnTjC3U\/dDxGkAV53ijSLdhwZAAIEJzs4bg7\/fzTtxRuLWZscFs3YnFo97\r\nnh6Vfe63SKMI2tavegw5BmV\/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\r\n43C\/dxC\/\/AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\r\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr\/y7vrTC0LUq7dBMtoM1O\/4\r\ngdW7jVg\/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\r\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH\/BAUwAwEB\/zAdBgNVHQ4EFgQUA95QNVbR\r\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\r\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY\/Esr\r\nhMAtudXH\/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp\/2PV5Adg\r\n06O\/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\r\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\r\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\r\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\r\n-----END CERTIFICATE-----\r\n"
|
22
|
+
}
|
23
|
+
]
|
24
|
+
}
|
@@ -47,6 +47,15 @@ module Digicert
|
|
47
47
|
)
|
48
48
|
end
|
49
49
|
|
50
|
+
def stub_digicert_order_with_immediate_issuance(cert_type, attributes)
|
51
|
+
stub_api_response(
|
52
|
+
:post,
|
53
|
+
["order/certificate", cert_type].join("/"),
|
54
|
+
filename: "order_created_with_immediate_issuance",
|
55
|
+
status: 201,
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
50
59
|
def stub_digicert_order_fetch_api(order_id)
|
51
60
|
stub_api_response(
|
52
61
|
:get, ["order/certificate", order_id].join("/"), filename: "order"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: digicert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08
|
11
|
+
date: 2017-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: r509
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/digicert/client_certificate/digital_signature_plus.rb
|
149
149
|
- lib/digicert/client_certificate/email_security_plus.rb
|
150
150
|
- lib/digicert/client_certificate/premium.rb
|
151
|
+
- lib/digicert/client_certificate/private_premium.rb
|
151
152
|
- lib/digicert/config.rb
|
152
153
|
- lib/digicert/configuration.rb
|
153
154
|
- lib/digicert/container.rb
|
@@ -194,6 +195,7 @@ files:
|
|
194
195
|
- spec/digicert/client_certificate/digital_signature_plus_spec.rb
|
195
196
|
- spec/digicert/client_certificate/email_security_plus_spec.rb
|
196
197
|
- spec/digicert/client_certificate/premium_spec.rb
|
198
|
+
- spec/digicert/client_certificate/private_premium_spec.rb
|
197
199
|
- spec/digicert/config_spec.rb
|
198
200
|
- spec/digicert/container_spec.rb
|
199
201
|
- spec/digicert/container_template_spec.rb
|
@@ -234,6 +236,7 @@ files:
|
|
234
236
|
- spec/fixtures/expiring_orders.json
|
235
237
|
- spec/fixtures/order.json
|
236
238
|
- spec/fixtures/order_created.json
|
239
|
+
- spec/fixtures/order_created_with_immediate_issuance.json
|
237
240
|
- spec/fixtures/order_duplicated.json
|
238
241
|
- spec/fixtures/order_duplications.json
|
239
242
|
- spec/fixtures/order_reissued.json
|