rbs 3.3.2 → 3.4.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -5
- data/.github/workflows/ruby.yml +7 -8
- data/.github/workflows/typecheck.yml +37 -0
- data/CHANGELOG.md +50 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +11 -11
- data/Steepfile +2 -2
- data/core/array.rbs +19 -49
- data/core/basic_object.rbs +2 -2
- data/core/comparable.rbs +17 -8
- data/core/complex.rbs +82 -43
- data/core/data.rbs +2 -4
- data/core/dir.rbs +635 -295
- data/core/enumerable.rbs +11 -18
- data/core/enumerator.rbs +37 -31
- data/core/errors.rbs +4 -0
- data/core/false_class.rbs +34 -15
- data/core/fiber.rbs +23 -0
- data/core/file.rbs +329 -120
- data/core/float.rbs +17 -32
- data/core/gc.rbs +17 -11
- data/core/hash.rbs +22 -44
- data/core/integer.rbs +82 -113
- data/core/io/buffer.rbs +90 -47
- data/core/io.rbs +39 -116
- data/core/kernel.rbs +442 -489
- data/core/match_data.rbs +55 -56
- data/core/module.rbs +45 -1
- data/core/nil_class.rbs +98 -35
- data/core/numeric.rbs +22 -32
- data/core/object_space/weak_key_map.rbs +102 -0
- data/core/process.rbs +1242 -655
- data/core/ractor.rbs +139 -120
- data/core/range.rbs +100 -4
- data/core/rational.rbs +0 -4
- data/core/rbs/unnamed/argf.rbs +16 -8
- data/core/rbs/unnamed/env_class.rbs +0 -24
- data/core/refinement.rbs +8 -0
- data/core/regexp.rbs +1149 -598
- data/core/ruby_vm.rbs +126 -12
- data/core/rubygems/platform.rbs +9 -0
- data/core/rubygems/rubygems.rbs +1 -1
- data/core/rubygems/version.rbs +5 -1
- data/core/set.rbs +20 -22
- data/core/signal.rbs +4 -4
- data/core/string.rbs +283 -230
- data/core/string_io.rbs +2 -14
- data/core/struct.rbs +404 -24
- data/core/symbol.rbs +1 -19
- data/core/thread.rbs +29 -12
- data/core/time.rbs +227 -104
- data/core/trace_point.rbs +2 -5
- data/core/true_class.rbs +54 -21
- data/core/warning.rbs +14 -11
- data/docs/data_and_struct.md +29 -0
- data/docs/syntax.md +3 -5
- data/docs/tools.md +1 -0
- data/ext/rbs_extension/lexer.c +643 -559
- data/ext/rbs_extension/lexer.re +5 -1
- data/ext/rbs_extension/parser.c +12 -3
- data/ext/rbs_extension/unescape.c +7 -47
- data/lib/rbs/cli/diff.rb +4 -1
- data/lib/rbs/cli/validate.rb +280 -0
- data/lib/rbs/cli.rb +2 -194
- data/lib/rbs/collection/config.rb +5 -6
- data/lib/rbs/collection/sources/git.rb +1 -1
- data/lib/rbs/collection.rb +1 -0
- data/lib/rbs/diff.rb +7 -4
- data/lib/rbs/errors.rb +11 -0
- data/lib/rbs/test/errors.rb +4 -1
- data/lib/rbs/test/guaranteed.rb +2 -3
- data/lib/rbs/test/type_check.rb +15 -10
- data/lib/rbs/test.rb +3 -3
- data/lib/rbs/types.rb +29 -0
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +136 -0
- data/lib/rbs/unit_test/type_assertions.rb +341 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/version.rb +1 -1
- data/sig/cli/validate.rbs +43 -0
- data/sig/diff.rbs +3 -1
- data/sig/errors.rbs +8 -0
- data/sig/rbs.rbs +1 -1
- data/sig/test/errors.rbs +52 -0
- data/sig/test/guranteed.rbs +9 -0
- data/sig/test/type_check.rbs +19 -0
- data/sig/test.rbs +82 -0
- data/sig/types.rbs +6 -1
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +28 -0
- data/sig/unit_test/type_assertions.rbs +194 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/stdlib/base64/0/base64.rbs +307 -45
- data/stdlib/bigdecimal/0/big_decimal.rbs +35 -15
- data/stdlib/coverage/0/coverage.rbs +2 -2
- data/stdlib/csv/0/csv.rbs +25 -55
- data/stdlib/date/0/date.rbs +1 -43
- data/stdlib/date/0/date_time.rbs +1 -13
- data/stdlib/delegate/0/delegator.rbs +186 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +98 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -1
- data/stdlib/erb/0/erb.rbs +2 -2
- data/stdlib/fileutils/0/fileutils.rbs +0 -19
- data/stdlib/io-console/0/io-console.rbs +12 -1
- data/stdlib/ipaddr/0/ipaddr.rbs +2 -1
- data/stdlib/json/0/json.rbs +320 -81
- data/stdlib/logger/0/logger.rbs +9 -5
- data/stdlib/monitor/0/monitor.rbs +78 -0
- data/stdlib/net-http/0/net-http.rbs +1880 -543
- data/stdlib/objspace/0/objspace.rbs +19 -13
- data/stdlib/openssl/0/openssl.rbs +508 -127
- data/stdlib/optparse/0/optparse.rbs +25 -11
- data/stdlib/pathname/0/pathname.rbs +1 -1
- data/stdlib/pp/0/pp.rbs +2 -5
- data/stdlib/prettyprint/0/prettyprint.rbs +2 -2
- data/stdlib/pstore/0/pstore.rbs +2 -4
- data/stdlib/rdoc/0/comment.rbs +1 -2
- data/stdlib/resolv/0/resolv.rbs +4 -2
- data/stdlib/socket/0/socket.rbs +2 -2
- data/stdlib/socket/0/unix_socket.rbs +2 -2
- data/stdlib/strscan/0/string_scanner.rbs +3 -2
- data/stdlib/tempfile/0/tempfile.rbs +1 -1
- data/stdlib/uri/0/common.rbs +245 -123
- metadata +23 -4
- data/lib/rbs/test/spy.rb +0 -6
@@ -20,23 +20,21 @@
|
|
20
20
|
#
|
21
21
|
# key = OpenSSL::PKey::RSA.new 2048
|
22
22
|
#
|
23
|
-
#
|
24
|
-
#
|
23
|
+
# File.write 'private_key.pem', key.private_to_pem
|
24
|
+
# File.write 'public_key.pem', key.public_to_pem
|
25
25
|
#
|
26
26
|
# ### Exporting a Key
|
27
27
|
#
|
28
28
|
# Keys saved to disk without encryption are not secure as anyone who gets ahold
|
29
29
|
# of the key may use it unless it is encrypted. In order to securely export a
|
30
|
-
# key you may export it with a
|
30
|
+
# key you may export it with a password.
|
31
31
|
#
|
32
32
|
# cipher = OpenSSL::Cipher.new 'aes-256-cbc'
|
33
|
-
#
|
33
|
+
# password = 'my secure password goes here'
|
34
34
|
#
|
35
|
-
# key_secure = key.
|
35
|
+
# key_secure = key.private_to_pem cipher, password
|
36
36
|
#
|
37
|
-
#
|
38
|
-
# io.write key_secure
|
39
|
-
# end
|
37
|
+
# File.write 'private.secure.pem', key_secure
|
40
38
|
#
|
41
39
|
# OpenSSL::Cipher.ciphers returns a list of available ciphers.
|
42
40
|
#
|
@@ -56,13 +54,13 @@
|
|
56
54
|
#
|
57
55
|
# ### Loading an Encrypted Key
|
58
56
|
#
|
59
|
-
# OpenSSL will prompt you for your
|
60
|
-
# you will not be able to type in the
|
61
|
-
#
|
57
|
+
# OpenSSL will prompt you for your password when loading an encrypted key. If
|
58
|
+
# you will not be able to type in the password you may provide it when loading
|
59
|
+
# the key:
|
62
60
|
#
|
63
61
|
# key4_pem = File.read 'private.secure.pem'
|
64
|
-
#
|
65
|
-
# key4 = OpenSSL::PKey.read key4_pem,
|
62
|
+
# password = 'my secure password goes here'
|
63
|
+
# key4 = OpenSSL::PKey.read key4_pem, password
|
66
64
|
#
|
67
65
|
# ## RSA Encryption
|
68
66
|
#
|
@@ -175,44 +173,6 @@
|
|
175
173
|
# decrypted = cipher.update encrypted
|
176
174
|
# decrypted << cipher.final
|
177
175
|
#
|
178
|
-
# ## PKCS #5 Password-based Encryption
|
179
|
-
#
|
180
|
-
# PKCS #5 is a password-based encryption standard documented at
|
181
|
-
# [RFC2898](http://www.ietf.org/rfc/rfc2898.txt). It allows a short password or
|
182
|
-
# passphrase to be used to create a secure encryption key. If possible, PBKDF2
|
183
|
-
# as described above should be used if the circumstances allow it.
|
184
|
-
#
|
185
|
-
# PKCS #5 uses a Cipher, a pass phrase and a salt to generate an encryption key.
|
186
|
-
#
|
187
|
-
# pass_phrase = 'my secure pass phrase goes here'
|
188
|
-
# salt = '8 octets'
|
189
|
-
#
|
190
|
-
# ### Encryption
|
191
|
-
#
|
192
|
-
# First set up the cipher for encryption
|
193
|
-
#
|
194
|
-
# encryptor = OpenSSL::Cipher.new 'aes-256-cbc'
|
195
|
-
# encryptor.encrypt
|
196
|
-
# encryptor.pkcs5_keyivgen pass_phrase, salt
|
197
|
-
#
|
198
|
-
# Then pass the data you want to encrypt through
|
199
|
-
#
|
200
|
-
# encrypted = encryptor.update 'top secret document'
|
201
|
-
# encrypted << encryptor.final
|
202
|
-
#
|
203
|
-
# ### Decryption
|
204
|
-
#
|
205
|
-
# Use a new Cipher instance set up for decryption
|
206
|
-
#
|
207
|
-
# decryptor = OpenSSL::Cipher.new 'aes-256-cbc'
|
208
|
-
# decryptor.decrypt
|
209
|
-
# decryptor.pkcs5_keyivgen pass_phrase, salt
|
210
|
-
#
|
211
|
-
# Then pass the data you want to decrypt through
|
212
|
-
#
|
213
|
-
# plain = decryptor.update encrypted
|
214
|
-
# plain << decryptor.final
|
215
|
-
#
|
216
176
|
# ## X509 Certificates
|
217
177
|
#
|
218
178
|
# ### Creating a Certificate
|
@@ -290,12 +250,12 @@
|
|
290
250
|
# not readable by other users.
|
291
251
|
#
|
292
252
|
# ca_key = OpenSSL::PKey::RSA.new 2048
|
293
|
-
#
|
253
|
+
# password = 'my secure password goes here'
|
294
254
|
#
|
295
|
-
# cipher =
|
255
|
+
# cipher = 'aes-256-cbc'
|
296
256
|
#
|
297
257
|
# open 'ca_key.pem', 'w', 0400 do |io|
|
298
|
-
# io.write ca_key.
|
258
|
+
# io.write ca_key.private_to_pem(cipher, password)
|
299
259
|
# end
|
300
260
|
#
|
301
261
|
# ### CA Certificate
|
@@ -584,7 +544,18 @@ module OpenSSL
|
|
584
544
|
OPENSSL_VERSION: String
|
585
545
|
|
586
546
|
# <!-- rdoc-file=ext/openssl/ossl.c -->
|
587
|
-
# Version number of OpenSSL the ruby OpenSSL extension was built with (base 16)
|
547
|
+
# Version number of OpenSSL the ruby OpenSSL extension was built with (base 16).
|
548
|
+
# The formats are below.
|
549
|
+
#
|
550
|
+
# OpenSSL 3
|
551
|
+
# : `0xMNN00PP0 (major minor 00 patch 0)`
|
552
|
+
# OpenSSL before 3
|
553
|
+
# : `0xMNNFFPPS (major minor fix patch status)`
|
554
|
+
# LibreSSL
|
555
|
+
# : `0x20000000 (fixed value)`
|
556
|
+
#
|
557
|
+
#
|
558
|
+
# See also the man page OPENSSL_VERSION_NUMBER(3).
|
588
559
|
#
|
589
560
|
OPENSSL_VERSION_NUMBER: Integer
|
590
561
|
|
@@ -812,7 +783,7 @@ module OpenSSL
|
|
812
783
|
# puts "Header length: #{header_len} Tag: #{tag} Tag class: #{tag_class} Constructed: #{constructed}"
|
813
784
|
# end
|
814
785
|
#
|
815
|
-
def self.traverse: (String | _ToDer der) { (::Integer, ::Integer, ::Integer, ::Integer, bool, tag_class, ::Integer) -> void } -> void
|
786
|
+
def self.traverse: (String | _ToDer der) { ([::Integer, ::Integer, ::Integer, ::Integer, bool, tag_class, ::Integer]) -> void } -> void
|
816
787
|
|
817
788
|
BIT_STRING: Integer
|
818
789
|
|
@@ -3221,14 +3192,10 @@ module OpenSSL
|
|
3221
3192
|
# Return the hash value computed with *name* Digest. *name* is either the long
|
3222
3193
|
# name or short name of a supported digest algorithm.
|
3223
3194
|
#
|
3224
|
-
# ###
|
3195
|
+
# ### Example
|
3225
3196
|
#
|
3226
3197
|
# OpenSSL::Digest.digest("SHA256", "abc")
|
3227
3198
|
#
|
3228
|
-
# which is equivalent to:
|
3229
|
-
#
|
3230
|
-
# OpenSSL::Digest.digest('SHA256', "abc")
|
3231
|
-
#
|
3232
3199
|
def self.digest: (String name, String data) -> String
|
3233
3200
|
|
3234
3201
|
public
|
@@ -3998,7 +3965,7 @@ module OpenSSL
|
|
3998
3965
|
#
|
3999
3966
|
# ### Parameters
|
4000
3967
|
# pass
|
4001
|
-
# : The
|
3968
|
+
# : The password.
|
4002
3969
|
# salt
|
4003
3970
|
# : The salt. Salts prevent attacks based on dictionaries of common passwords
|
4004
3971
|
# and attacks based on rainbow tables. It is a public value that can be
|
@@ -4312,7 +4279,7 @@ module OpenSSL
|
|
4312
4279
|
# require 'net/http'
|
4313
4280
|
#
|
4314
4281
|
# http_response =
|
4315
|
-
# Net::HTTP.start ocsp_uri.hostname,
|
4282
|
+
# Net::HTTP.start ocsp_uri.hostname, ocsp_uri.port do |http|
|
4316
4283
|
# http.post ocsp_uri.path, request.to_der,
|
4317
4284
|
# 'content-type' => 'application/ocsp-request'
|
4318
4285
|
# end
|
@@ -5637,9 +5604,20 @@ module OpenSSL
|
|
5637
5604
|
# - dh.to_pem -> aString
|
5638
5605
|
# - dh.to_s -> aString
|
5639
5606
|
# -->
|
5640
|
-
#
|
5641
|
-
#
|
5642
|
-
#
|
5607
|
+
# Serializes the DH parameters to a PEM-encoding.
|
5608
|
+
#
|
5609
|
+
# Note that any existing per-session public/private keys will **not** get
|
5610
|
+
# encoded, just the Diffie-Hellman parameters will be encoded.
|
5611
|
+
#
|
5612
|
+
# PEM-encoded parameters will look like:
|
5613
|
+
#
|
5614
|
+
# -----BEGIN DH PARAMETERS-----
|
5615
|
+
# [...]
|
5616
|
+
# -----END DH PARAMETERS-----
|
5617
|
+
#
|
5618
|
+
# See also #public_to_pem (X.509 SubjectPublicKeyInfo) and #private_to_pem (PKCS
|
5619
|
+
# #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) for serialization with the
|
5620
|
+
# private or public key components.
|
5643
5621
|
#
|
5644
5622
|
def export: () -> String
|
5645
5623
|
|
@@ -5765,23 +5743,50 @@ module OpenSSL
|
|
5765
5743
|
# rdoc-file=ext/openssl/ossl_pkey_dh.c
|
5766
5744
|
# - dh.to_der -> aString
|
5767
5745
|
# -->
|
5768
|
-
#
|
5769
|
-
#
|
5770
|
-
#
|
5746
|
+
# Serializes the DH parameters to a DER-encoding
|
5747
|
+
#
|
5748
|
+
# Note that any existing per-session public/private keys will **not** get
|
5749
|
+
# encoded, just the Diffie-Hellman parameters will be encoded.
|
5750
|
+
#
|
5751
|
+
# See also #public_to_der (X.509 SubjectPublicKeyInfo) and #private_to_der (PKCS
|
5752
|
+
# #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) for serialization with the
|
5753
|
+
# private or public key components.
|
5771
5754
|
#
|
5772
5755
|
def to_der: () -> String
|
5773
5756
|
|
5774
5757
|
# <!-- rdoc-file=ext/openssl/ossl_pkey_dh.c -->
|
5775
|
-
#
|
5776
|
-
#
|
5777
|
-
#
|
5758
|
+
# Serializes the DH parameters to a PEM-encoding.
|
5759
|
+
#
|
5760
|
+
# Note that any existing per-session public/private keys will **not** get
|
5761
|
+
# encoded, just the Diffie-Hellman parameters will be encoded.
|
5762
|
+
#
|
5763
|
+
# PEM-encoded parameters will look like:
|
5764
|
+
#
|
5765
|
+
# -----BEGIN DH PARAMETERS-----
|
5766
|
+
# [...]
|
5767
|
+
# -----END DH PARAMETERS-----
|
5768
|
+
#
|
5769
|
+
# See also #public_to_pem (X.509 SubjectPublicKeyInfo) and #private_to_pem (PKCS
|
5770
|
+
# #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) for serialization with the
|
5771
|
+
# private or public key components.
|
5778
5772
|
#
|
5779
5773
|
alias to_pem export
|
5780
5774
|
|
5781
5775
|
# <!-- rdoc-file=ext/openssl/ossl_pkey_dh.c -->
|
5782
|
-
#
|
5783
|
-
#
|
5784
|
-
#
|
5776
|
+
# Serializes the DH parameters to a PEM-encoding.
|
5777
|
+
#
|
5778
|
+
# Note that any existing per-session public/private keys will **not** get
|
5779
|
+
# encoded, just the Diffie-Hellman parameters will be encoded.
|
5780
|
+
#
|
5781
|
+
# PEM-encoded parameters will look like:
|
5782
|
+
#
|
5783
|
+
# -----BEGIN DH PARAMETERS-----
|
5784
|
+
# [...]
|
5785
|
+
# -----END DH PARAMETERS-----
|
5786
|
+
#
|
5787
|
+
# See also #public_to_pem (X.509 SubjectPublicKeyInfo) and #private_to_pem (PKCS
|
5788
|
+
# #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) for serialization with the
|
5789
|
+
# private or public key components.
|
5785
5790
|
#
|
5786
5791
|
alias to_s export
|
5787
5792
|
|
@@ -5885,16 +5890,54 @@ module OpenSSL
|
|
5885
5890
|
# - dsa.to_pem([cipher, password]) -> aString
|
5886
5891
|
# - dsa.to_s([cipher, password]) -> aString
|
5887
5892
|
# -->
|
5888
|
-
#
|
5893
|
+
# Serializes a private or public key to a PEM-encoding.
|
5889
5894
|
#
|
5890
|
-
#
|
5891
|
-
#
|
5892
|
-
# *
|
5895
|
+
# When the key contains public components only
|
5896
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
5897
|
+
# and *password* are ignored.
|
5893
5898
|
#
|
5899
|
+
# A PEM-encoded key will look like:
|
5894
5900
|
#
|
5895
|
-
#
|
5896
|
-
#
|
5897
|
-
#
|
5901
|
+
# -----BEGIN PUBLIC KEY-----
|
5902
|
+
# [...]
|
5903
|
+
# -----END PUBLIC KEY-----
|
5904
|
+
#
|
5905
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
5906
|
+
# X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
|
5907
|
+
# private key.
|
5908
|
+
#
|
5909
|
+
# When the key contains private components, and no parameters are given
|
5910
|
+
# : Serializes it into a traditional OpenSSL DSAPrivateKey.
|
5911
|
+
#
|
5912
|
+
# A PEM-encoded key will look like:
|
5913
|
+
#
|
5914
|
+
# -----BEGIN DSA PRIVATE KEY-----
|
5915
|
+
# [...]
|
5916
|
+
# -----END DSA PRIVATE KEY-----
|
5917
|
+
#
|
5918
|
+
# When the key contains private components, and *cipher* and *password* are given
|
5919
|
+
# : Serializes it into a traditional OpenSSL DSAPrivateKey and encrypts it in
|
5920
|
+
# OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
|
5921
|
+
# name understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
5922
|
+
#
|
5923
|
+
# An encrypted PEM-encoded key will look like:
|
5924
|
+
#
|
5925
|
+
# -----BEGIN DSA PRIVATE KEY-----
|
5926
|
+
# Proc-Type: 4,ENCRYPTED
|
5927
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
5928
|
+
#
|
5929
|
+
# [...]
|
5930
|
+
# -----END DSA PRIVATE KEY-----
|
5931
|
+
#
|
5932
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
5933
|
+
# will not be available on FIPS-compliant systems.
|
5934
|
+
#
|
5935
|
+
#
|
5936
|
+
# **This method is kept for compatibility.** This should only be used when the
|
5937
|
+
# traditional, non-standard OpenSSL format is required.
|
5938
|
+
#
|
5939
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
5940
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
5898
5941
|
#
|
5899
5942
|
def export: (String cipher, String password) -> String
|
5900
5943
|
| () -> String
|
@@ -6018,35 +6061,118 @@ module OpenSSL
|
|
6018
6061
|
# rdoc-file=ext/openssl/ossl_pkey_dsa.c
|
6019
6062
|
# - dsa.to_der -> aString
|
6020
6063
|
# -->
|
6021
|
-
#
|
6064
|
+
# Serializes a private or public key to a DER-encoding.
|
6065
|
+
#
|
6066
|
+
# See #to_pem for details.
|
6067
|
+
#
|
6068
|
+
# **This method is kept for compatibility.** This should only be used when the
|
6069
|
+
# traditional, non-standard OpenSSL format is required.
|
6070
|
+
#
|
6071
|
+
# Consider using #public_to_der or #private_to_der instead.
|
6022
6072
|
#
|
6023
6073
|
def to_der: () -> String
|
6024
6074
|
|
6025
6075
|
# <!-- rdoc-file=ext/openssl/ossl_pkey_dsa.c -->
|
6026
|
-
#
|
6076
|
+
# Serializes a private or public key to a PEM-encoding.
|
6027
6077
|
#
|
6028
|
-
#
|
6029
|
-
#
|
6030
|
-
# *
|
6078
|
+
# When the key contains public components only
|
6079
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
6080
|
+
# and *password* are ignored.
|
6031
6081
|
#
|
6082
|
+
# A PEM-encoded key will look like:
|
6032
6083
|
#
|
6033
|
-
#
|
6034
|
-
#
|
6035
|
-
#
|
6084
|
+
# -----BEGIN PUBLIC KEY-----
|
6085
|
+
# [...]
|
6086
|
+
# -----END PUBLIC KEY-----
|
6087
|
+
#
|
6088
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
6089
|
+
# X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
|
6090
|
+
# private key.
|
6091
|
+
#
|
6092
|
+
# When the key contains private components, and no parameters are given
|
6093
|
+
# : Serializes it into a traditional OpenSSL DSAPrivateKey.
|
6094
|
+
#
|
6095
|
+
# A PEM-encoded key will look like:
|
6096
|
+
#
|
6097
|
+
# -----BEGIN DSA PRIVATE KEY-----
|
6098
|
+
# [...]
|
6099
|
+
# -----END DSA PRIVATE KEY-----
|
6100
|
+
#
|
6101
|
+
# When the key contains private components, and *cipher* and *password* are given
|
6102
|
+
# : Serializes it into a traditional OpenSSL DSAPrivateKey and encrypts it in
|
6103
|
+
# OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
|
6104
|
+
# name understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
6105
|
+
#
|
6106
|
+
# An encrypted PEM-encoded key will look like:
|
6107
|
+
#
|
6108
|
+
# -----BEGIN DSA PRIVATE KEY-----
|
6109
|
+
# Proc-Type: 4,ENCRYPTED
|
6110
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
6111
|
+
#
|
6112
|
+
# [...]
|
6113
|
+
# -----END DSA PRIVATE KEY-----
|
6114
|
+
#
|
6115
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
6116
|
+
# will not be available on FIPS-compliant systems.
|
6117
|
+
#
|
6118
|
+
#
|
6119
|
+
# **This method is kept for compatibility.** This should only be used when the
|
6120
|
+
# traditional, non-standard OpenSSL format is required.
|
6121
|
+
#
|
6122
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
6123
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
6036
6124
|
#
|
6037
6125
|
alias to_pem export
|
6038
6126
|
|
6039
6127
|
# <!-- rdoc-file=ext/openssl/ossl_pkey_dsa.c -->
|
6040
|
-
#
|
6128
|
+
# Serializes a private or public key to a PEM-encoding.
|
6041
6129
|
#
|
6042
|
-
#
|
6043
|
-
#
|
6044
|
-
# *
|
6130
|
+
# When the key contains public components only
|
6131
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
6132
|
+
# and *password* are ignored.
|
6045
6133
|
#
|
6134
|
+
# A PEM-encoded key will look like:
|
6046
6135
|
#
|
6047
|
-
#
|
6048
|
-
#
|
6049
|
-
#
|
6136
|
+
# -----BEGIN PUBLIC KEY-----
|
6137
|
+
# [...]
|
6138
|
+
# -----END PUBLIC KEY-----
|
6139
|
+
#
|
6140
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
6141
|
+
# X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
|
6142
|
+
# private key.
|
6143
|
+
#
|
6144
|
+
# When the key contains private components, and no parameters are given
|
6145
|
+
# : Serializes it into a traditional OpenSSL DSAPrivateKey.
|
6146
|
+
#
|
6147
|
+
# A PEM-encoded key will look like:
|
6148
|
+
#
|
6149
|
+
# -----BEGIN DSA PRIVATE KEY-----
|
6150
|
+
# [...]
|
6151
|
+
# -----END DSA PRIVATE KEY-----
|
6152
|
+
#
|
6153
|
+
# When the key contains private components, and *cipher* and *password* are given
|
6154
|
+
# : Serializes it into a traditional OpenSSL DSAPrivateKey and encrypts it in
|
6155
|
+
# OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
|
6156
|
+
# name understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
6157
|
+
#
|
6158
|
+
# An encrypted PEM-encoded key will look like:
|
6159
|
+
#
|
6160
|
+
# -----BEGIN DSA PRIVATE KEY-----
|
6161
|
+
# Proc-Type: 4,ENCRYPTED
|
6162
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
6163
|
+
#
|
6164
|
+
# [...]
|
6165
|
+
# -----END DSA PRIVATE KEY-----
|
6166
|
+
#
|
6167
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
6168
|
+
# will not be available on FIPS-compliant systems.
|
6169
|
+
#
|
6170
|
+
#
|
6171
|
+
# **This method is kept for compatibility.** This should only be used when the
|
6172
|
+
# traditional, non-standard OpenSSL format is required.
|
6173
|
+
#
|
6174
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
6175
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
6050
6176
|
#
|
6051
6177
|
alias to_s export
|
6052
6178
|
|
@@ -6197,13 +6323,57 @@ module OpenSSL
|
|
6197
6323
|
|
6198
6324
|
# <!--
|
6199
6325
|
# rdoc-file=ext/openssl/ossl_pkey_ec.c
|
6200
|
-
# - key.export([cipher,
|
6201
|
-
# - key.to_pem([cipher,
|
6326
|
+
# - key.export([cipher, password]) => String
|
6327
|
+
# - key.to_pem([cipher, password]) => String
|
6202
6328
|
# -->
|
6203
|
-
#
|
6204
|
-
#
|
6205
|
-
#
|
6206
|
-
#
|
6329
|
+
# Serializes a private or public key to a PEM-encoding.
|
6330
|
+
#
|
6331
|
+
# When the key contains public components only
|
6332
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
6333
|
+
# and *password* are ignored.
|
6334
|
+
#
|
6335
|
+
# A PEM-encoded key will look like:
|
6336
|
+
#
|
6337
|
+
# -----BEGIN PUBLIC KEY-----
|
6338
|
+
# [...]
|
6339
|
+
# -----END PUBLIC KEY-----
|
6340
|
+
#
|
6341
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
6342
|
+
# X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
|
6343
|
+
# private key.
|
6344
|
+
#
|
6345
|
+
# When the key contains private components, and no parameters are given
|
6346
|
+
# : Serializes it into a SEC 1/RFC 5915 ECPrivateKey.
|
6347
|
+
#
|
6348
|
+
# A PEM-encoded key will look like:
|
6349
|
+
#
|
6350
|
+
# -----BEGIN EC PRIVATE KEY-----
|
6351
|
+
# [...]
|
6352
|
+
# -----END EC PRIVATE KEY-----
|
6353
|
+
#
|
6354
|
+
# When the key contains private components, and *cipher* and *password* are given
|
6355
|
+
# : Serializes it into a SEC 1/RFC 5915 ECPrivateKey and encrypts it in
|
6356
|
+
# OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
|
6357
|
+
# name understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
6358
|
+
#
|
6359
|
+
# An encrypted PEM-encoded key will look like:
|
6360
|
+
#
|
6361
|
+
# -----BEGIN EC PRIVATE KEY-----
|
6362
|
+
# Proc-Type: 4,ENCRYPTED
|
6363
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
6364
|
+
#
|
6365
|
+
# [...]
|
6366
|
+
# -----END EC PRIVATE KEY-----
|
6367
|
+
#
|
6368
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
6369
|
+
# will not be available on FIPS-compliant systems.
|
6370
|
+
#
|
6371
|
+
#
|
6372
|
+
# **This method is kept for compatibility.** This should only be used when the
|
6373
|
+
# SEC 1/RFC 5915 ECPrivateKey format is required.
|
6374
|
+
#
|
6375
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
6376
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
6207
6377
|
#
|
6208
6378
|
def export: (String cipher, String password) -> String
|
6209
6379
|
| () -> String
|
@@ -6321,15 +6491,66 @@ module OpenSSL
|
|
6321
6491
|
# rdoc-file=ext/openssl/ossl_pkey_ec.c
|
6322
6492
|
# - key.to_der => String
|
6323
6493
|
# -->
|
6324
|
-
#
|
6494
|
+
# Serializes a private or public key to a DER-encoding.
|
6495
|
+
#
|
6496
|
+
# See #to_pem for details.
|
6497
|
+
#
|
6498
|
+
# **This method is kept for compatibility.** This should only be used when the
|
6499
|
+
# SEC 1/RFC 5915 ECPrivateKey format is required.
|
6500
|
+
#
|
6501
|
+
# Consider using #public_to_der or #private_to_der instead.
|
6325
6502
|
#
|
6326
6503
|
def to_der: () -> String
|
6327
6504
|
|
6328
6505
|
# <!-- rdoc-file=ext/openssl/ossl_pkey_ec.c -->
|
6329
|
-
#
|
6330
|
-
#
|
6331
|
-
#
|
6332
|
-
#
|
6506
|
+
# Serializes a private or public key to a PEM-encoding.
|
6507
|
+
#
|
6508
|
+
# When the key contains public components only
|
6509
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
6510
|
+
# and *password* are ignored.
|
6511
|
+
#
|
6512
|
+
# A PEM-encoded key will look like:
|
6513
|
+
#
|
6514
|
+
# -----BEGIN PUBLIC KEY-----
|
6515
|
+
# [...]
|
6516
|
+
# -----END PUBLIC KEY-----
|
6517
|
+
#
|
6518
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
6519
|
+
# X.509 SubjectPublicKeyInfo regardless of whether it is a public key or a
|
6520
|
+
# private key.
|
6521
|
+
#
|
6522
|
+
# When the key contains private components, and no parameters are given
|
6523
|
+
# : Serializes it into a SEC 1/RFC 5915 ECPrivateKey.
|
6524
|
+
#
|
6525
|
+
# A PEM-encoded key will look like:
|
6526
|
+
#
|
6527
|
+
# -----BEGIN EC PRIVATE KEY-----
|
6528
|
+
# [...]
|
6529
|
+
# -----END EC PRIVATE KEY-----
|
6530
|
+
#
|
6531
|
+
# When the key contains private components, and *cipher* and *password* are given
|
6532
|
+
# : Serializes it into a SEC 1/RFC 5915 ECPrivateKey and encrypts it in
|
6533
|
+
# OpenSSL's traditional PEM encryption format. *cipher* must be a cipher
|
6534
|
+
# name understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
6535
|
+
#
|
6536
|
+
# An encrypted PEM-encoded key will look like:
|
6537
|
+
#
|
6538
|
+
# -----BEGIN EC PRIVATE KEY-----
|
6539
|
+
# Proc-Type: 4,ENCRYPTED
|
6540
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
6541
|
+
#
|
6542
|
+
# [...]
|
6543
|
+
# -----END EC PRIVATE KEY-----
|
6544
|
+
#
|
6545
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
6546
|
+
# will not be available on FIPS-compliant systems.
|
6547
|
+
#
|
6548
|
+
#
|
6549
|
+
# **This method is kept for compatibility.** This should only be used when the
|
6550
|
+
# SEC 1/RFC 5915 ECPrivateKey format is required.
|
6551
|
+
#
|
6552
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
6553
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
6333
6554
|
#
|
6334
6555
|
alias to_pem export
|
6335
6556
|
|
@@ -6771,6 +6992,18 @@ module OpenSSL
|
|
6771
6992
|
# Serializes the private key to PEM-encoded PKCS #8 format. See #private_to_der
|
6772
6993
|
# for more details.
|
6773
6994
|
#
|
6995
|
+
# An unencrypted PEM-encoded key will look like:
|
6996
|
+
#
|
6997
|
+
# -----BEGIN PRIVATE KEY-----
|
6998
|
+
# [...]
|
6999
|
+
# -----END PRIVATE KEY-----
|
7000
|
+
#
|
7001
|
+
# An encrypted PEM-encoded key will look like:
|
7002
|
+
#
|
7003
|
+
# -----BEGIN ENCRYPTED PRIVATE KEY-----
|
7004
|
+
# [...]
|
7005
|
+
# -----END ENCRYPTED PRIVATE KEY-----
|
7006
|
+
#
|
6774
7007
|
def private_to_pem: (String cipher, String password) -> String
|
6775
7008
|
| () -> String
|
6776
7009
|
|
@@ -6788,6 +7021,12 @@ module OpenSSL
|
|
6788
7021
|
# -->
|
6789
7022
|
# Serializes the public key to PEM-encoded X.509 SubjectPublicKeyInfo format.
|
6790
7023
|
#
|
7024
|
+
# A PEM-encoded key will look like:
|
7025
|
+
#
|
7026
|
+
# -----BEGIN PUBLIC KEY-----
|
7027
|
+
# [...]
|
7028
|
+
# -----END PUBLIC KEY-----
|
7029
|
+
#
|
6791
7030
|
def public_to_pem: () -> String
|
6792
7031
|
|
6793
7032
|
# <!--
|
@@ -6909,13 +7148,58 @@ module OpenSSL
|
|
6909
7148
|
|
6910
7149
|
# <!--
|
6911
7150
|
# rdoc-file=ext/openssl/ossl_pkey_rsa.c
|
6912
|
-
# - rsa.export([cipher,
|
6913
|
-
# - rsa.to_pem([cipher,
|
6914
|
-
# - rsa.to_s([cipher,
|
7151
|
+
# - rsa.export([cipher, password]) => PEM-format String
|
7152
|
+
# - rsa.to_pem([cipher, password]) => PEM-format String
|
7153
|
+
# - rsa.to_s([cipher, password]) => PEM-format String
|
6915
7154
|
# -->
|
6916
|
-
#
|
6917
|
-
#
|
6918
|
-
#
|
7155
|
+
# Serializes a private or public key to a PEM-encoding.
|
7156
|
+
#
|
7157
|
+
# When the key contains public components only
|
7158
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
7159
|
+
# and *password* are ignored.
|
7160
|
+
#
|
7161
|
+
# A PEM-encoded key will look like:
|
7162
|
+
#
|
7163
|
+
# -----BEGIN PUBLIC KEY-----
|
7164
|
+
# [...]
|
7165
|
+
# -----END PUBLIC KEY-----
|
7166
|
+
#
|
7167
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
7168
|
+
# X.509 SubjectPublicKeyInfo regardless of whether the key is a public key
|
7169
|
+
# or a private key.
|
7170
|
+
#
|
7171
|
+
# When the key contains private components, and no parameters are given
|
7172
|
+
# : Serializes it into a PKCS #1 RSAPrivateKey.
|
7173
|
+
#
|
7174
|
+
# A PEM-encoded key will look like:
|
7175
|
+
#
|
7176
|
+
# -----BEGIN RSA PRIVATE KEY-----
|
7177
|
+
# [...]
|
7178
|
+
# -----END RSA PRIVATE KEY-----
|
7179
|
+
#
|
7180
|
+
# When the key contains private components, and *cipher* and *password* are given
|
7181
|
+
# : Serializes it into a PKCS #1 RSAPrivateKey and encrypts it in OpenSSL's
|
7182
|
+
# traditional PEM encryption format. *cipher* must be a cipher name
|
7183
|
+
# understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
7184
|
+
#
|
7185
|
+
# An encrypted PEM-encoded key will look like:
|
7186
|
+
#
|
7187
|
+
# -----BEGIN RSA PRIVATE KEY-----
|
7188
|
+
# Proc-Type: 4,ENCRYPTED
|
7189
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
7190
|
+
#
|
7191
|
+
# [...]
|
7192
|
+
# -----END RSA PRIVATE KEY-----
|
7193
|
+
#
|
7194
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
7195
|
+
# will not be available on FIPS-compliant systems.
|
7196
|
+
#
|
7197
|
+
#
|
7198
|
+
# **This method is kept for compatibility.** This should only be used when the
|
7199
|
+
# PKCS #1 RSAPrivateKey format is required.
|
7200
|
+
#
|
7201
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
7202
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
6919
7203
|
#
|
6920
7204
|
def export: (String cipher, String password) -> String
|
6921
7205
|
| () -> String
|
@@ -7093,21 +7377,118 @@ module OpenSSL
|
|
7093
7377
|
# rdoc-file=ext/openssl/ossl_pkey_rsa.c
|
7094
7378
|
# - rsa.to_der => DER-format String
|
7095
7379
|
# -->
|
7096
|
-
#
|
7380
|
+
# Serializes a private or public key to a DER-encoding.
|
7381
|
+
#
|
7382
|
+
# See #to_pem for details.
|
7383
|
+
#
|
7384
|
+
# **This method is kept for compatibility.** This should only be used when the
|
7385
|
+
# PKCS #1 RSAPrivateKey format is required.
|
7386
|
+
#
|
7387
|
+
# Consider using #public_to_der or #private_to_der instead.
|
7097
7388
|
#
|
7098
7389
|
def to_der: () -> String
|
7099
7390
|
|
7100
7391
|
# <!-- rdoc-file=ext/openssl/ossl_pkey_rsa.c -->
|
7101
|
-
#
|
7102
|
-
#
|
7103
|
-
#
|
7392
|
+
# Serializes a private or public key to a PEM-encoding.
|
7393
|
+
#
|
7394
|
+
# When the key contains public components only
|
7395
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
7396
|
+
# and *password* are ignored.
|
7397
|
+
#
|
7398
|
+
# A PEM-encoded key will look like:
|
7399
|
+
#
|
7400
|
+
# -----BEGIN PUBLIC KEY-----
|
7401
|
+
# [...]
|
7402
|
+
# -----END PUBLIC KEY-----
|
7403
|
+
#
|
7404
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
7405
|
+
# X.509 SubjectPublicKeyInfo regardless of whether the key is a public key
|
7406
|
+
# or a private key.
|
7407
|
+
#
|
7408
|
+
# When the key contains private components, and no parameters are given
|
7409
|
+
# : Serializes it into a PKCS #1 RSAPrivateKey.
|
7410
|
+
#
|
7411
|
+
# A PEM-encoded key will look like:
|
7412
|
+
#
|
7413
|
+
# -----BEGIN RSA PRIVATE KEY-----
|
7414
|
+
# [...]
|
7415
|
+
# -----END RSA PRIVATE KEY-----
|
7416
|
+
#
|
7417
|
+
# When the key contains private components, and *cipher* and *password* are given
|
7418
|
+
# : Serializes it into a PKCS #1 RSAPrivateKey and encrypts it in OpenSSL's
|
7419
|
+
# traditional PEM encryption format. *cipher* must be a cipher name
|
7420
|
+
# understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
7421
|
+
#
|
7422
|
+
# An encrypted PEM-encoded key will look like:
|
7423
|
+
#
|
7424
|
+
# -----BEGIN RSA PRIVATE KEY-----
|
7425
|
+
# Proc-Type: 4,ENCRYPTED
|
7426
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
7427
|
+
#
|
7428
|
+
# [...]
|
7429
|
+
# -----END RSA PRIVATE KEY-----
|
7430
|
+
#
|
7431
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
7432
|
+
# will not be available on FIPS-compliant systems.
|
7433
|
+
#
|
7434
|
+
#
|
7435
|
+
# **This method is kept for compatibility.** This should only be used when the
|
7436
|
+
# PKCS #1 RSAPrivateKey format is required.
|
7437
|
+
#
|
7438
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
7439
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
7104
7440
|
#
|
7105
7441
|
alias to_pem export
|
7106
7442
|
|
7107
7443
|
# <!-- rdoc-file=ext/openssl/ossl_pkey_rsa.c -->
|
7108
|
-
#
|
7109
|
-
#
|
7110
|
-
#
|
7444
|
+
# Serializes a private or public key to a PEM-encoding.
|
7445
|
+
#
|
7446
|
+
# When the key contains public components only
|
7447
|
+
# : Serializes it into an X.509 SubjectPublicKeyInfo. The parameters *cipher*
|
7448
|
+
# and *password* are ignored.
|
7449
|
+
#
|
7450
|
+
# A PEM-encoded key will look like:
|
7451
|
+
#
|
7452
|
+
# -----BEGIN PUBLIC KEY-----
|
7453
|
+
# [...]
|
7454
|
+
# -----END PUBLIC KEY-----
|
7455
|
+
#
|
7456
|
+
# Consider using #public_to_pem instead. This serializes the key into an
|
7457
|
+
# X.509 SubjectPublicKeyInfo regardless of whether the key is a public key
|
7458
|
+
# or a private key.
|
7459
|
+
#
|
7460
|
+
# When the key contains private components, and no parameters are given
|
7461
|
+
# : Serializes it into a PKCS #1 RSAPrivateKey.
|
7462
|
+
#
|
7463
|
+
# A PEM-encoded key will look like:
|
7464
|
+
#
|
7465
|
+
# -----BEGIN RSA PRIVATE KEY-----
|
7466
|
+
# [...]
|
7467
|
+
# -----END RSA PRIVATE KEY-----
|
7468
|
+
#
|
7469
|
+
# When the key contains private components, and *cipher* and *password* are given
|
7470
|
+
# : Serializes it into a PKCS #1 RSAPrivateKey and encrypts it in OpenSSL's
|
7471
|
+
# traditional PEM encryption format. *cipher* must be a cipher name
|
7472
|
+
# understood by OpenSSL::Cipher.new or an instance of OpenSSL::Cipher.
|
7473
|
+
#
|
7474
|
+
# An encrypted PEM-encoded key will look like:
|
7475
|
+
#
|
7476
|
+
# -----BEGIN RSA PRIVATE KEY-----
|
7477
|
+
# Proc-Type: 4,ENCRYPTED
|
7478
|
+
# DEK-Info: AES-128-CBC,733F5302505B34701FC41F5C0746E4C0
|
7479
|
+
#
|
7480
|
+
# [...]
|
7481
|
+
# -----END RSA PRIVATE KEY-----
|
7482
|
+
#
|
7483
|
+
# Note that this format uses MD5 to derive the encryption key, and hence
|
7484
|
+
# will not be available on FIPS-compliant systems.
|
7485
|
+
#
|
7486
|
+
#
|
7487
|
+
# **This method is kept for compatibility.** This should only be used when the
|
7488
|
+
# PKCS #1 RSAPrivateKey format is required.
|
7489
|
+
#
|
7490
|
+
# Consider using #public_to_pem (X.509 SubjectPublicKeyInfo) or #private_to_pem
|
7491
|
+
# (PKCS #8 PrivateKeyInfo or EncryptedPrivateKeyInfo) instead.
|
7111
7492
|
#
|
7112
7493
|
alias to_s export
|
7113
7494
|
|
@@ -7153,8 +7534,8 @@ module OpenSSL
|
|
7153
7534
|
# <!--
|
7154
7535
|
# rdoc-file=ext/openssl/ossl_pkey_rsa.c
|
7155
7536
|
# - RSA.new -> rsa
|
7156
|
-
# - RSA.new(encoded_key [,
|
7157
|
-
# - RSA.new(encoded_key) {
|
7537
|
+
# - RSA.new(encoded_key [, password ]) -> rsa
|
7538
|
+
# - RSA.new(encoded_key) { password } -> rsa
|
7158
7539
|
# - RSA.new(size [, exponent]) -> rsa
|
7159
7540
|
# -->
|
7160
7541
|
# Generates or loads an RSA keypair.
|
@@ -7164,9 +7545,9 @@ module OpenSSL
|
|
7164
7545
|
# #set_crt_params.
|
7165
7546
|
#
|
7166
7547
|
# If called with a String, tries to parse as DER or PEM encoding of an RSA key.
|
7167
|
-
# Note that
|
7168
|
-
#
|
7169
|
-
# parse keys of any
|
7548
|
+
# Note that if *password* is not specified, but the key is encrypted with a
|
7549
|
+
# password, OpenSSL will prompt for it. See also OpenSSL::PKey.read which can
|
7550
|
+
# parse keys of any kind.
|
7170
7551
|
#
|
7171
7552
|
# If called with a number, generates a new key pair. This form works as an alias
|
7172
7553
|
# of RSA.generate.
|
@@ -7174,7 +7555,7 @@ module OpenSSL
|
|
7174
7555
|
# Examples:
|
7175
7556
|
# OpenSSL::PKey::RSA.new 2048
|
7176
7557
|
# OpenSSL::PKey::RSA.new File.read 'rsa.pem'
|
7177
|
-
# OpenSSL::PKey::RSA.new File.read('rsa.pem'), 'my
|
7558
|
+
# OpenSSL::PKey::RSA.new File.read('rsa.pem'), 'my password'
|
7178
7559
|
#
|
7179
7560
|
def initialize: () -> void
|
7180
7561
|
| (Integer key_size) -> void
|