rbs 3.7.0 → 3.8.0.pre.1

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. 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