Fix DSA key generation to use a 160 Q bit value in Ruby 3.1 / OpenSSL 3.0.
This commit is contained in:
Родитель
51dfdffca8
Коммит
6e1bb8edfb
|
@ -7,7 +7,19 @@
|
|||
#
|
||||
# Returns a PublicKey::Base subclass instance.
|
||||
def self.generate
|
||||
from_openssl(OpenSSL::PKey::DSA.generate(1024))
|
||||
openssl_key =
|
||||
if defined?(OpenSSL::PKey.generate_parameters)
|
||||
dsa_parameters = OpenSSL::PKey.generate_parameters("DSA", {
|
||||
dsa_paramgen_bits: 1024,
|
||||
dsa_paramgen_q_bits: 160
|
||||
})
|
||||
|
||||
OpenSSL::PKey.generate_key(dsa_parameters)
|
||||
else
|
||||
OpenSSL::PKey::DSA.generate(1024)
|
||||
end
|
||||
|
||||
from_openssl(openssl_key)
|
||||
end
|
||||
|
||||
# Import an openssl private key.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require_relative "../spec_helper"
|
||||
|
||||
describe SSHData::PrivateKey::DSA do
|
||||
let(:private_key) { OpenSSL::PKey::DSA.generate(1024) }
|
||||
let(:private_key) { SSHData::PrivateKey::DSA.generate.openssl }
|
||||
let(:public_key) { private_key.public_key }
|
||||
let(:params) { private_key.params }
|
||||
let(:message) { "hello, world!" }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require_relative "../spec_helper"
|
||||
|
||||
describe SSHData::PublicKey::DSA do
|
||||
let(:private_key) { OpenSSL::PKey::DSA.generate(1024) }
|
||||
let(:private_key) { SSHData::PrivateKey::DSA.generate.openssl }
|
||||
let(:public_key) { private_key.public_key }
|
||||
let(:params) { public_key.params }
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче