openssl 2.0.9 → 2.1.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of openssl might be problematic. Click here for more details.

Files changed (60) hide show
  1. checksums.yaml +5 -5
  2. data/History.md +28 -69
  3. data/README.md +1 -1
  4. data/ext/openssl/deprecation.rb +0 -3
  5. data/ext/openssl/extconf.rb +8 -52
  6. data/ext/openssl/openssl_missing.c +0 -67
  7. data/ext/openssl/openssl_missing.h +3 -50
  8. data/ext/openssl/ossl.c +81 -74
  9. data/ext/openssl/ossl.h +14 -27
  10. data/ext/openssl/ossl_asn1.c +287 -374
  11. data/ext/openssl/ossl_asn1.h +0 -4
  12. data/ext/openssl/ossl_bio.c +5 -20
  13. data/ext/openssl/ossl_bio.h +0 -2
  14. data/ext/openssl/ossl_bn.c +70 -28
  15. data/ext/openssl/ossl_cipher.c +18 -42
  16. data/ext/openssl/ossl_cipher.h +1 -1
  17. data/ext/openssl/ossl_digest.c +8 -12
  18. data/ext/openssl/ossl_digest.h +1 -1
  19. data/ext/openssl/ossl_engine.c +47 -47
  20. data/ext/openssl/ossl_hmac.c +19 -22
  21. data/ext/openssl/ossl_kdf.c +221 -0
  22. data/ext/openssl/ossl_kdf.h +6 -0
  23. data/ext/openssl/ossl_ns_spki.c +17 -21
  24. data/ext/openssl/ossl_ocsp.c +85 -80
  25. data/ext/openssl/ossl_pkcs12.c +15 -21
  26. data/ext/openssl/ossl_pkcs7.c +8 -21
  27. data/ext/openssl/ossl_pkey.c +24 -48
  28. data/ext/openssl/ossl_pkey.h +1 -6
  29. data/ext/openssl/ossl_pkey_dh.c +11 -11
  30. data/ext/openssl/ossl_pkey_dsa.c +16 -22
  31. data/ext/openssl/ossl_pkey_ec.c +43 -56
  32. data/ext/openssl/ossl_pkey_rsa.c +19 -19
  33. data/ext/openssl/ossl_rand.c +12 -12
  34. data/ext/openssl/ossl_ssl.c +291 -243
  35. data/ext/openssl/ossl_ssl.h +0 -5
  36. data/ext/openssl/ossl_ssl_session.c +7 -9
  37. data/ext/openssl/ossl_version.h +1 -1
  38. data/ext/openssl/ossl_x509.c +0 -15
  39. data/ext/openssl/ossl_x509.h +0 -7
  40. data/ext/openssl/ossl_x509attr.c +3 -7
  41. data/ext/openssl/ossl_x509cert.c +17 -54
  42. data/ext/openssl/ossl_x509crl.c +15 -25
  43. data/ext/openssl/ossl_x509ext.c +9 -14
  44. data/ext/openssl/ossl_x509name.c +76 -41
  45. data/ext/openssl/ossl_x509req.c +10 -47
  46. data/ext/openssl/ossl_x509revoked.c +8 -8
  47. data/ext/openssl/ossl_x509store.c +15 -45
  48. data/ext/openssl/ruby_missing.h +2 -13
  49. data/lib/openssl.rb +1 -0
  50. data/lib/openssl/bn.rb +2 -1
  51. data/lib/openssl/buffering.rb +24 -23
  52. data/lib/openssl/config.rb +12 -11
  53. data/lib/openssl/digest.rb +3 -6
  54. data/lib/openssl/pkcs5.rb +22 -0
  55. data/lib/openssl/pkey.rb +0 -41
  56. data/lib/openssl/ssl.rb +118 -16
  57. data/lib/openssl/x509.rb +7 -1
  58. metadata +8 -7
  59. data/ext/openssl/ossl_pkcs5.c +0 -180
  60. data/ext/openssl/ossl_pkcs5.h +0 -6
@@ -23,10 +23,6 @@
23
23
  ossl_raise(rb_eRuntimeError, "REV wasn't initialized!"); \
24
24
  } \
25
25
  } while (0)
26
- #define SafeGetX509Rev(obj, rev) do { \
27
- OSSL_Check_Kind((obj), cX509Rev); \
28
- GetX509Rev((obj), (rev)); \
29
- } while (0)
30
26
 
31
27
  /*
32
28
  * Classes
@@ -76,7 +72,7 @@ DupX509RevokedPtr(VALUE obj)
76
72
  {
77
73
  X509_REVOKED *rev, *new;
78
74
 
79
- SafeGetX509Rev(obj, rev);
75
+ GetX509Rev(obj, rev);
80
76
  if (!(new = X509_REVOKED_dup(rev))) {
81
77
  ossl_raise(eX509RevError, NULL);
82
78
  }
@@ -116,7 +112,7 @@ ossl_x509revoked_initialize_copy(VALUE self, VALUE other)
116
112
 
117
113
  rb_check_frozen(self);
118
114
  GetX509Rev(self, rev);
119
- SafeGetX509Rev(other, rev_other);
115
+ GetX509Rev(other, rev_other);
120
116
 
121
117
  rev_new = X509_REVOKED_dup(rev_other);
122
118
  if (!rev_new)
@@ -159,10 +155,14 @@ static VALUE
159
155
  ossl_x509revoked_get_time(VALUE self)
160
156
  {
161
157
  X509_REVOKED *rev;
158
+ const ASN1_TIME *time;
162
159
 
163
160
  GetX509Rev(self, rev);
161
+ time = X509_REVOKED_get0_revocationDate(rev);
162
+ if (!time)
163
+ return Qnil;
164
164
 
165
- return asn1time_to_time(X509_REVOKED_get0_revocationDate(rev));
165
+ return asn1time_to_time(time);
166
166
  }
167
167
 
168
168
  static VALUE
@@ -267,7 +267,7 @@ Init_ossl_x509revoked(void)
267
267
 
268
268
  rb_define_alloc_func(cX509Rev, ossl_x509revoked_alloc);
269
269
  rb_define_method(cX509Rev, "initialize", ossl_x509revoked_initialize, -1);
270
- rb_define_copy_func(cX509Rev, ossl_x509revoked_initialize_copy);
270
+ rb_define_method(cX509Rev, "initialize_copy", ossl_x509revoked_initialize_copy, 1);
271
271
 
272
272
  rb_define_method(cX509Rev, "serial", ossl_x509revoked_get_serial, 0);
273
273
  rb_define_method(cX509Rev, "serial=", ossl_x509revoked_set_serial, 1);
@@ -23,10 +23,6 @@
23
23
  ossl_raise(rb_eRuntimeError, "STORE wasn't initialized!"); \
24
24
  } \
25
25
  } while (0)
26
- #define SafeGetX509Store(obj, st) do { \
27
- OSSL_Check_Kind((obj), cX509Store); \
28
- GetX509Store((obj), (st)); \
29
- } while (0)
30
26
 
31
27
  #define NewX509StCtx(klass) \
32
28
  TypedData_Wrap_Struct((klass), &ossl_x509stctx_type, 0)
@@ -42,10 +38,6 @@
42
38
  ossl_raise(rb_eRuntimeError, "STORE_CTX is out of scope!"); \
43
39
  } \
44
40
  } while (0)
45
- #define SafeGetX509StCtx(obj, storep) do { \
46
- OSSL_Check_Kind((obj), cX509StoreContext); \
47
- GetX509Store((obj), (ctx)); \
48
- } while (0)
49
41
 
50
42
  /*
51
43
  * Verify callback stuff
@@ -130,34 +122,12 @@ static const rb_data_type_t ossl_x509store_type = {
130
122
  /*
131
123
  * Public functions
132
124
  */
133
- VALUE
134
- ossl_x509store_new(X509_STORE *store)
135
- {
136
- VALUE obj;
137
-
138
- obj = NewX509Store(cX509Store);
139
- SetX509Store(obj, store);
140
-
141
- return obj;
142
- }
143
-
144
125
  X509_STORE *
145
126
  GetX509StorePtr(VALUE obj)
146
127
  {
147
128
  X509_STORE *store;
148
129
 
149
- SafeGetX509Store(obj, store);
150
-
151
- return store;
152
- }
153
-
154
- X509_STORE *
155
- DupX509StorePtr(VALUE obj)
156
- {
157
- X509_STORE *store;
158
-
159
- SafeGetX509Store(obj, store);
160
- X509_STORE_up_ref(store);
130
+ GetX509Store(obj, store);
161
131
 
162
132
  return store;
163
133
  }
@@ -242,9 +212,9 @@ ossl_x509store_initialize(int argc, VALUE *argv, VALUE self)
242
212
 
243
213
  /*
244
214
  * call-seq:
245
- * store.flags = flag
215
+ * store.flags = flags
246
216
  *
247
- * Sets +flag+ to the Store. +flag+ consists of zero or more of the constants
217
+ * Sets _flags_ to the Store. _flags_ consists of zero or more of the constants
248
218
  * defined in with name V_FLAG_* or'ed together.
249
219
  */
250
220
  static VALUE
@@ -263,7 +233,7 @@ ossl_x509store_set_flags(VALUE self, VALUE flags)
263
233
  * call-seq:
264
234
  * store.purpose = purpose
265
235
  *
266
- * Sets the store's purpose to +purpose+. If specified, the verifications on
236
+ * Sets the store's purpose to _purpose_. If specified, the verifications on
267
237
  * the store will check every untrusted certificate's extensions are consistent
268
238
  * with the purpose. The purpose is specified by constants:
269
239
  *
@@ -322,8 +292,9 @@ ossl_x509store_set_time(VALUE self, VALUE time)
322
292
  * call-seq:
323
293
  * store.add_file(file) -> self
324
294
  *
325
- * Adds the certificates in +file+ to the certificate store. The +file+ can
326
- * contain multiple PEM-encoded certificates.
295
+ * Adds the certificates in _file_ to the certificate store. _file_ is the path
296
+ * to the file, and the file contains one or more certificates in PEM format
297
+ * concatenated together.
327
298
  */
328
299
  static VALUE
329
300
  ossl_x509store_add_file(VALUE self, VALUE file)
@@ -359,7 +330,7 @@ ossl_x509store_add_file(VALUE self, VALUE file)
359
330
  * call-seq:
360
331
  * store.add_path(path) -> self
361
332
  *
362
- * Adds +path+ as the hash dir to be looked up by the store.
333
+ * Adds _path_ as the hash dir to be looked up by the store.
363
334
  */
364
335
  static VALUE
365
336
  ossl_x509store_add_path(VALUE self, VALUE dir)
@@ -386,7 +357,7 @@ ossl_x509store_add_path(VALUE self, VALUE dir)
386
357
  * call-seq:
387
358
  * store.set_default_paths
388
359
  *
389
- * Configures +store+ to look up CA certificates from the system default
360
+ * Configures _store_ to look up CA certificates from the system default
390
361
  * certificate store as needed basis. The location of the store can usually be
391
362
  * determined by:
392
363
  *
@@ -410,7 +381,7 @@ ossl_x509store_set_default_paths(VALUE self)
410
381
  * call-seq:
411
382
  * store.add_cert(cert)
412
383
  *
413
- * Adds the OpenSSL::X509::Certificate +cert+ to the certificate store.
384
+ * Adds the OpenSSL::X509::Certificate _cert_ to the certificate store.
414
385
  */
415
386
  static VALUE
416
387
  ossl_x509store_add_cert(VALUE self, VALUE arg)
@@ -431,7 +402,7 @@ ossl_x509store_add_cert(VALUE self, VALUE arg)
431
402
  * call-seq:
432
403
  * store.add_crl(crl) -> self
433
404
  *
434
- * Adds the OpenSSL::X509::CRL +crl+ to the store.
405
+ * Adds the OpenSSL::X509::CRL _crl_ to the store.
435
406
  */
436
407
  static VALUE
437
408
  ossl_x509store_add_crl(VALUE self, VALUE arg)
@@ -456,15 +427,15 @@ static VALUE ossl_x509stctx_get_chain(VALUE);
456
427
  * call-seq:
457
428
  * store.verify(cert, chain = nil) -> true | false
458
429
  *
459
- * Performs a certificate verification on the OpenSSL::X509::Certificate +cert+.
430
+ * Performs a certificate verification on the OpenSSL::X509::Certificate _cert_.
460
431
  *
461
- * +chain+ can be an array of OpenSSL::X509::Certificate that is used to
432
+ * _chain_ can be an array of OpenSSL::X509::Certificate that is used to
462
433
  * construct the certificate chain.
463
434
  *
464
435
  * If a block is given, it overrides the callback set by #verify_callback=.
465
436
  *
466
437
  * After finishing the verification, the error information can be retrieved by
467
- * #error, #error_string, and the resuting complete certificate chain can be
438
+ * #error, #error_string, and the resulting complete certificate chain can be
468
439
  * retrieved by #chain.
469
440
  */
470
441
  static VALUE
@@ -561,7 +532,7 @@ ossl_x509stctx_initialize(int argc, VALUE *argv, VALUE self)
561
532
 
562
533
  rb_scan_args(argc, argv, "12", &store, &cert, &chain);
563
534
  GetX509StCtx(self, ctx);
564
- SafeGetX509Store(store, x509st);
535
+ GetX509Store(store, x509st);
565
536
  if(!NIL_P(cert)) x509 = DupX509CertPtr(cert); /* NEED TO DUP */
566
537
  if(!NIL_P(chain)) x509s = ossl_x509_ary2sk(chain);
567
538
  if(X509_STORE_CTX_init(ctx, x509st, x509, x509s) != 1){
@@ -800,7 +771,6 @@ ossl_x509stctx_set_time(VALUE self, VALUE time)
800
771
  void
801
772
  Init_ossl_x509store(void)
802
773
  {
803
- #undef rb_intern
804
774
  #if 0
805
775
  mOSSL = rb_define_module("OpenSSL");
806
776
  eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);
@@ -10,20 +10,9 @@
10
10
  #if !defined(_OSSL_RUBY_MISSING_H_)
11
11
  #define _OSSL_RUBY_MISSING_H_
12
12
 
13
- #define rb_define_copy_func(klass, func) \
14
- rb_define_method((klass), "initialize_copy", (func), 1)
15
-
16
- #define FPTR_TO_FD(fptr) ((fptr)->fd)
17
-
18
- /* Ruby 2.4 */
19
13
  #ifndef RB_INTEGER_TYPE_P
20
- # define RB_INTEGER_TYPE_P(obj) (RB_FIXNUM_P(obj) || RB_TYPE_P(obj, T_BIGNUM))
21
- #endif
22
-
23
- /* Ruby 2.5 */
24
- #ifndef ST2FIX
25
- # define RB_ST2FIX(h) LONG2FIX((long)(h))
26
- # define ST2FIX(h) RB_ST2FIX(h)
14
+ /* for Ruby 2.3 compatibility */
15
+ #define RB_INTEGER_TYPE_P(obj) (RB_FIXNUM_P(obj) || RB_TYPE_P(obj, T_BIGNUM))
27
16
  #endif
28
17
 
29
18
  #endif /* _OSSL_RUBY_MISSING_H_ */
@@ -19,3 +19,4 @@ require 'openssl/config'
19
19
  require 'openssl/digest'
20
20
  require 'openssl/x509'
21
21
  require 'openssl/ssl'
22
+ require 'openssl/pkcs5'
@@ -27,8 +27,9 @@ module OpenSSL
27
27
  end # OpenSSL
28
28
 
29
29
  ##
30
+ #--
30
31
  # Add double dispatch to Integer
31
- #
32
+ #++
32
33
  class Integer
33
34
  # Casts an Integer as an OpenSSL::BN
34
35
  #
@@ -63,7 +63,7 @@ module OpenSSL::Buffering
63
63
  end
64
64
 
65
65
  ##
66
- # Consumes +size+ bytes from the buffer
66
+ # Consumes _size_ bytes from the buffer
67
67
 
68
68
  def consume_rbuff(size=nil)
69
69
  if @rbuffer.empty?
@@ -79,7 +79,7 @@ module OpenSSL::Buffering
79
79
  public
80
80
 
81
81
  ##
82
- # Reads +size+ bytes from the stream. If +buf+ is provided it must
82
+ # Reads _size_ bytes from the stream. If _buf_ is provided it must
83
83
  # reference a string which will receive the data.
84
84
  #
85
85
  # See IO#read for full details.
@@ -106,7 +106,7 @@ module OpenSSL::Buffering
106
106
  end
107
107
 
108
108
  ##
109
- # Reads at most +maxlen+ bytes from the stream. If +buf+ is provided it
109
+ # Reads at most _maxlen_ bytes from the stream. If _buf_ is provided it
110
110
  # must reference a string which will receive the data.
111
111
  #
112
112
  # See IO#readpartial for full details.
@@ -136,7 +136,7 @@ module OpenSSL::Buffering
136
136
  end
137
137
 
138
138
  ##
139
- # Reads at most +maxlen+ bytes in the non-blocking manner.
139
+ # Reads at most _maxlen_ bytes in the non-blocking manner.
140
140
  #
141
141
  # When no data can be read without blocking it raises
142
142
  # OpenSSL::SSL::SSLError extended by IO::WaitReadable or IO::WaitWritable.
@@ -164,9 +164,10 @@ module OpenSSL::Buffering
164
164
  # when the peer requests a new TLS/SSL handshake. See openssl the FAQ for
165
165
  # more details. http://www.openssl.org/support/faq.html
166
166
  #
167
- # By specifying `exception: false`, the options hash allows you to indicate
167
+ # By specifying a keyword argument _exception_ to +false+, you can indicate
168
168
  # that read_nonblock should not raise an IO::Wait*able exception, but
169
- # return the symbol :wait_writable or :wait_readable instead.
169
+ # return the symbol +:wait_writable+ or +:wait_readable+ instead. At EOF,
170
+ # it will return +nil+ instead of raising EOFError.
170
171
 
171
172
  def read_nonblock(maxlen, buf=nil, exception: true)
172
173
  if maxlen == 0
@@ -189,11 +190,11 @@ module OpenSSL::Buffering
189
190
  end
190
191
 
191
192
  ##
192
- # Reads the next "line" from the stream. Lines are separated by +eol+. If
193
- # +limit+ is provided the result will not be longer than the given number of
193
+ # Reads the next "line" from the stream. Lines are separated by _eol_. If
194
+ # _limit_ is provided the result will not be longer than the given number of
194
195
  # bytes.
195
196
  #
196
- # +eol+ may be a String or Regexp.
197
+ # _eol_ may be a String or Regexp.
197
198
  #
198
199
  # Unlike IO#gets the line read will not be assigned to +$_+.
199
200
  #
@@ -219,7 +220,7 @@ module OpenSSL::Buffering
219
220
 
220
221
  ##
221
222
  # Executes the block for every line in the stream where lines are separated
222
- # by +eol+.
223
+ # by _eol_.
223
224
  #
224
225
  # See also #gets
225
226
 
@@ -231,7 +232,7 @@ module OpenSSL::Buffering
231
232
  alias each_line each
232
233
 
233
234
  ##
234
- # Reads lines from the stream which are separated by +eol+.
235
+ # Reads lines from the stream which are separated by _eol_.
235
236
  #
236
237
  # See also #gets
237
238
 
@@ -244,7 +245,7 @@ module OpenSSL::Buffering
244
245
  end
245
246
 
246
247
  ##
247
- # Reads a line from the stream which is separated by +eol+.
248
+ # Reads a line from the stream which is separated by _eol_.
248
249
  #
249
250
  # Raises EOFError if at end of file.
250
251
 
@@ -280,7 +281,7 @@ module OpenSSL::Buffering
280
281
  end
281
282
 
282
283
  ##
283
- # Pushes character +c+ back onto the stream such that a subsequent buffered
284
+ # Pushes character _c_ back onto the stream such that a subsequent buffered
284
285
  # character read will return it.
285
286
  #
286
287
  # Unlike IO#getc multiple bytes may be pushed back onto the stream.
@@ -307,7 +308,7 @@ module OpenSSL::Buffering
307
308
  private
308
309
 
309
310
  ##
310
- # Writes +s+ to the buffer. When the buffer is full or #sync is true the
311
+ # Writes _s_ to the buffer. When the buffer is full or #sync is true the
311
312
  # buffer is flushed to the underlying socket.
312
313
 
313
314
  def do_write(s)
@@ -335,8 +336,8 @@ module OpenSSL::Buffering
335
336
  public
336
337
 
337
338
  ##
338
- # Writes +s+ to the stream. If the argument is not a string it will be
339
- # converted using String#to_s. Returns the number of bytes written.
339
+ # Writes _s_ to the stream. If the argument is not a String it will be
340
+ # converted using +.to_s+ method. Returns the number of bytes written.
340
341
 
341
342
  def write(s)
342
343
  do_write(s)
@@ -344,7 +345,7 @@ module OpenSSL::Buffering
344
345
  end
345
346
 
346
347
  ##
347
- # Writes +s+ in the non-blocking manner.
348
+ # Writes _s_ in the non-blocking manner.
348
349
  #
349
350
  # If there is buffered data, it is flushed first. This may block.
350
351
  #
@@ -376,9 +377,9 @@ module OpenSSL::Buffering
376
377
  # is when the peer requests a new TLS/SSL handshake. See the openssl FAQ
377
378
  # for more details. http://www.openssl.org/support/faq.html
378
379
  #
379
- # By specifying `exception: false`, the options hash allows you to indicate
380
+ # By specifying a keyword argument _exception_ to +false+, you can indicate
380
381
  # that write_nonblock should not raise an IO::Wait*able exception, but
381
- # return the symbol :wait_writable or :wait_readable instead.
382
+ # return the symbol +:wait_writable+ or +:wait_readable+ instead.
382
383
 
383
384
  def write_nonblock(s, exception: true)
384
385
  flush
@@ -386,8 +387,8 @@ module OpenSSL::Buffering
386
387
  end
387
388
 
388
389
  ##
389
- # Writes +s+ to the stream. +s+ will be converted to a String using
390
- # String#to_s.
390
+ # Writes _s_ to the stream. _s_ will be converted to a String using
391
+ # +.to_s+ method.
391
392
 
392
393
  def <<(s)
393
394
  do_write(s)
@@ -395,7 +396,7 @@ module OpenSSL::Buffering
395
396
  end
396
397
 
397
398
  ##
398
- # Writes +args+ to the stream along with a record separator.
399
+ # Writes _args_ to the stream along with a record separator.
399
400
  #
400
401
  # See IO#puts for full details.
401
402
 
@@ -415,7 +416,7 @@ module OpenSSL::Buffering
415
416
  end
416
417
 
417
418
  ##
418
- # Writes +args+ to the stream.
419
+ # Writes _args_ to the stream.
419
420
  #
420
421
  # See IO#print for full details.
421
422
 
@@ -30,7 +30,8 @@ module OpenSSL
30
30
  class << self
31
31
 
32
32
  ##
33
- # Parses a given +string+ as a blob that contains configuration for openssl.
33
+ # Parses a given _string_ as a blob that contains configuration for
34
+ # OpenSSL.
34
35
  #
35
36
  # If the source of the IO is a file, then consider using #parse_config.
36
37
  def parse(string)
@@ -46,7 +47,7 @@ module OpenSSL
46
47
  alias load new
47
48
 
48
49
  ##
49
- # Parses the configuration data read from +io+, see also #parse.
50
+ # Parses the configuration data read from _io_, see also #parse.
50
51
  #
51
52
  # Raises a ConfigError on invalid configuration data.
52
53
  def parse_config(io)
@@ -236,7 +237,7 @@ module OpenSSL
236
237
  #
237
238
  # This can be used in contexts like OpenSSL::X509::ExtensionFactory.config=
238
239
  #
239
- # If the optional +filename+ parameter is provided, then it is read in and
240
+ # If the optional _filename_ parameter is provided, then it is read in and
240
241
  # parsed via #parse_config.
241
242
  #
242
243
  # This can raise IO exceptions based on the access, or availability of the
@@ -255,7 +256,7 @@ module OpenSSL
255
256
  end
256
257
 
257
258
  ##
258
- # Gets the value of +key+ from the given +section+
259
+ # Gets the value of _key_ from the given _section_
259
260
  #
260
261
  # Given the following configurating file being loaded:
261
262
  #
@@ -265,8 +266,8 @@ module OpenSSL
265
266
  # #=> [ default ]
266
267
  # # foo=bar
267
268
  #
268
- # You can get a specific value from the config if you know the +section+
269
- # and +key+ like so:
269
+ # You can get a specific value from the config if you know the _section_
270
+ # and _key_ like so:
270
271
  #
271
272
  # config.get_value('default','foo')
272
273
  # #=> "bar"
@@ -297,7 +298,7 @@ module OpenSSL
297
298
  end
298
299
 
299
300
  ##
300
- # Set the target +key+ with a given +value+ under a specific +section+.
301
+ # Set the target _key_ with a given _value_ under a specific _section_.
301
302
  #
302
303
  # Given the following configurating file being loaded:
303
304
  #
@@ -307,7 +308,7 @@ module OpenSSL
307
308
  # #=> [ default ]
308
309
  # # foo=bar
309
310
  #
310
- # You can set the value of +foo+ under the +default+ section to a new
311
+ # You can set the value of _foo_ under the _default_ section to a new
311
312
  # value:
312
313
  #
313
314
  # config.add_value('default', 'foo', 'buzz')
@@ -322,7 +323,7 @@ module OpenSSL
322
323
  end
323
324
 
324
325
  ##
325
- # Get a specific +section+ from the current configuration
326
+ # Get a specific _section_ from the current configuration
326
327
  #
327
328
  # Given the following configurating file being loaded:
328
329
  #
@@ -351,7 +352,7 @@ module OpenSSL
351
352
  end
352
353
 
353
354
  ##
354
- # Sets a specific +section+ name with a Hash +pairs+
355
+ # Sets a specific _section_ name with a Hash _pairs_.
355
356
  #
356
357
  # Given the following configuration being created:
357
358
  #
@@ -365,7 +366,7 @@ module OpenSSL
365
366
  # # baz=buz
366
367
  #
367
368
  # It's important to note that this will essentially merge any of the keys
368
- # in +pairs+ with the existing +section+. For example:
369
+ # in _pairs_ with the existing _section_. For example:
369
370
  #
370
371
  # config['default']
371
372
  # #=> {"foo"=>"bar", "baz"=>"buz"}