r509 0.10.0 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.mdown +2 -2
  5. data/Rakefile +2 -3
  6. data/bin/r509 +77 -80
  7. data/bin/r509-parse +4 -4
  8. data/doc/R509.html +60 -60
  9. data/doc/R509/ASN1.html +158 -48
  10. data/doc/R509/ASN1/GeneralName.html +157 -154
  11. data/doc/R509/ASN1/GeneralNames.html +246 -237
  12. data/doc/R509/CRL.html +41 -39
  13. data/doc/R509/CRL/Administrator.html +105 -100
  14. data/doc/R509/CRL/FileReaderWriter.html +146 -98
  15. data/doc/R509/CRL/ReaderWriter.html +57 -54
  16. data/doc/R509/CRL/SQLiteReaderWriter.html +727 -0
  17. data/doc/R509/CRL/SignedList.html +83 -80
  18. data/doc/R509/CSR.html +184 -162
  19. data/doc/R509/Cert.html +271 -269
  20. data/doc/R509/Cert/Extensions.html +62 -63
  21. data/doc/R509/Cert/Extensions/AuthorityInfoAccess.html +138 -108
  22. data/doc/R509/Cert/Extensions/AuthorityKeyIdentifier.html +100 -84
  23. data/doc/R509/Cert/Extensions/BasicConstraints.html +89 -88
  24. data/doc/R509/Cert/Extensions/CRLDistributionPoints.html +87 -83
  25. data/doc/R509/Cert/Extensions/CertificatePolicies.html +78 -76
  26. data/doc/R509/Cert/Extensions/ExtendedKeyUsage.html +128 -125
  27. data/doc/R509/Cert/Extensions/GeneralNamesMixin.html +83 -78
  28. data/doc/R509/Cert/Extensions/InhibitAnyPolicy.html +69 -67
  29. data/doc/R509/Cert/Extensions/KeyUsage.html +138 -135
  30. data/doc/R509/Cert/Extensions/NameConstraints.html +82 -81
  31. data/doc/R509/Cert/Extensions/NoticeReference.html +59 -56
  32. data/doc/R509/Cert/Extensions/OCSPNoCheck.html +70 -69
  33. data/doc/R509/Cert/Extensions/PolicyConstraints.html +71 -69
  34. data/doc/R509/Cert/Extensions/PolicyInformation.html +63 -60
  35. data/doc/R509/Cert/Extensions/PolicyQualifiers.html +60 -57
  36. data/doc/R509/Cert/Extensions/SubjectAlternativeName.html +91 -87
  37. data/doc/R509/Cert/Extensions/SubjectKeyIdentifier.html +72 -71
  38. data/doc/R509/Cert/Extensions/UserNotice.html +60 -57
  39. data/doc/R509/Cert/Extensions/ValidationMixin.html +43 -40
  40. data/doc/R509/CertificateAuthority.html +39 -37
  41. data/doc/R509/CertificateAuthority/OptionsBuilder.html +58 -55
  42. data/doc/R509/CertificateAuthority/Signer.html +277 -60
  43. data/doc/R509/Config.html +40 -38
  44. data/doc/R509/Config/CAConfig.html +255 -188
  45. data/doc/R509/Config/CAConfigPool.html +64 -61
  46. data/doc/R509/Config/CertProfile.html +119 -116
  47. data/doc/R509/Config/SubjectItemPolicy.html +94 -93
  48. data/doc/R509/Engine.html +60 -56
  49. data/doc/R509/Helpers.html +99 -96
  50. data/doc/R509/MessageDigest.html +69 -68
  51. data/doc/R509/NameSanitizer.html +51 -48
  52. data/doc/R509/OCSP.html +39 -37
  53. data/doc/R509/OCSP/Request.html +39 -37
  54. data/doc/R509/OCSP/Request/Nonce.html +67 -67
  55. data/doc/R509/OCSP/Response.html +93 -90
  56. data/doc/R509/OIDMapper.html +48 -46
  57. data/doc/R509/PrivateKey.html +170 -169
  58. data/doc/R509/R509Error.html +45 -42
  59. data/doc/R509/SPKI.html +99 -89
  60. data/doc/R509/Subject.html +86 -83
  61. data/doc/R509/Validity.html +57 -57
  62. data/doc/R509/Validity/Checker.html +63 -93
  63. data/doc/R509/Validity/DefaultChecker.html +58 -55
  64. data/doc/R509/Validity/DefaultWriter.html +62 -59
  65. data/doc/R509/Validity/Status.html +77 -74
  66. data/doc/R509/Validity/Writer.html +75 -123
  67. data/doc/_index.html +37 -31
  68. data/doc/class_list.html +25 -27
  69. data/doc/css/full_list.css +32 -31
  70. data/doc/css/style.css +221 -78
  71. data/doc/file.CONTRIBUTING.html +29 -30
  72. data/doc/file.LICENSE.html +29 -30
  73. data/doc/file.README.html +31 -32
  74. data/doc/file.YAML.html +33 -34
  75. data/doc/file.r509.html +39 -48
  76. data/doc/file_list.html +39 -30
  77. data/doc/frames.html +10 -21
  78. data/doc/index.html +31 -32
  79. data/doc/js/app.js +100 -71
  80. data/doc/js/full_list.js +168 -130
  81. data/doc/method_list.html +1788 -1119
  82. data/doc/top-level-namespace.html +45 -49
  83. data/lib/r509.rb +21 -7
  84. data/lib/r509/asn1.rb +45 -32
  85. data/lib/r509/cert.rb +45 -51
  86. data/lib/r509/cert/extensions/authority_info_access.rb +49 -23
  87. data/lib/r509/cert/extensions/authority_key_identifier.rb +16 -11
  88. data/lib/r509/cert/extensions/base.rb +22 -23
  89. data/lib/r509/cert/extensions/basic_constraints.rb +11 -12
  90. data/lib/r509/cert/extensions/certificate_policies.rb +26 -26
  91. data/lib/r509/cert/extensions/crl_distribution_points.rb +5 -7
  92. data/lib/r509/cert/extensions/extended_key_usage.rb +5 -5
  93. data/lib/r509/cert/extensions/inhibit_any_policy.rb +4 -3
  94. data/lib/r509/cert/extensions/key_usage.rb +5 -5
  95. data/lib/r509/cert/extensions/name_constraints.rb +16 -16
  96. data/lib/r509/cert/extensions/ocsp_no_check.rb +3 -3
  97. data/lib/r509/cert/extensions/policy_constraints.rb +8 -8
  98. data/lib/r509/cert/extensions/subject_alternative_name.rb +5 -4
  99. data/lib/r509/cert/extensions/subject_key_identifier.rb +5 -5
  100. data/lib/r509/cert/extensions/validation_mixin.rb +11 -10
  101. data/lib/r509/certificate_authority/options_builder.rb +19 -21
  102. data/lib/r509/certificate_authority/signer.rb +26 -27
  103. data/lib/r509/config.rb +1 -0
  104. data/lib/r509/config/ca_config.rb +70 -75
  105. data/lib/r509/config/cert_profile.rb +9 -8
  106. data/lib/r509/config/subject_item_policy.rb +25 -28
  107. data/lib/r509/crl/administrator.rb +19 -20
  108. data/lib/r509/crl/reader_writer.rb +10 -8
  109. data/lib/r509/crl/signed_list.rb +4 -4
  110. data/lib/r509/crl/sqlite_reader_writer.rb +75 -0
  111. data/lib/r509/csr.rb +54 -60
  112. data/lib/r509/ec-hack.rb +3 -2
  113. data/lib/r509/engine.rb +5 -6
  114. data/lib/r509/exceptions.rb +1 -1
  115. data/lib/r509/helpers.rb +11 -14
  116. data/lib/r509/io_helpers.rb +7 -7
  117. data/lib/r509/message_digest.rb +5 -6
  118. data/lib/r509/ocsp.rb +11 -13
  119. data/lib/r509/oid_mapper.rb +2 -2
  120. data/lib/r509/private_key.rb +28 -32
  121. data/lib/r509/spki.rb +17 -20
  122. data/lib/r509/subject.rb +26 -27
  123. data/lib/r509/trollop.rb +1 -0
  124. data/lib/r509/validity.rb +30 -21
  125. data/lib/r509/version.rb +4 -2
  126. data/r509.yaml +9 -17
  127. data/spec/asn1_spec.rb +145 -146
  128. data/spec/cert/extensions/authority_info_access_spec.rb +41 -41
  129. data/spec/cert/extensions/authority_key_identifier_spec.rb +29 -23
  130. data/spec/cert/extensions/base_spec.rb +38 -34
  131. data/spec/cert/extensions/basic_constraints_spec.rb +21 -21
  132. data/spec/cert/extensions/certificate_policies_spec.rb +99 -87
  133. data/spec/cert/extensions/crl_distribution_points_spec.rb +24 -25
  134. data/spec/cert/extensions/extended_key_usage_spec.rb +40 -36
  135. data/spec/cert/extensions/inhibit_any_policy_spec.rb +12 -12
  136. data/spec/cert/extensions/key_usage_spec.rb +44 -39
  137. data/spec/cert/extensions/name_constraints_spec.rb +83 -83
  138. data/spec/cert/extensions/ocsp_no_check_spec.rb +10 -10
  139. data/spec/cert/extensions/policy_constraints_spec.rb +19 -19
  140. data/spec/cert/extensions/subject_alternative_name_spec.rb +46 -47
  141. data/spec/cert/extensions/subject_key_identifier_spec.rb +10 -10
  142. data/spec/cert_spec.rb +105 -101
  143. data/spec/certificate_authority/options_builder_spec.rb +90 -90
  144. data/spec/certificate_authority/signer_spec.rb +41 -41
  145. data/spec/config/ca_config_spec.rb +169 -119
  146. data/spec/config/cert_profile_spec.rb +33 -33
  147. data/spec/config/subject_item_policy_spec.rb +22 -22
  148. data/spec/crl/administrator_spec.rb +65 -65
  149. data/spec/crl/reader_writer_spec.rb +20 -19
  150. data/spec/crl/signed_list_spec.rb +26 -26
  151. data/spec/crl/sqlite_reader_writer_spec.rb +42 -0
  152. data/spec/csr_spec.rb +149 -145
  153. data/spec/engine_spec.rb +14 -14
  154. data/spec/fixtures.rb +56 -39
  155. data/spec/fixtures/crl_list.sql +13 -0
  156. data/spec/fixtures/csr1.der +0 -0
  157. data/spec/fixtures/csr1.pem +6 -6
  158. data/spec/message_digest_spec.rb +43 -43
  159. data/spec/ocsp_spec.rb +25 -25
  160. data/spec/oid_mapper_spec.rb +18 -19
  161. data/spec/private_key_spec.rb +79 -81
  162. data/spec/r509_spec.rb +16 -16
  163. data/spec/spec_helper.rb +3 -3
  164. data/spec/spki_spec.rb +94 -94
  165. data/spec/subject_spec.rb +107 -107
  166. data/spec/validity_spec.rb +25 -25
  167. metadata +113 -111
  168. metadata.gz.sig +0 -0
@@ -12,20 +12,20 @@ module R509
12
12
  attr_reader :spki, :key
13
13
  # @option opts [String,OpenSSL::Netscape::SPKI] :spki the spki you want to parse
14
14
  # @option opts [R509::PrivateKey,String] :key optional private key to supply. either an unencrypted PEM/DER string or an R509::PrivateKey object (use the latter if you need password/hardware support). if supplied you do not need to pass an spki.
15
- # @option opts [String] :message_digest Optional digest. sha1, sha224, sha256, sha384, sha512, md5. Defaults to sha1. Only used if you supply a :key and no :spki
16
- def initialize(opts={})
17
- if not opts.kind_of?(Hash)
15
+ # @option opts [String] :message_digest Optional digest. sha1, sha224, sha256, sha384, sha512, md5. Defaults to sha256. Only used if you supply a :key and no :spki
16
+ def initialize(opts = {})
17
+ if !opts.is_a?(Hash)
18
18
  raise ArgumentError, 'Must provide a hash of options'
19
- elsif not opts.has_key?(:spki) and not opts.has_key?(:key)
19
+ elsif !opts.key?(:spki) && !opts.key?(:key)
20
20
  raise ArgumentError, 'Must provide either :spki or :key'
21
21
  end
22
22
 
23
23
  @key = load_private_key(opts)
24
24
 
25
- if opts.has_key?(:spki)
25
+ if opts.key?(:spki)
26
26
  @spki = parse_spki(opts[:spki])
27
27
  else
28
- # create the SPKI from the private key if it wasn't passed in
28
+ # create the SPKI from the private key if it wasn't passed in
29
29
  @spki = build_spki(opts[:message_digest])
30
30
  end
31
31
  end
@@ -41,14 +41,14 @@ module R509
41
41
  @spki.verify(public_key)
42
42
  end
43
43
 
44
- alias :to_s :to_pem
44
+ alias_method :to_s, :to_pem
45
45
 
46
46
  # Returns the signature algorithm (e.g., RSA-SHA1, ecdsa-with-SHA256)
47
47
  #
48
48
  # @return [String] signature algorithm string
49
49
  def signature_algorithm
50
50
  data = OpenSSL::ASN1.decode(self.to_der)
51
- return data.entries[1].value.entries[0].value
51
+ data.entries[1].value.entries[0].value
52
52
  end
53
53
 
54
54
  private
@@ -59,7 +59,7 @@ module R509
59
59
  def parse_spki(spki)
60
60
  # first let's try cleaning up the input a bit so OpenSSL is happy with it
61
61
  # OpenSSL hates SPKAC=
62
- spki.sub!("SPKAC=","")
62
+ spki.sub!("SPKAC=", "")
63
63
  # it really hates newlines (Firefox loves 'em)
64
64
  # so let's normalize line endings
65
65
  spki.gsub!(/\r\n?/, "\n")
@@ -68,10 +68,10 @@ module R509
68
68
  # ...and leading/trailing whitespace
69
69
  spki.strip!
70
70
  spki = OpenSSL::Netscape::SPKI.new(spki)
71
- if not @key.nil? and not spki.verify(@key.public_key) then
71
+ if @key && !spki.verify(@key.public_key)
72
72
  raise R509Error, 'Key does not match SPKI.'
73
73
  end
74
- return spki
74
+ spki
75
75
  end
76
76
 
77
77
  # Tries to build an SPKI using an existing private key
@@ -81,21 +81,18 @@ module R509
81
81
  spki = OpenSSL::Netscape::SPKI.new
82
82
  spki.public_key = @key.public_key
83
83
  if @key.dsa?
84
- #only DSS1 is acceptable for DSA signing in OpenSSL < 1.0
85
- #post-1.0 you can sign with anything, but let's be conservative
86
- #see: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/PKey/DSA.html
84
+ # only DSS1 is acceptable for DSA signing in OpenSSL < 1.0
85
+ # post-1.0 you can sign with anything, but let's be conservative
86
+ # see: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/PKey/DSA.html
87
87
  message_digest = R509::MessageDigest.new('dss1')
88
88
  else
89
89
  message_digest = R509::MessageDigest.new(md)
90
90
  end
91
- spki.sign(@key.key,message_digest.digest)
92
- return spki
91
+ spki.sign(@key.key, message_digest.digest)
92
+ spki
93
93
  end
94
94
 
95
95
  # Returns the proper instance variable
96
- def internal_obj
97
- @spki
98
- end
99
-
96
+ alias_method :internal_obj, :spki
100
97
  end
101
98
  end
@@ -21,19 +21,19 @@ module R509
21
21
  # subject.custom_oid="test"
22
22
  class Subject
23
23
  # @param [Array, OpenSSL::X509::Name, R509::Subject, DER, Hash, nil] arg
24
- def initialize(arg=nil)
25
- if arg.kind_of?(Array)
24
+ def initialize(arg = nil)
25
+ if arg.is_a?(Array)
26
26
  @array = arg
27
- elsif arg.kind_of?(Hash)
28
- @array = arg.map { |k,v| [k.to_s.upcase,v] }
29
- elsif arg.kind_of?(OpenSSL::X509::Name)
27
+ elsif arg.is_a?(Hash)
28
+ @array = arg.map { |k, v| [k.to_s.upcase, v] }
29
+ elsif arg.is_a?(OpenSSL::X509::Name)
30
30
  sanitizer = R509::NameSanitizer.new
31
31
  @array = sanitizer.sanitize(arg)
32
- elsif arg.kind_of?(R509::Subject)
32
+ elsif arg.is_a?(R509::Subject)
33
33
  @array = arg.to_a
34
34
  else
35
35
  @array = []
36
- if not (begin OpenSSL::ASN1.decode(arg) rescue nil end).nil?
36
+ unless (begin OpenSSL::ASN1.decode(arg) rescue nil end).nil?
37
37
  parse_asn1(arg)
38
38
  end
39
39
  end
@@ -59,22 +59,22 @@ module R509
59
59
  return item[1]
60
60
  end
61
61
  end
62
- return nil
62
+ nil
63
63
  end
64
64
 
65
65
  # set key and value
66
66
  def []=(key, value)
67
67
  added = false
68
- @array = @array.map{ |item|
68
+ @array = @array.map do |item|
69
69
  if key == item[0]
70
70
  added = true
71
71
  [key, value]
72
72
  else
73
73
  item
74
74
  end
75
- }
75
+ end
76
76
 
77
- if not added
77
+ unless added
78
78
  @array << [key, value]
79
79
  end
80
80
 
@@ -118,8 +118,8 @@ module R509
118
118
  # @private
119
119
  def respond_to?(method_sym, include_private = false)
120
120
  method_sym.to_s =~ /([^=]*)/
121
- oid = oid_check($1)
122
- if not oid.nil?
121
+ oid = oid_check(Regexp.last_match[1])
122
+ if oid
123
123
  true
124
124
  else
125
125
  super(method_sym, include_private)
@@ -139,17 +139,17 @@ module R509
139
139
  #
140
140
  def method_missing(method_sym, *args, &block)
141
141
  if method_sym.to_s =~ /(.*)=$/
142
- sn = oid_check($1)
143
- if not sn.nil?
144
- define_dynamic_setter(method_sym,sn)
142
+ sn = oid_check(Regexp.last_match[1])
143
+ if sn
144
+ define_dynamic_setter(method_sym, sn)
145
145
  send(method_sym, args.first)
146
146
  else
147
147
  return super(method_sym, *args, &block)
148
148
  end
149
149
  else
150
150
  sn = oid_check(method_sym)
151
- if not sn.nil?
152
- define_dynamic_getter(method_sym,sn)
151
+ if sn
152
+ define_dynamic_getter(method_sym, sn)
153
153
  send(method_sym)
154
154
  else
155
155
  return super(method_sym, *args, &block)
@@ -157,29 +157,29 @@ module R509
157
157
  end
158
158
  end
159
159
 
160
- def define_dynamic_setter(name,sn)
160
+ def define_dynamic_setter(name, sn)
161
161
  instance_eval <<-RUBY
162
- def #{name.to_s}(value)
162
+ def #{name}(value)
163
163
  self["#{sn}"]= value
164
164
  end
165
165
  RUBY
166
166
  end
167
167
 
168
- def define_dynamic_getter(name,sn)
168
+ def define_dynamic_getter(name, sn)
169
169
  instance_eval <<-RUBY
170
- def #{name.to_s}
170
+ def #{name}
171
171
  self["#{sn}"]
172
172
  end
173
173
  RUBY
174
174
  end
175
175
 
176
176
  def oid_check(name)
177
- oid = OpenSSL::ASN1::ObjectId.new(camelize(name))
178
- oid.short_name
177
+ oid = OpenSSL::ASN1::ObjectId.new(camelize(name))
178
+ oid.short_name
179
179
  end
180
180
 
181
181
  def camelize(sym)
182
- sym.to_s.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
182
+ sym.to_s.split('_').reduce([]) { |a, e| a.push(a.empty? ? e : e.capitalize) }.join
183
183
  end
184
184
 
185
185
  def parse_asn1(asn)
@@ -213,7 +213,7 @@ module R509
213
213
  if oids.size == 1
214
214
  oid = oids.first
215
215
  else
216
- oid = oids.select{ |match| not used_oids.include?(match) }.first
216
+ oid = oids.select { |match| !used_oids.include?(match) }.first
217
217
  end
218
218
  # replace the "UNDEF" OID name in the array at the index the UNDEF was found
219
219
  array[component[:index]][0] = oid
@@ -244,5 +244,4 @@ module R509
244
244
  components
245
245
  end
246
246
  end
247
-
248
247
  end
@@ -1,3 +1,4 @@
1
+ # rubocop:disable all
1
2
  ## NOTE: namespaced Trollop inside R509 to prevent conflicts if other libs
2
3
  ## choose to load Trollop as well
3
4
 
@@ -1,29 +1,31 @@
1
1
  require 'openssl'
2
2
 
3
- #Module for holding classes for writing and reading certificate validity information (used for serving OCSP responses)
3
+ # Module for holding classes for writing and reading certificate validity
4
+ # information (used for serving OCSP responses)
4
5
  module R509::Validity
5
- #mapping from OpenSSL
6
+ # mapping from OpenSSL
6
7
  VALID = OpenSSL::OCSP::V_CERTSTATUS_GOOD
7
- #mapping from OpenSSL
8
+ # mapping from OpenSSL
8
9
  REVOKED = OpenSSL::OCSP::V_CERTSTATUS_REVOKED
9
- #mapping from OpenSSL
10
+ # mapping from OpenSSL
10
11
  UNKNOWN = OpenSSL::OCSP::V_CERTSTATUS_UNKNOWN
11
12
 
12
- #data about the status of a certificate
13
+ # data about the status of a certificate
13
14
  class Status
14
15
  attr_reader :status, :revocation_time, :revocation_reason
15
16
 
16
- def initialize(options={})
17
+ def initialize(options = {})
17
18
  @status = options[:status]
18
19
  @revocation_time = options[:revocation_time] || nil
19
20
  @revocation_reason = options[:revocation_reason] || 0
20
21
 
21
- if (@status == R509::Validity::REVOKED and @revocation_time.nil?)
22
+ if @status == R509::Validity::REVOKED && @revocation_time.nil?
22
23
  @revocation_time = Time.now.to_i
23
24
  end
24
25
  end
25
26
 
26
- # @return [OpenSSL::OCSP::STATUS] OpenSSL status constants when passing R509 constants
27
+ # @return [OpenSSL::OCSP::STATUS] OpenSSL status constants when passing
28
+ # R509 constants
27
29
  def ocsp_status
28
30
  case @status
29
31
  when R509::Validity::VALID
@@ -38,37 +40,44 @@ module R509::Validity
38
40
  end
39
41
  end
40
42
 
41
- #abstract base class for a Writer
43
+ # abstract base class for a Writer
42
44
  class Writer
43
45
  def issue(issuer, serial)
44
- raise NotImplementedError, "You must call #issue on a subclass of Writer"
46
+ fail NotImplementedError,
47
+ "You must call #issue on a subclass of Writer"
45
48
  end
46
49
 
47
50
  def revoke(issuer, serial, reason)
48
- raise NotImplementedError, "You must call #revoke on a subclass of Writer"
51
+ fail NotImplementedError,
52
+ "You must call #revoke on a subclass of Writer"
49
53
  end
50
54
 
51
- # is_available? is meant to be implemented to check if the backend store you choose to implement is currently working.
52
- # see r509-ocsp-responder and r509-validity-redis for an example of use
55
+ # is_available? is meant to be implemented to check if the backend store
56
+ # you choose to implement is currently working. see r509-ocsp-responder
57
+ # and r509-validity-redis for an example of use
53
58
  def is_available?
54
- raise NotImplementedError, "You must call #is_available? on a subclass of Writer"
59
+ fail NotImplementedError,
60
+ "You must call #is_available? on a subclass of Writer"
55
61
  end
56
62
  end
57
63
 
58
- #abstract base class for a Checker
64
+ # abstract base class for a Checker
59
65
  class Checker
60
66
  def check(issuer, serial)
61
- raise NotImplementedError, "You must call #check on a subclass of Checker"
67
+ fail NotImplementedError, "You must call #check on a subclass of Checker"
62
68
  end
63
69
 
64
- # is_available? is meant to be implemented to check if the backend store you choose to implement is currently working.
65
- # see r509-ocsp-responder and r509-validity-redis for an example of use
70
+ # is_available? is meant to be implemented to check if the backend store
71
+ # you choose to implement is currently working. see r509-ocsp-responder
72
+ # and r509-validity-redis for an example of use
66
73
  def is_available?
67
- raise NotImplementedError, "You must call #is_available? on a subclass of Checker"
74
+ fail NotImplementedError,
75
+ "You must call #is_available? on a subclass of Checker"
68
76
  end
69
77
  end
70
78
 
71
- #default implementaton of the Checker class. Used for tests. DO NOT USE OTHERWISE
79
+ # default implementaton of the Checker class. Used for tests.
80
+ # DO NOT USE OTHERWISE
72
81
  class DefaultChecker < R509::Validity::Checker
73
82
  def check(issuer, serial)
74
83
  R509::Validity::Status.new(:status => R509::Validity::VALID)
@@ -79,7 +88,7 @@ module R509::Validity
79
88
  end
80
89
  end
81
90
 
82
- #default implementaton of the Writer class. Does nothing (obviously)
91
+ # default implementaton of the Writer class. Does nothing (obviously)
83
92
  class DefaultWriter < R509::Validity::Writer
84
93
  def issue(issuer, serial)
85
94
  end
@@ -1,4 +1,6 @@
1
+ # A module for building an easy to use CA. Includes CSR, Certificate, and CRL
2
+ # support.
1
3
  module R509
2
- #The version of the r509 gem
3
- VERSION="0.10.0"
4
+ # The version of the r509 gem
5
+ VERSION = "1.0"
4
6
  end
data/r509.yaml CHANGED
@@ -23,7 +23,7 @@ certificate_authorities:
23
23
  crl_list_file: spec/fixtures/test_ca_crl_list.txt
24
24
  crl_number_file: spec/fixtures/test_ca_crl_number.txt
25
25
  crl_validity_hours: 168
26
- crl_md: SHA1
26
+ crl_md: SHA256
27
27
  profiles:
28
28
  server:
29
29
  basic_constraints:
@@ -64,11 +64,10 @@ certificate_authorities:
64
64
  :value:
65
65
  - :type: URI
66
66
  :value: http://crl.domain.com/test_ca.crl
67
- default_md: SHA1
67
+ default_md: SHA256
68
68
  allowed_mds:
69
69
  - SHA256
70
70
  - SHA512
71
- - SHA1
72
71
  client:
73
72
  basic_constraints:
74
73
  :ca: false
@@ -91,11 +90,10 @@ certificate_authorities:
91
90
  :value:
92
91
  - :type: URI
93
92
  :value: http://crl.domain.com/test_ca.crl
94
- default_md: SHA1
93
+ default_md: SHA256
95
94
  allowed_mds:
96
95
  - SHA256
97
96
  - SHA512
98
- - SHA1
99
97
  email:
100
98
  basic_constraints:
101
99
  :ca: false
@@ -118,11 +116,10 @@ certificate_authorities:
118
116
  :value:
119
117
  - :type: URI
120
118
  :value: http://crl.domain.com/test_ca.crl
121
- default_md: SHA1
119
+ default_md: SHA256
122
120
  allowed_mds:
123
121
  - SHA256
124
122
  - SHA512
125
- - SHA1
126
123
  clientserver:
127
124
  basic_constraints:
128
125
  :ca: false
@@ -146,11 +143,10 @@ certificate_authorities:
146
143
  :value:
147
144
  - :type: URI
148
145
  :value: http://crl.domain.com/test_ca.crl
149
- default_md: SHA1
146
+ default_md: SHA256
150
147
  allowed_mds:
151
148
  - SHA256
152
149
  - SHA512
153
- - SHA1
154
150
  codesigning:
155
151
  basic_constraints:
156
152
  :ca: false
@@ -172,11 +168,10 @@ certificate_authorities:
172
168
  :value:
173
169
  - :type: URI
174
170
  :value: http://crl.domain.com/test_ca.crl
175
- default_md: SHA1
171
+ default_md: SHA256
176
172
  allowed_mds:
177
173
  - SHA256
178
174
  - SHA512
179
- - SHA1
180
175
  timestamping:
181
176
  basic_constraints:
182
177
  :ca: false
@@ -198,11 +193,10 @@ certificate_authorities:
198
193
  :value:
199
194
  - :type: URI
200
195
  :value: http://crl.domain.com/test_ca.crl
201
- default_md: SHA1
196
+ default_md: SHA256
202
197
  allowed_mds:
203
198
  - SHA256
204
199
  - SHA512
205
- - SHA1
206
200
  subroot:
207
201
  basic_constraints:
208
202
  :ca: true
@@ -261,11 +255,10 @@ certificate_authorities:
261
255
  :value:
262
256
  - :type: URI
263
257
  :value: http://crl.domain.com/test_ca.crl
264
- default_md: SHA1
258
+ default_md: SHA256
265
259
  allowed_mds:
266
260
  - SHA256
267
261
  - SHA512
268
- - SHA1
269
262
  ocsp_delegate:
270
263
  basic_constraints:
271
264
  :ca: false
@@ -282,8 +275,7 @@ certificate_authorities:
282
275
  ocsp_no_check:
283
276
  :critical: false
284
277
  :value: true
285
- default_md: SHA1
278
+ default_md: SHA256
286
279
  allowed_mds:
287
280
  - SHA256
288
281
  - SHA512
289
- - SHA1