rbs 3.7.0 → 3.8.0.pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +3 -3
  3. data/.github/workflows/ruby.yml +7 -7
  4. data/CHANGELOG.md +52 -0
  5. data/core/array.rbs +1743 -1580
  6. data/core/basic_object.rbs +38 -35
  7. data/core/comparable.rbs +1 -1
  8. data/core/complex.rbs +165 -93
  9. data/core/data.rbs +1 -1
  10. data/core/dir.rbs +1 -17
  11. data/core/encoding.rbs +12 -6
  12. data/core/enumerable.rbs +270 -266
  13. data/core/enumerator.rbs +0 -2
  14. data/core/env.rbs +1 -1
  15. data/core/errno.rbs +33 -16
  16. data/core/errors.rbs +2 -2
  17. data/core/exception.rbs +236 -170
  18. data/core/fiber.rbs +3 -2
  19. data/core/file.rbs +32 -74
  20. data/core/float.rbs +125 -72
  21. data/core/gc.rbs +138 -40
  22. data/core/hash.rbs +120 -141
  23. data/core/integer.rbs +79 -50
  24. data/core/io/buffer.rbs +49 -43
  25. data/core/io.rbs +97 -144
  26. data/core/kernel.rbs +290 -200
  27. data/core/match_data.rbs +76 -2
  28. data/core/math.rbs +0 -36
  29. data/core/module.rbs +28 -23
  30. data/core/nil_class.rbs +0 -3
  31. data/core/numeric.rbs +100 -103
  32. data/core/object.rbs +0 -4
  33. data/core/object_space/weak_key_map.rbs +3 -4
  34. data/core/object_space.rbs +3 -3
  35. data/core/proc.rbs +0 -2
  36. data/core/process.rbs +109 -57
  37. data/core/ractor.rbs +37 -4
  38. data/core/range.rbs +114 -87
  39. data/core/rational.rbs +0 -2
  40. data/core/rbs/unnamed/argf.rbs +234 -33
  41. data/core/rbs/unnamed/env_class.rbs +35 -53
  42. data/core/rbs/unnamed/random.rbs +1 -2
  43. data/core/regexp.rbs +4 -52
  44. data/core/ruby_vm.rbs +88 -9
  45. data/core/rubygems/config_file.rbs +3 -0
  46. data/core/rubygems/errors.rbs +0 -5
  47. data/core/rubygems/platform.rbs +0 -9
  48. data/core/rubygems/rubygems.rbs +0 -5
  49. data/core/rubygems/version.rbs +6 -6
  50. data/core/set.rbs +3 -15
  51. data/core/string.rbs +130 -136
  52. data/core/struct.rbs +6 -18
  53. data/core/symbol.rbs +14 -21
  54. data/core/thread.rbs +32 -35
  55. data/core/time.rbs +127 -50
  56. data/core/trace_point.rbs +16 -0
  57. data/core/true_class.rbs +0 -1
  58. data/core/warning.rbs +9 -2
  59. data/docs/architecture.md +1 -1
  60. data/docs/syntax.md +1 -1
  61. data/ext/rbs_extension/location.c +29 -19
  62. data/ext/rbs_extension/parser.c +267 -292
  63. data/ext/rbs_extension/parserstate.c +56 -22
  64. data/lib/rbs/annotate/annotations.rb +3 -3
  65. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  66. data/lib/rbs/cli/diff.rb +3 -3
  67. data/lib/rbs/cli/validate.rb +1 -1
  68. data/lib/rbs/cli.rb +13 -13
  69. data/lib/rbs/collection/config.rb +3 -1
  70. data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
  71. data/lib/rbs/environment_loader.rb +1 -1
  72. data/lib/rbs/namespace.rb +1 -0
  73. data/lib/rbs/parser_aux.rb +2 -2
  74. data/lib/rbs/prototype/rb.rb +11 -8
  75. data/lib/rbs/prototype/rbi.rb +9 -5
  76. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  77. data/lib/rbs/prototype/runtime.rb +4 -5
  78. data/lib/rbs/type_name.rb +14 -9
  79. data/lib/rbs/unit_test/type_assertions.rb +2 -2
  80. data/lib/rbs/validator.rb +3 -1
  81. data/lib/rbs/version.rb +1 -1
  82. data/lib/rdoc_plugin/parser.rb +2 -2
  83. data/rbs.gemspec +4 -0
  84. data/sig/ancestor_graph.rbs +4 -4
  85. data/sig/namespace.rbs +2 -3
  86. data/sig/resolver/constant_resolver.rbs +2 -2
  87. data/sig/resolver/context.rbs +1 -1
  88. data/sig/type_alias_regularity.rbs +5 -5
  89. data/sig/typename.rbs +8 -5
  90. data/sig/use_map.rbs +1 -1
  91. data/sig/validator.rbs +2 -2
  92. data/stdlib/base64/0/base64.rbs +0 -9
  93. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  94. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  95. data/stdlib/cgi/0/core.rbs +47 -0
  96. data/stdlib/coverage/0/coverage.rbs +0 -3
  97. data/stdlib/csv/0/csv.rbs +18 -58
  98. data/stdlib/date/0/date.rbs +4 -19
  99. data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
  100. data/stdlib/digest/0/digest.rbs +25 -2
  101. data/stdlib/erb/0/erb.rbs +0 -1
  102. data/stdlib/etc/0/etc.rbs +51 -34
  103. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  104. data/stdlib/io-console/0/io-console.rbs +69 -15
  105. data/stdlib/ipaddr/0/ipaddr.rbs +8 -4
  106. data/stdlib/json/0/json.rbs +56 -71
  107. data/stdlib/logger/0/log_device.rbs +1 -1
  108. data/stdlib/logger/0/logger.rbs +3 -18
  109. data/stdlib/net-http/0/net-http.rbs +19 -77
  110. data/stdlib/nkf/0/nkf.rbs +30 -0
  111. data/stdlib/objspace/0/objspace.rbs +1 -2
  112. data/stdlib/observable/0/observable.rbs +1 -1
  113. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  114. data/stdlib/open3/0/open3.rbs +0 -8
  115. data/stdlib/openssl/0/openssl.rbs +136 -69
  116. data/stdlib/optparse/0/optparse.rbs +58 -18
  117. data/stdlib/pathname/0/pathname.rbs +2 -8
  118. data/stdlib/pp/0/pp.rbs +3 -1
  119. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  120. data/stdlib/pstore/0/pstore.rbs +0 -6
  121. data/stdlib/psych/0/psych.rbs +15 -4
  122. data/stdlib/pty/0/pty.rbs +46 -4
  123. data/stdlib/rdoc/0/code_object.rbs +0 -4
  124. data/stdlib/rdoc/0/markup.rbs +10 -12
  125. data/stdlib/rdoc/0/rdoc.rbs +1 -2
  126. data/stdlib/resolv/0/resolv.rbs +8 -3
  127. data/stdlib/ripper/0/ripper.rbs +0 -2
  128. data/stdlib/securerandom/0/securerandom.rbs +0 -2
  129. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  130. data/stdlib/singleton/0/singleton.rbs +0 -1
  131. data/stdlib/socket/0/addrinfo.rbs +0 -1
  132. data/stdlib/socket/0/basic_socket.rbs +0 -5
  133. data/stdlib/socket/0/socket.rbs +49 -25
  134. data/stdlib/socket/0/tcp_server.rbs +0 -3
  135. data/stdlib/socket/0/tcp_socket.rbs +58 -3
  136. data/stdlib/socket/0/udp_socket.rbs +0 -1
  137. data/stdlib/socket/0/unix_server.rbs +0 -3
  138. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  139. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  140. data/stdlib/time/0/time.rbs +48 -35
  141. data/stdlib/timeout/0/timeout.rbs +11 -8
  142. data/stdlib/tmpdir/0/tmpdir.rbs +8 -1
  143. data/stdlib/tsort/0/tsort.rbs +0 -4
  144. data/stdlib/uri/0/common.rbs +11 -30
  145. data/stdlib/uri/0/ftp.rbs +1 -1
  146. data/stdlib/uri/0/generic.rbs +22 -18
  147. data/stdlib/uri/0/http.rbs +2 -2
  148. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  149. data/stdlib/zlib/0/buf_error.rbs +1 -70
  150. data/stdlib/zlib/0/data_error.rbs +1 -70
  151. data/stdlib/zlib/0/deflate.rbs +8 -72
  152. data/stdlib/zlib/0/error.rbs +1 -70
  153. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  154. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  155. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  156. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  157. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  158. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  159. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  160. data/stdlib/zlib/0/inflate.rbs +4 -71
  161. data/stdlib/zlib/0/mem_error.rbs +1 -70
  162. data/stdlib/zlib/0/need_dict.rbs +1 -70
  163. data/stdlib/zlib/0/stream_end.rbs +1 -70
  164. data/stdlib/zlib/0/stream_error.rbs +1 -70
  165. data/stdlib/zlib/0/version_error.rbs +1 -70
  166. data/stdlib/zlib/0/zlib.rbs +0 -2
  167. data/stdlib/zlib/0/zstream.rbs +4 -72
  168. metadata +4 -6
@@ -549,8 +549,10 @@ module OpenSSL
549
549
  #
550
550
  # OpenSSL 3
551
551
  # : `0xMNN00PP0 (major minor 00 patch 0)`
552
+ #
552
553
  # OpenSSL before 3
553
554
  # : `0xMNNFFPPS (major minor fix patch status)`
555
+ #
554
556
  # LibreSSL
555
557
  # : `0x20000000 (fixed value)`
556
558
  #
@@ -627,7 +629,6 @@ module OpenSSL
627
629
  # * `:APPLICATION`
628
630
  # * `:PRIVATE`
629
631
  #
630
- #
631
632
  # ## Tag constants
632
633
  #
633
634
  # There is a constant defined for each universal tag:
@@ -655,7 +656,6 @@ module OpenSSL
655
656
  # * OpenSSL::ASN1::UNIVERSALSTRING (28)
656
657
  # * OpenSSL::ASN1::BMPSTRING (30)
657
658
  #
658
- #
659
659
  # ## UNIVERSAL_TAG_NAME constant
660
660
  #
661
661
  # An Array that stores the name of a given tag number. These names are the same
@@ -775,7 +775,6 @@ module OpenSSL
775
775
  # * tag_class: Current tag class (Symbol)
776
776
  # * tag: The current tag number (Integer)
777
777
  #
778
- #
779
778
  # ## Example
780
779
  # der = File.binread('asn1data.der')
781
780
  # OpenSSL::ASN1.traverse(der) do | depth, offset, header_len, length, constructed, tag_class, tag|
@@ -871,7 +870,6 @@ module OpenSSL
871
870
  # * *tag* equal to 1
872
871
  # * *tag_class* equal to `:CONTEXT_SPECIFIC`
873
872
  # * *value* equal to a String that carries the raw encoding of the INTEGER.
874
- #
875
873
  # This implies that a subsequent decoding step is required to completely decode
876
874
  # implicitly tagged values.
877
875
  #
@@ -884,7 +882,6 @@ module OpenSSL
884
882
  # OpenSSL::ASN1::Integer, i.e. the inner element is the non-tagged primitive
885
883
  # value, and the tagging is represented in the outer ASN1Data
886
884
  #
887
- #
888
885
  # ## Example - Decoding an implicitly tagged INTEGER
889
886
  # int = OpenSSL::ASN1::Integer.new(1, 0, :IMPLICIT) # implicit 0-tagged
890
887
  # seq = OpenSSL::ASN1::Sequence.new( [int] )
@@ -934,7 +931,7 @@ module OpenSSL
934
931
  # puts int2.value # => 1
935
932
  #
936
933
  class ASN1Data
937
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
934
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
938
935
  # Never `nil`. A boolean value indicating whether the encoding uses indefinite
939
936
  # length (in the case of parsing) or whether an indefinite length form shall be
940
937
  # used (in the encoding case). In DER, every value uses definite length form.
@@ -951,7 +948,7 @@ module OpenSSL
951
948
  #
952
949
  def indefinite_length: () -> bool
953
950
 
954
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
951
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
955
952
  # Never `nil`. A boolean value indicating whether the encoding uses indefinite
956
953
  # length (in the case of parsing) or whether an indefinite length form shall be
957
954
  # used (in the encoding case). In DER, every value uses definite length form.
@@ -968,7 +965,7 @@ module OpenSSL
968
965
  #
969
966
  def indefinite_length=: [U] (boolish) -> U
970
967
 
971
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
968
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
972
969
  # Never `nil`. A boolean value indicating whether the encoding uses indefinite
973
970
  # length (in the case of parsing) or whether an indefinite length form shall be
974
971
  # used (in the encoding case). In DER, every value uses definite length form.
@@ -985,7 +982,7 @@ module OpenSSL
985
982
  #
986
983
  alias infinite_length indefinite_length
987
984
 
988
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
985
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
989
986
  # Never `nil`. A boolean value indicating whether the encoding uses indefinite
990
987
  # length (in the case of parsing) or whether an indefinite length form shall be
991
988
  # used (in the encoding case). In DER, every value uses definite length form.
@@ -1002,24 +999,24 @@ module OpenSSL
1002
999
  #
1003
1000
  alias infinite_length= indefinite_length=
1004
1001
 
1005
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
1002
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
1006
1003
  # An Integer representing the tag number of this ASN1Data. Never `nil`.
1007
1004
  #
1008
1005
  def tag: () -> bn
1009
1006
 
1010
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
1007
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
1011
1008
  # An Integer representing the tag number of this ASN1Data. Never `nil`.
1012
1009
  #
1013
1010
  def tag=: (::Integer) -> ::Integer
1014
1011
  | (BN) -> BN
1015
1012
 
1016
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
1013
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
1017
1014
  # A Symbol representing the tag class of this ASN1Data. Never `nil`. See
1018
1015
  # ASN1Data for possible values.
1019
1016
  #
1020
1017
  def tag_class: () -> tag_class
1021
1018
 
1022
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
1019
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
1023
1020
  # A Symbol representing the tag class of this ASN1Data. Never `nil`. See
1024
1021
  # ASN1Data for possible values.
1025
1022
  #
@@ -1036,13 +1033,13 @@ module OpenSSL
1036
1033
  #
1037
1034
  def to_der: () -> String
1038
1035
 
1039
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
1036
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
1040
1037
  # Carries the value of a ASN.1 type. Please confer Constructive and Primitive
1041
1038
  # for the mappings between ASN.1 data types and Ruby classes.
1042
1039
  #
1043
1040
  def value: () -> untyped
1044
1041
 
1045
- # <!-- rdoc-file=ext/openssl/ossl_asn1.c -->
1042
+ # <!-- rdoc-file=ext/openssl/lib/openssl/asn1.rb -->
1046
1043
  # Carries the value of a ASN.1 type. Please confer Constructive and Primitive
1047
1044
  # for the mappings between ASN.1 data types and Ruby classes.
1048
1045
  #
@@ -1051,7 +1048,7 @@ module OpenSSL
1051
1048
  private
1052
1049
 
1053
1050
  # <!--
1054
- # rdoc-file=ext/openssl/ossl_asn1.c
1051
+ # rdoc-file=ext/openssl/lib/openssl/asn1.rb
1055
1052
  # - OpenSSL::ASN1::ASN1Data.new(value, tag, tag_class) => ASN1Data
1056
1053
  # -->
1057
1054
  # *value*: Please have a look at Constructive and Primitive to see how Ruby
@@ -1106,7 +1103,6 @@ module OpenSSL
1106
1103
  # encodings are represented by one of the two sub-classes of Constructive:
1107
1104
  # * OpenSSL::ASN1::Set
1108
1105
  # * OpenSSL::ASN1::Sequence
1109
- #
1110
1106
  # Please note that tagged sequences and sets are still parsed as instances of
1111
1107
  # ASN1Data. Find further details on tagged values there.
1112
1108
  #
@@ -1124,7 +1120,7 @@ module OpenSSL
1124
1120
  include Enumerable[ASN1Data]
1125
1121
 
1126
1122
  # <!--
1127
- # rdoc-file=ext/openssl/ossl_asn1.c
1123
+ # rdoc-file=ext/openssl/lib/openssl/asn1.rb
1128
1124
  # - asn1_ary.each { |asn1| block } => asn1_ary
1129
1125
  # -->
1130
1126
  # Calls the given block once for each element in self, passing that element as
@@ -1190,6 +1186,11 @@ module OpenSSL
1190
1186
 
1191
1187
  private
1192
1188
 
1189
+ # <!--
1190
+ # rdoc-file=ext/openssl/lib/openssl/asn1.rb
1191
+ # - new()
1192
+ # -->
1193
+ #
1193
1194
  def initialize: () -> void
1194
1195
  end
1195
1196
 
@@ -1271,7 +1272,7 @@ module OpenSSL
1271
1272
  # rdoc-file=ext/openssl/ossl_asn1.c
1272
1273
  # - oid == other_oid => true or false
1273
1274
  # -->
1274
- # Returns `true` if *other_oid* is the same as *oid*
1275
+ # Returns `true` if *other_oid* is the same as *oid*.
1275
1276
  #
1276
1277
  def ==: (ObjectId other) -> bool
1277
1278
 
@@ -1348,7 +1349,6 @@ module OpenSSL
1348
1349
  # * OpenSSL::ASN1::UniversalString <=> *value* is a String
1349
1350
  # * OpenSSL::ASN1::BMPString <=> *value* is a String
1350
1351
  #
1351
- #
1352
1352
  # ## OpenSSL::ASN1::BitString
1353
1353
  #
1354
1354
  # ### Additional attributes
@@ -1369,7 +1369,6 @@ module OpenSSL
1369
1369
  # * *short_name*: alias for *sn*.
1370
1370
  # * *long_name*: alias for *ln*.
1371
1371
  #
1372
- #
1373
1372
  # ## Examples
1374
1373
  # With the Exception of OpenSSL::ASN1::EndOfContent, each Primitive class
1375
1374
  # constructor takes at least one parameter, the *value*.
@@ -1854,7 +1853,7 @@ module OpenSSL
1854
1853
  # bignum is ignored.
1855
1854
  # * `10` - Decimal number representation, with a leading '-' for a
1856
1855
  # negative bignum.
1857
- # * `16` - Hexadeciaml number representation, with a leading '-' for a
1856
+ # * `16` - Hexadecimal number representation, with a leading '-' for a
1858
1857
  # negative bignum.
1859
1858
  #
1860
1859
  def to_s: () -> String
@@ -1896,6 +1895,7 @@ module OpenSSL
1896
1895
  #
1897
1896
  # `string`
1898
1897
  # : The string to be parsed.
1898
+ #
1899
1899
  # `base`
1900
1900
  # : The format. Must be one of the following:
1901
1901
  # * `0` - MPI format. See the man page BN_mpi2bn(3) for details.
@@ -1903,7 +1903,7 @@ module OpenSSL
1903
1903
  # number.
1904
1904
  # * `10` - Decimal number representation, with a leading '-' for a
1905
1905
  # negative number.
1906
- # * `16` - Hexadeciaml number representation, with a leading '-' for a
1906
+ # * `16` - Hexadecimal number representation, with a leading '-' for a
1907
1907
  # negative number.
1908
1908
  #
1909
1909
  def initialize: (instance) -> void
@@ -2013,7 +2013,7 @@ module OpenSSL
2013
2013
 
2014
2014
  # <!--
2015
2015
  # rdoc-file=ext/openssl/lib/openssl/buffering.rb
2016
- # - gets(eol=$/, limit=nil)
2016
+ # - gets(eol=$/, limit=nil, chomp: false)
2017
2017
  # -->
2018
2018
  # Reads the next "line" from the stream. Lines are separated by *eol*. If
2019
2019
  # *limit* is provided the result will not be longer than the given number of
@@ -2564,7 +2564,6 @@ module OpenSSL
2564
2564
  #
2565
2565
  # #key=, #iv=, #random_key, #random_iv, #pkcs5_keyivgen
2566
2566
  # :
2567
- #
2568
2567
  # Internally calls EVP_CipherInit_ex(ctx, NULL, NULL, NULL, NULL, 0).
2569
2568
  #
2570
2569
  def decrypt: () -> self
@@ -2580,7 +2579,6 @@ module OpenSSL
2580
2579
  #
2581
2580
  # #key=, #iv=, #random_key, #random_iv, #pkcs5_keyivgen
2582
2581
  # :
2583
- #
2584
2582
  # Internally calls EVP_CipherInit_ex(ctx, NULL, NULL, NULL, NULL, 1).
2585
2583
  #
2586
2584
  def encrypt: () -> self
@@ -2673,8 +2671,8 @@ module OpenSSL
2673
2671
  # rdoc-file=ext/openssl/ossl_cipher.c
2674
2672
  # - cipher.name -> string
2675
2673
  # -->
2676
- # Returns the name of the cipher which may differ slightly from the original
2677
- # name provided.
2674
+ # Returns the short name of the cipher which may differ slightly from the
2675
+ # original name provided.
2678
2676
  #
2679
2677
  def name: () -> String
2680
2678
 
@@ -2709,7 +2707,6 @@ module OpenSSL
2709
2707
  # * *iterations* is an integer with a default of 2048.
2710
2708
  # * *digest* is a Digest object that defaults to 'MD5'
2711
2709
  #
2712
- #
2713
2710
  # A minimum of 1000 iterations is recommended.
2714
2711
  #
2715
2712
  def pkcs5_keyivgen: (String pass, ?String salt, ?Integer iterations, ?String digest) -> void
@@ -3028,19 +3025,16 @@ module OpenSSL
3028
3025
  # -->
3029
3026
  # Gets the parsable form of the current configuration.
3030
3027
  #
3031
- # Given the following configuration being created:
3028
+ # Given the following configuration file being loaded:
3032
3029
  #
3033
- # config = OpenSSL::Config.new
3034
- # #=> #<OpenSSL::Config sections=[]>
3035
- # config['default'] = {"foo"=>"bar","baz"=>"buz"}
3036
- # #=> {"foo"=>"bar", "baz"=>"buz"}
3030
+ # config = OpenSSL::Config.load('baz.cnf')
3031
+ # #=> #<OpenSSL::Config sections=["default"]>
3037
3032
  # puts config.to_s
3038
3033
  # #=> [ default ]
3039
3034
  # # foo=bar
3040
3035
  # # baz=buz
3041
3036
  #
3042
- # You can parse get the serialized configuration using #to_s and then parse it
3043
- # later:
3037
+ # You can get the serialized configuration using #to_s and then parse it later:
3044
3038
  #
3045
3039
  # serialized_config = config.to_s
3046
3040
  # # much later...
@@ -3125,7 +3119,6 @@ module OpenSSL
3125
3119
  # * SHA3-224, SHA3-256, SHA3-384 and SHA3-512
3126
3120
  # * BLAKE2s256 and BLAKE2b512
3127
3121
  #
3128
- #
3129
3122
  # Each of these algorithms can be instantiated using the name:
3130
3123
  #
3131
3124
  # digest = OpenSSL::Digest.new('SHA256')
@@ -3226,7 +3219,8 @@ module OpenSSL
3226
3219
  # rdoc-file=ext/openssl/ossl_digest.c
3227
3220
  # - digest.name -> string
3228
3221
  # -->
3229
- # Returns the sn of this Digest algorithm.
3222
+ # Returns the short name of this Digest algorithm which may differ slightly from
3223
+ # the original name provided.
3230
3224
  #
3231
3225
  # ### Example
3232
3226
  # digest = OpenSSL::Digest.new('SHA512')
@@ -3273,7 +3267,8 @@ module OpenSSL
3273
3267
  # - Digest.new(string [, data]) -> Digest
3274
3268
  # -->
3275
3269
  # Creates a Digest instance based on *string*, which is either the ln (long
3276
- # name) or sn (short name) of a supported digest algorithm.
3270
+ # name) or sn (short name) of a supported digest algorithm. A list of supported
3271
+ # algorithms can be obtained by calling OpenSSL::Digest.digests.
3277
3272
  #
3278
3273
  # If *data* (a String) is given, it is used as the initial input to the Digest
3279
3274
  # instance, i.e.
@@ -3562,6 +3557,7 @@ module OpenSSL
3562
3557
  #
3563
3558
  # All flags
3564
3559
  # : 0xFFFF
3560
+ #
3565
3561
  # No flags
3566
3562
  # : 0x0000
3567
3563
  #
@@ -3888,7 +3884,6 @@ module OpenSSL
3888
3884
  # * scrypt
3889
3885
  # * HKDF
3890
3886
  #
3891
- #
3892
3887
  # ## Examples
3893
3888
  # ### Generating a 128 bit key for a Cipher (e.g. AES)
3894
3889
  # pass = "secret"
@@ -3923,26 +3918,30 @@ module OpenSSL
3923
3918
  # - KDF.hkdf(ikm, salt:, info:, length:, hash:) -> String
3924
3919
  # -->
3925
3920
  # HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as specified in
3926
- # [RFC 5869](https://tools.ietf.org/html/rfc5869).
3921
+ # [RFC 5869](https://www.rfc-editor.org/rfc/rfc5869).
3927
3922
  #
3928
3923
  # New in OpenSSL 1.1.0.
3929
3924
  #
3930
3925
  # ### Parameters
3931
3926
  # *ikm*
3932
3927
  # : The input keying material.
3928
+ #
3933
3929
  # *salt*
3934
3930
  # : The salt.
3931
+ #
3935
3932
  # *info*
3936
3933
  # : The context and application specific information.
3934
+ #
3937
3935
  # *length*
3938
3936
  # : The output length in octets. Must be <= `255 * HashLen`, where HashLen is
3939
3937
  # the length of the hash function output in octets.
3938
+ #
3940
3939
  # *hash*
3941
3940
  # : The hash function.
3942
3941
  #
3943
3942
  #
3944
3943
  # ### Example
3945
- # # The values from https://datatracker.ietf.org/doc/html/rfc5869#appendix-A.1
3944
+ # # The values from https://www.rfc-editor.org/rfc/rfc5869#appendix-A.1
3946
3945
  # ikm = ["0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"].pack("H*")
3947
3946
  # salt = ["000102030405060708090a0b0c"].pack("H*")
3948
3947
  # info = ["f0f1f2f3f4f5f6f7f8f9"].pack("H*")
@@ -3960,22 +3959,26 @@ module OpenSSL
3960
3959
  # *length* bytes.
3961
3960
  #
3962
3961
  # For more information about PBKDF2, see RFC 2898 Section 5.2
3963
- # (https://tools.ietf.org/html/rfc2898#section-5.2).
3962
+ # (https://www.rfc-editor.org/rfc/rfc2898#section-5.2).
3964
3963
  #
3965
3964
  # ### Parameters
3966
3965
  # pass
3967
3966
  # : The password.
3967
+ #
3968
3968
  # salt
3969
3969
  # : The salt. Salts prevent attacks based on dictionaries of common passwords
3970
3970
  # and attacks based on rainbow tables. It is a public value that can be
3971
3971
  # safely stored along with the password (e.g. if the derived value is used
3972
3972
  # for password storage).
3973
+ #
3973
3974
  # iterations
3974
3975
  # : The iteration count. This provides the ability to tune the algorithm. It
3975
3976
  # is better to use the highest count possible for the maximum resistance to
3976
3977
  # brute-force attacks.
3978
+ #
3977
3979
  # length
3978
3980
  # : The desired length of the derived key in octets.
3981
+ #
3979
3982
  # hash
3980
3983
  # : The hash algorithm used with HMAC for the PRF. May be a String
3981
3984
  # representing the algorithm name, or an instance of OpenSSL::Digest.
@@ -3994,22 +3997,27 @@ module OpenSSL
3994
3997
  # attacks using custom hardwares than alternative KDFs such as PBKDF2 or bcrypt.
3995
3998
  #
3996
3999
  # The keyword arguments *N*, *r* and *p* can be used to tune scrypt. RFC 7914
3997
- # (published on 2016-08, https://tools.ietf.org/html/rfc7914#section-2) states
3998
- # that using values r=8 and p=1 appears to yield good results.
4000
+ # (published on 2016-08, https://www.rfc-editor.org/rfc/rfc7914#section-2)
4001
+ # states that using values r=8 and p=1 appears to yield good results.
3999
4002
  #
4000
- # See RFC 7914 (https://tools.ietf.org/html/rfc7914) for more information.
4003
+ # See RFC 7914 (https://www.rfc-editor.org/rfc/rfc7914) for more information.
4001
4004
  #
4002
4005
  # ### Parameters
4003
4006
  # pass
4004
4007
  # : Passphrase.
4008
+ #
4005
4009
  # salt
4006
4010
  # : Salt.
4011
+ #
4007
4012
  # N
4008
4013
  # : CPU/memory cost parameter. This must be a power of 2.
4014
+ #
4009
4015
  # r
4010
4016
  # : Block size parameter.
4017
+ #
4011
4018
  # p
4012
4019
  # : Parallelization parameter.
4020
+ #
4013
4021
  # length
4014
4022
  # : Length in octets of the derived key.
4015
4023
  #
@@ -4065,8 +4073,8 @@ module OpenSSL
4065
4073
  # <!-- rdoc-file=ext/openssl/ossl_ns_spki.c -->
4066
4074
  # OpenSSL::Netscape is a namespace for SPKI (Simple Public Key Infrastructure)
4067
4075
  # which implements Signed Public Key and Challenge. See [RFC
4068
- # 2692](http://tools.ietf.org/html/rfc2692) and [RFC
4069
- # 2693](http://tools.ietf.org/html/rfc2692) for details.
4076
+ # 2692](https://www.rfc-editor.org/rfc/rfc2692) and [RFC
4077
+ # 2693](https://www.rfc-editor.org/rfc/rfc2692) for details.
4070
4078
  #
4071
4079
  module Netscape
4072
4080
  # <!-- rdoc-file=ext/openssl/ossl_ns_spki.c -->
@@ -4122,7 +4130,6 @@ module OpenSSL
4122
4130
  # ### Parameters
4123
4131
  # * *str* - the challenge string to be set for this instance
4124
4132
  #
4125
- #
4126
4133
  # Sets the challenge to be associated with the SPKI. May be used by the server,
4127
4134
  # e.g. to prevent replay.
4128
4135
  #
@@ -4143,7 +4150,6 @@ module OpenSSL
4143
4150
  # ### Parameters
4144
4151
  # * *pub* - the public key to be set for this instance
4145
4152
  #
4146
- #
4147
4153
  # Sets the public key to be associated with the SPKI, an instance of
4148
4154
  # OpenSSL::PKey. This should be the public key corresponding to the private key
4149
4155
  # used for signing the SPKI.
@@ -4158,7 +4164,6 @@ module OpenSSL
4158
4164
  # * *key* - the private key to be used for signing this instance
4159
4165
  # * *digest* - the digest to be used for signing this instance
4160
4166
  #
4161
- #
4162
4167
  # To sign an SPKI, the private key corresponding to the public key set for this
4163
4168
  # instance should be used, in addition to a digest algorithm in the form of an
4164
4169
  # OpenSSL::Digest. The private key should be an instance of OpenSSL::PKey.
@@ -4201,7 +4206,6 @@ module OpenSSL
4201
4206
  # ### Parameters
4202
4207
  # * *key* - the public key to be used for verifying the SPKI signature
4203
4208
  #
4204
- #
4205
4209
  # Returns `true` if the signature is valid, `false` otherwise. To verify an
4206
4210
  # SPKI, the public key contained within the SPKI should be used.
4207
4211
  #
@@ -4518,7 +4522,6 @@ module OpenSSL
4518
4522
  # * OpenSSL::OCSP::V_CERTSTATUS_REVOKED
4519
4523
  # * OpenSSL::OCSP::V_CERTSTATUS_UNKNOWN
4520
4524
  #
4521
- #
4522
4525
  # *reason* and *revocation_time* can be given only when *status* is
4523
4526
  # OpenSSL::OCSP::V_CERTSTATUS_REVOKED. *reason* describes the reason for the
4524
4527
  # revocation, and must be one of OpenSSL::OCSP::REVOKED_STATUS_* constants.
@@ -4573,8 +4576,10 @@ module OpenSSL
4573
4576
  # *flags* can include:
4574
4577
  # OpenSSL::OCSP::NOCERTS
4575
4578
  # : don't include certificates
4579
+ #
4576
4580
  # OpenSSL::OCSP::NOTIME
4577
4581
  # : don't set producedAt
4582
+ #
4578
4583
  # OpenSSL::OCSP::RESPID_KEY
4579
4584
  # : use signer's public key hash as responderID
4580
4585
  #
@@ -4774,12 +4779,16 @@ module OpenSSL
4774
4779
  #
4775
4780
  # -1
4776
4781
  # : nonce in request only.
4782
+ #
4777
4783
  # 0
4778
4784
  # : nonces both present and not equal.
4785
+ #
4779
4786
  # 1
4780
4787
  # : nonces present and equal.
4788
+ #
4781
4789
  # 2
4782
4790
  # : nonces both absent.
4791
+ #
4783
4792
  # 3
4784
4793
  # : nonce present in response only.
4785
4794
  #
@@ -4939,7 +4948,6 @@ module OpenSSL
4939
4948
  # * V_CERTSTATUS_REVOKED
4940
4949
  # * V_CERTSTATUS_UNKNOWN
4941
4950
  #
4942
- #
4943
4951
  # When the status is V_CERTSTATUS_REVOKED, the time at which the certificate was
4944
4952
  # revoked can be retrieved by #revocation_time.
4945
4953
  #
@@ -5056,7 +5064,6 @@ module OpenSSL
5056
5064
  # * The public_key portion of the certificate must contain a valid public
5057
5065
  # key.
5058
5066
  # * The not_before and not_after fields must be filled in.
5059
- #
5060
5067
  # * *ca* - An optional array of X509::Certificate's.
5061
5068
  # * *key_pbe* - string
5062
5069
  # * *cert_pbe* - string
@@ -5064,7 +5071,6 @@ module OpenSSL
5064
5071
  # * *mac_iter* - integer
5065
5072
  # * *keytype* - An integer representing an MSIE specific extension.
5066
5073
  #
5067
- #
5068
5074
  # Any optional arguments may be supplied as `nil` to preserve the OpenSSL
5069
5075
  # defaults.
5070
5076
  #
@@ -5137,8 +5143,13 @@ module OpenSSL
5137
5143
  class PKCS7
5138
5144
  # <!--
5139
5145
  # rdoc-file=ext/openssl/ossl_pkcs7.c
5140
- # - PKCS7.encrypt(certs, data, [, cipher [, flags]]) => pkcs7
5146
+ # - PKCS7.encrypt(certs, data, cipher, flags = 0) => pkcs7
5141
5147
  # -->
5148
+ # Creates a PKCS #7 enveloped-data structure.
5149
+ #
5150
+ # Before version 3.3.0, `cipher` was optional and defaulted to `"RC2-40-CBC"`.
5151
+ #
5152
+ # See also the man page PKCS7_encrypt(3).
5142
5153
  #
5143
5154
  def self.encrypt: (X509::Certificate certs, String data, ?Cipher cipher, ?Integer flags) -> instance
5144
5155
 
@@ -5466,7 +5477,6 @@ module OpenSSL
5466
5477
  # * RSA (OpenSSL::PKey::RSA)
5467
5478
  # * DSA (OpenSSL::PKey::DSA)
5468
5479
  # * Elliptic Curve Cryptography (OpenSSL::PKey::EC)
5469
- #
5470
5480
  # Each of these implementations is in fact a sub-class of the abstract PKey
5471
5481
  # class which offers the interface for supporting digital signatures in the form
5472
5482
  # of PKey#sign and PKey#verify.
@@ -5509,11 +5519,14 @@ module OpenSSL
5509
5519
  # ### Accessor methods for the Diffie-Hellman parameters
5510
5520
  # DH#p
5511
5521
  # : The prime (an OpenSSL::BN) of the Diffie-Hellman parameters.
5522
+ #
5512
5523
  # DH#g
5513
5524
  # : The generator (an OpenSSL::BN) g of the Diffie-Hellman parameters.
5525
+ #
5514
5526
  # DH#pub_key
5515
5527
  # : The per-session public key (an OpenSSL::BN) matching the private key. This
5516
5528
  # needs to be passed to DH#compute_key.
5529
+ #
5517
5530
  # DH#priv_key
5518
5531
  # : The per-session private key, an OpenSSL::BN.
5519
5532
  #
@@ -5550,6 +5563,7 @@ module OpenSSL
5550
5563
  #
5551
5564
  # `size`
5552
5565
  # : The desired key size in bits.
5566
+ #
5553
5567
  # `generator`
5554
5568
  # : The generator.
5555
5569
  #
@@ -5793,8 +5807,10 @@ module OpenSSL
5793
5807
  #
5794
5808
  # `string`
5795
5809
  # : A String that contains the DER or PEM encoded key.
5810
+ #
5796
5811
  # `size`
5797
5812
  # : See DH.generate.
5813
+ #
5798
5814
  # `generator`
5799
5815
  # : See DH.generate.
5800
5816
  #
@@ -5877,6 +5893,7 @@ module OpenSSL
5877
5893
  # X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
5878
5894
  # private key.
5879
5895
  #
5896
+ #
5880
5897
  # When the key contains private components, and no parameters are given
5881
5898
  # : Serializes it into a traditional OpenSSL DSAPrivateKey.
5882
5899
  #
@@ -5886,6 +5903,7 @@ module OpenSSL
5886
5903
  # [...]
5887
5904
  # -----END DSA PRIVATE KEY-----
5888
5905
  #
5906
+ #
5889
5907
  # When the key contains private components, and *cipher* and *password* are given
5890
5908
  # : Serializes it into a traditional OpenSSL DSAPrivateKey and encrypts it in
5891
5909
  # OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
@@ -6023,6 +6041,7 @@ module OpenSSL
6023
6041
  #
6024
6042
  # `digest`
6025
6043
  # : A message digest of the original input data to be signed.
6044
+ #
6026
6045
  # `sig`
6027
6046
  # : A DSA signature value.
6028
6047
  #
@@ -6060,6 +6079,7 @@ module OpenSSL
6060
6079
  # X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
6061
6080
  # private key.
6062
6081
  #
6082
+ #
6063
6083
  # When the key contains private components, and no parameters are given
6064
6084
  # : Serializes it into a traditional OpenSSL DSAPrivateKey.
6065
6085
  #
@@ -6069,6 +6089,7 @@ module OpenSSL
6069
6089
  # [...]
6070
6090
  # -----END DSA PRIVATE KEY-----
6071
6091
  #
6092
+ #
6072
6093
  # When the key contains private components, and *cipher* and *password* are given
6073
6094
  # : Serializes it into a traditional OpenSSL DSAPrivateKey and encrypts it in
6074
6095
  # OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
@@ -6112,6 +6133,7 @@ module OpenSSL
6112
6133
  # X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
6113
6134
  # private key.
6114
6135
  #
6136
+ #
6115
6137
  # When the key contains private components, and no parameters are given
6116
6138
  # : Serializes it into a traditional OpenSSL DSAPrivateKey.
6117
6139
  #
@@ -6121,6 +6143,7 @@ module OpenSSL
6121
6143
  # [...]
6122
6144
  # -----END DSA PRIVATE KEY-----
6123
6145
  #
6146
+ #
6124
6147
  # When the key contains private components, and *cipher* and *password* are given
6125
6148
  # : Serializes it into a traditional OpenSSL DSAPrivateKey and encrypts it in
6126
6149
  # OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
@@ -6177,8 +6200,10 @@ module OpenSSL
6177
6200
  #
6178
6201
  # `string`
6179
6202
  # : A String that contains a DER or PEM encoded key.
6203
+ #
6180
6204
  # `pass`
6181
6205
  # : A String that contains an optional password.
6206
+ #
6182
6207
  # `size`
6183
6208
  # : See DSA.generate.
6184
6209
  #
@@ -6311,6 +6336,7 @@ module OpenSSL
6311
6336
  # X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
6312
6337
  # private key.
6313
6338
  #
6339
+ #
6314
6340
  # When the key contains private components, and no parameters are given
6315
6341
  # : Serializes it into a SEC 1/RFC 5915 ECPrivateKey.
6316
6342
  #
@@ -6320,6 +6346,7 @@ module OpenSSL
6320
6346
  # [...]
6321
6347
  # -----END EC PRIVATE KEY-----
6322
6348
  #
6349
+ #
6323
6350
  # When the key contains private components, and *cipher* and *password* are given
6324
6351
  # : Serializes it into a SEC 1/RFC 5915 ECPrivateKey and encrypts it in
6325
6352
  # OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
@@ -6488,6 +6515,7 @@ module OpenSSL
6488
6515
  # X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
6489
6516
  # private key.
6490
6517
  #
6518
+ #
6491
6519
  # When the key contains private components, and no parameters are given
6492
6520
  # : Serializes it into a SEC 1/RFC 5915 ECPrivateKey.
6493
6521
  #
@@ -6497,6 +6525,7 @@ module OpenSSL
6497
6525
  # [...]
6498
6526
  # -----END EC PRIVATE KEY-----
6499
6527
  #
6528
+ #
6500
6529
  # When the key contains private components, and *cipher* and *password* are given
6501
6530
  # : Serializes it into a SEC 1/RFC 5915 ECPrivateKey and encrypts it in
6502
6531
  # OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
@@ -6593,7 +6622,6 @@ module OpenSSL
6593
6622
  # * EC::NAMED_CURVE
6594
6623
  # * EC::EXPLICIT_CURVE
6595
6624
  #
6596
- #
6597
6625
  # See the OpenSSL documentation for EC_GROUP_set_asn1_flag().
6598
6626
  #
6599
6627
  def asn1_flag=: (Integer) -> Integer
@@ -6677,8 +6705,10 @@ module OpenSSL
6677
6705
  # `:compressed`
6678
6706
  # : Encoded as z||x, where z is an octet indicating which solution of the
6679
6707
  # equation y is. z will be 0x02 or 0x03.
6708
+ #
6680
6709
  # `:uncompressed`
6681
6710
  # : Encoded as z||x||y, where z is an octet 0x04.
6711
+ #
6682
6712
  # `:hybrid`
6683
6713
  # : Encodes as z||x||y, where z is an octet indicating which solution of the
6684
6714
  # equation y is. z will be 0x06 or 0x07.
@@ -7008,8 +7038,10 @@ module OpenSSL
7008
7038
  # the PKey type requires no digest algorithm. For backwards compatibility,
7009
7039
  # this can be an instance of OpenSSL::Digest. Its state will not affect the
7010
7040
  # signature.
7041
+ #
7011
7042
  # `data`
7012
7043
  # : A String. The data to be hashed and signed.
7044
+ #
7013
7045
  # `options`
7014
7046
  # : A Hash that contains algorithm specific control operations to OpenSSL. See
7015
7047
  # OpenSSL's man page EVP_PKEY_CTX_ctrl_str(3) for details. `options`
@@ -7044,10 +7076,13 @@ module OpenSSL
7044
7076
  #
7045
7077
  # `digest`
7046
7078
  # : See #sign.
7079
+ #
7047
7080
  # `signature`
7048
7081
  # : A String containing the signature to be verified.
7082
+ #
7049
7083
  # `data`
7050
7084
  # : See #sign.
7085
+ #
7051
7086
  # `options`
7052
7087
  # : See #sign. `options` parameter was added in version 3.0.
7053
7088
  #
@@ -7094,6 +7129,7 @@ module OpenSSL
7094
7129
  #
7095
7130
  # `size`
7096
7131
  # : The desired key size in bits.
7132
+ #
7097
7133
  # `exponent`
7098
7134
  # : An odd Integer, normally 3, 17, or 65537.
7099
7135
  #
@@ -7129,6 +7165,7 @@ module OpenSSL
7129
7165
  # X.509 SubjectPublicKeyInfo regardless of whether the key is a public key
7130
7166
  # or a private key.
7131
7167
  #
7168
+ #
7132
7169
  # When the key contains private components, and no parameters are given
7133
7170
  # : Serializes it into a PKCS #1 RSAPrivateKey.
7134
7171
  #
@@ -7138,6 +7175,7 @@ module OpenSSL
7138
7175
  # [...]
7139
7176
  # -----END RSA PRIVATE KEY-----
7140
7177
  #
7178
+ #
7141
7179
  # When the key contains private components, and *cipher* and *password* are given
7142
7180
  # : Serializes it into a PKCS #1 RSAPrivateKey and encrypts it in OpenSSL's
7143
7181
  # traditional PEM encryption format. *cipher* must be a cipher name
@@ -7312,13 +7350,16 @@ module OpenSSL
7312
7350
  # ### Parameters
7313
7351
  # *digest*
7314
7352
  # : A String containing the message digest algorithm name.
7353
+ #
7315
7354
  # *data*
7316
7355
  # : A String. The data to be signed.
7356
+ #
7317
7357
  # *salt_length*
7318
7358
  # : The length in octets of the salt. Two special values are reserved:
7319
7359
  # `:digest` means the digest length, and `:max` means the maximum possible
7320
7360
  # length for the combination of the private key and the selected message
7321
7361
  # digest algorithm.
7362
+ #
7322
7363
  # *mgf1_hash*
7323
7364
  # : The hash algorithm used in MGF1 (the currently supported mask generation
7324
7365
  # function (MGF)).
@@ -7366,6 +7407,7 @@ module OpenSSL
7366
7407
  # X.509 SubjectPublicKeyInfo regardless of whether the key is a public key
7367
7408
  # or a private key.
7368
7409
  #
7410
+ #
7369
7411
  # When the key contains private components, and no parameters are given
7370
7412
  # : Serializes it into a PKCS #1 RSAPrivateKey.
7371
7413
  #
@@ -7375,6 +7417,7 @@ module OpenSSL
7375
7417
  # [...]
7376
7418
  # -----END RSA PRIVATE KEY-----
7377
7419
  #
7420
+ #
7378
7421
  # When the key contains private components, and *cipher* and *password* are given
7379
7422
  # : Serializes it into a PKCS #1 RSAPrivateKey and encrypts it in OpenSSL's
7380
7423
  # traditional PEM encryption format. *cipher* must be a cipher name
@@ -7418,6 +7461,7 @@ module OpenSSL
7418
7461
  # X.509 SubjectPublicKeyInfo regardless of whether the key is a public key
7419
7462
  # or a private key.
7420
7463
  #
7464
+ #
7421
7465
  # When the key contains private components, and no parameters are given
7422
7466
  # : Serializes it into a PKCS #1 RSAPrivateKey.
7423
7467
  #
@@ -7427,6 +7471,7 @@ module OpenSSL
7427
7471
  # [...]
7428
7472
  # -----END RSA PRIVATE KEY-----
7429
7473
  #
7474
+ #
7430
7475
  # When the key contains private components, and *cipher* and *password* are given
7431
7476
  # : Serializes it into a PKCS #1 RSAPrivateKey and encrypts it in OpenSSL's
7432
7477
  # traditional PEM encryption format. *cipher* must be a cipher name
@@ -7479,12 +7524,15 @@ module OpenSSL
7479
7524
  # ### Parameters
7480
7525
  # *digest*
7481
7526
  # : A String containing the message digest algorithm name.
7527
+ #
7482
7528
  # *data*
7483
7529
  # : A String. The data to be signed.
7530
+ #
7484
7531
  # *salt_length*
7485
7532
  # : The length in octets of the salt. Two special values are reserved:
7486
7533
  # `:digest` means the digest length, and `:auto` means automatically
7487
7534
  # determining the length based on the signature.
7535
+ #
7488
7536
  # *mgf1_hash*
7489
7537
  # : The hash algorithm used in MGF1.
7490
7538
  #
@@ -7834,8 +7882,10 @@ module OpenSSL
7834
7882
  # ### Parameters
7835
7883
  # *certificate*
7836
7884
  # : A certificate. An instance of OpenSSL::X509::Certificate.
7885
+ #
7837
7886
  # *pkey*
7838
7887
  # : The private key for *certificate*. An instance of OpenSSL::PKey::PKey.
7888
+ #
7839
7889
  # *extra_certs*
7840
7890
  # : Optional. An array of OpenSSL::X509::Certificate. When sending a
7841
7891
  # certificate chain, the certificates specified by this are sent following
@@ -8194,7 +8244,7 @@ module OpenSSL
8194
8244
 
8195
8245
  # <!--
8196
8246
  # rdoc-file=ext/openssl/ossl_ssl.c
8197
- # - options()
8247
+ # - ctx.options -> integer
8198
8248
  # -->
8199
8249
  # Gets various OpenSSL options.
8200
8250
  #
@@ -8202,9 +8252,16 @@ module OpenSSL
8202
8252
 
8203
8253
  # <!--
8204
8254
  # rdoc-file=ext/openssl/ossl_ssl.c
8205
- # - options=(p1)
8255
+ # - ctx.options = integer
8206
8256
  # -->
8207
- # Sets various OpenSSL options.
8257
+ # Sets various OpenSSL options. The options are a bit field and can be combined
8258
+ # with the bitwise OR operator (`|`). Available options are defined as constants
8259
+ # in OpenSSL::SSL that begin with `OP_`.
8260
+ #
8261
+ # For backwards compatibility, passing `nil` has the same effect as passing
8262
+ # OpenSSL::SSL::OP_ALL.
8263
+ #
8264
+ # See also man page SSL_CTX_set_options(3).
8208
8265
  #
8209
8266
  def options=: (Integer ssl_options) -> Integer
8210
8267
 
@@ -8349,26 +8406,37 @@ module OpenSSL
8349
8406
  #
8350
8407
  # :accept
8351
8408
  # : Number of started SSL/TLS handshakes in server mode
8409
+ #
8352
8410
  # :accept_good
8353
8411
  # : Number of established SSL/TLS sessions in server mode
8412
+ #
8354
8413
  # :accept_renegotiate
8355
8414
  # : Number of start renegotiations in server mode
8415
+ #
8356
8416
  # :cache_full
8357
8417
  # : Number of sessions that were removed due to cache overflow
8418
+ #
8358
8419
  # :cache_hits
8359
8420
  # : Number of successfully reused connections
8421
+ #
8360
8422
  # :cache_misses
8361
8423
  # : Number of sessions proposed by clients that were not found in the cache
8424
+ #
8362
8425
  # :cache_num
8363
8426
  # : Number of sessions in the internal session cache
8427
+ #
8364
8428
  # :cb_hits
8365
8429
  # : Number of sessions retrieved from the external cache in server mode
8430
+ #
8366
8431
  # :connect
8367
8432
  # : Number of started SSL/TLS handshakes in client mode
8433
+ #
8368
8434
  # :connect_good
8369
8435
  # : Number of established SSL/TLS sessions in client mode
8436
+ #
8370
8437
  # :connect_renegotiate
8371
8438
  # : Number of start renegotiations in client mode
8439
+ #
8372
8440
  # :timeouts
8373
8441
  # : Number of sessions proposed by clients that were found in the cache but
8374
8442
  # had expired due to timeouts
@@ -9521,13 +9589,11 @@ module OpenSSL
9521
9589
  # * Request#algorithm
9522
9590
  # * Request#message_imprint
9523
9591
  #
9524
- #
9525
9592
  # Mandatory parameters that need to be set in the Factory:
9526
9593
  # * Factory#serial_number
9527
9594
  # * Factory#gen_time
9528
9595
  # * Factory#allowed_digests
9529
9596
  #
9530
- #
9531
9597
  # In addition one of either Request#policy_id or Factory#default_policy_id must
9532
9598
  # be set.
9533
9599
  #
@@ -10971,7 +11037,7 @@ module OpenSSL
10971
11037
  # - crl_uris()
10972
11038
  # -->
10973
11039
  # Get the distributionPoint fullName URI from the certificate's CRL distribution
10974
- # points extension, as described in RFC5280 Section 4.2.1.13
11040
+ # points extension, as described in RFC 5280 Section 4.2.1.13.
10975
11041
  #
10976
11042
  # Returns an array of strings or nil or raises ASN1::ASN1Error.
10977
11043
  #
@@ -11136,7 +11202,6 @@ module OpenSSL
11136
11202
  # `#to_s(OpenSSL::X509::Name::COMPAT)`. For example: `DC=com, DC=example,
11137
11203
  # CN=nobody`
11138
11204
  #
11139
- #
11140
11205
  # Neither of them is standardized and has quirks and inconsistencies in handling
11141
11206
  # of escaped characters or multi-valued RDNs.
11142
11207
  #
@@ -11172,14 +11237,19 @@ module OpenSSL
11172
11237
  #
11173
11238
  # C
11174
11239
  # : Country Name
11240
+ #
11175
11241
  # CN
11176
11242
  # : Common Name
11243
+ #
11177
11244
  # DC
11178
11245
  # : Domain Component
11246
+ #
11179
11247
  # O
11180
11248
  # : Organization Name
11249
+ #
11181
11250
  # OU
11182
11251
  # : Organizational Unit Name
11252
+ #
11183
11253
  # ST
11184
11254
  # : State or Province Name
11185
11255
  #
@@ -11265,7 +11335,6 @@ module OpenSSL
11265
11335
  # * OpenSSL::X509::Name::ONELINE
11266
11336
  # * OpenSSL::X509::Name::MULTILINE
11267
11337
  #
11268
- #
11269
11338
  # If *format* is omitted, the largely broken and traditional OpenSSL format
11270
11339
  # (`X509_NAME_oneline()` format) is chosen.
11271
11340
  #
@@ -11785,7 +11854,6 @@ module OpenSSL
11785
11854
  # * X509::PURPOSE_OCSP_HELPER
11786
11855
  # * X509::PURPOSE_TIMESTAMP_SIGN
11787
11856
  #
11788
- #
11789
11857
  # OpenSSL::X509::StoreContext#purpose= can be used to change the value for a
11790
11858
  # single verification operation.
11791
11859
  #
@@ -11804,7 +11872,6 @@ module OpenSSL
11804
11872
  # * OpenSSL::X509::DEFAULT_CERT_FILE
11805
11873
  # * OpenSSL::X509::DEFAULT_CERT_DIR
11806
11874
  #
11807
- #
11808
11875
  # See also the man page X509_STORE_set_default_paths(3).
11809
11876
  #
11810
11877
  def set_default_paths: () -> nil