From 4846facb5f35ff04bd48eadbef0b366e4ffb6234 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Tue, 26 Apr 2016 23:42:20 +0900 Subject: ext/openssl: EVP_PKEY, DH, DSA, RSA, EC_KEY are made opaque Use EVP_PKEY_get0_* instead of pkey->pkey.* Use EVP_PKEY_base_id(pkey) instead of EVP_PKEY_type(pkey->type) Because of this, we can no longer set the parameters/keys directly, and the newly added functions as alternative require setting all relevant values at the same time. So this patch contains incompatibility: the following code no longer works (if using 1.1.0): dh = OpenSSL::PKey::DH.new(...) dh.priv_key = OpenSSL::BN.new(...) ...and we have to write like: dh = OpenSSL::PKey::DH.new(...) priv = OpenSSL::BN.new(...) pub = dh.set_key(pub, priv) --- test/drb/ut_array_drbssl.rb | 3 ++- test/drb/ut_drb_drbssl.rb | 3 ++- test/openssl/utils.rb | 3 ++- test/rubygems/test_gem_remote_fetcher.rb | 33 +++++++++++++++++++++----------- 4 files changed, 28 insertions(+), 14 deletions(-) (limited to 'test') diff --git a/test/drb/ut_array_drbssl.rb b/test/drb/ut_array_drbssl.rb index 08849ca176..ab9b947635 100644 --- a/test/drb/ut_array_drbssl.rb +++ b/test/drb/ut_array_drbssl.rb @@ -20,7 +20,8 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC -----END DH PARAMETERS----- _end_of_pem_ - TEST_KEY_DH1024.priv_key = OpenSSL::BN.new("48561834C67E65FFD2A9B47F41E5E78FDC95C387428FDB1E4B0188B64D1643C3A8D3455B945B7E8C4D166010C7C2CE23BFB9BEF43D0348FE7FA5284B0225E7FE1537546D114E3D8A4411B9B9351AB451E1A358F50ED61B1F00DA29336EEBBD649980AC86D76AF8BBB065298C2052672EEF3EF13AB47A15275FC2836F3AC74CEA", 16) + TEST_KEY_DH1024.set_key(OpenSSL::BN.new("556AF1598AE69899867CEBA9F29CE4862B884C2B43C9019EA0231908F6EFA785E3C462A6ECB16DF676866E997FFB72B487DC7967C58C3CA38CE974473BF19B2AA5DCBF102735572EBA6F353F6F0BBE7FF1DE1B07FE1381A355C275C33405004317F9491B5955F191F6615A63B30E55A027FB88A1A4B25608E09EEE68A7DF32D", 16), + OpenSSL::BN.new("48561834C67E65FFD2A9B47F41E5E78FDC95C387428FDB1E4B0188B64D1643C3A8D3455B945B7E8C4D166010C7C2CE23BFB9BEF43D0348FE7FA5284B0225E7FE1537546D114E3D8A4411B9B9351AB451E1A358F50ED61B1F00DA29336EEBBD649980AC86D76AF8BBB065298C2052672EEF3EF13AB47A15275FC2836F3AC74CEA", 16)) end diff --git a/test/drb/ut_drb_drbssl.rb b/test/drb/ut_drb_drbssl.rb index ddaa859e7d..df326ff66e 100644 --- a/test/drb/ut_drb_drbssl.rb +++ b/test/drb/ut_drb_drbssl.rb @@ -19,7 +19,8 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC -----END DH PARAMETERS----- _end_of_pem_ - TEST_KEY_DH1024.priv_key = OpenSSL::BN.new("48561834C67E65FFD2A9B47F41E5E78FDC95C387428FDB1E4B0188B64D1643C3A8D3455B945B7E8C4D166010C7C2CE23BFB9BEF43D0348FE7FA5284B0225E7FE1537546D114E3D8A4411B9B9351AB451E1A358F50ED61B1F00DA29336EEBBD649980AC86D76AF8BBB065298C2052672EEF3EF13AB47A15275FC2836F3AC74CEA", 16) + TEST_KEY_DH1024.set_key(OpenSSL::BN.new("556AF1598AE69899867CEBA9F29CE4862B884C2B43C9019EA0231908F6EFA785E3C462A6ECB16DF676866E997FFB72B487DC7967C58C3CA38CE974473BF19B2AA5DCBF102735572EBA6F353F6F0BBE7FF1DE1B07FE1381A355C275C33405004317F9491B5955F191F6615A63B30E55A027FB88A1A4B25608E09EEE68A7DF32D", 16), + OpenSSL::BN.new("48561834C67E65FFD2A9B47F41E5E78FDC95C387428FDB1E4B0188B64D1643C3A8D3455B945B7E8C4D166010C7C2CE23BFB9BEF43D0348FE7FA5284B0225E7FE1537546D114E3D8A4411B9B9351AB451E1A358F50ED61B1F00DA29336EEBBD649980AC86D76AF8BBB065298C2052672EEF3EF13AB47A15275FC2836F3AC74CEA", 16)) end diff --git a/test/openssl/utils.rb b/test/openssl/utils.rb index 6909854cad..02bafb6f21 100644 --- a/test/openssl/utils.rb +++ b/test/openssl/utils.rb @@ -105,7 +105,8 @@ AQjjxMXhwULlmuR/K+WwlaZPiLIBYalLAZQ7ZbOPeVkJ8ePao0eLAgEC -----END DH PARAMETERS----- _end_of_pem_ - TEST_KEY_DH1024.priv_key = OpenSSL::BN.new("48561834C67E65FFD2A9B47F41E5E78FDC95C387428FDB1E4B0188B64D1643C3A8D3455B945B7E8C4D166010C7C2CE23BFB9BEF43D0348FE7FA5284B0225E7FE1537546D114E3D8A4411B9B9351AB451E1A358F50ED61B1F00DA29336EEBBD649980AC86D76AF8BBB065298C2052672EEF3EF13AB47A15275FC2836F3AC74CEA", 16) + TEST_KEY_DH1024.set_key(OpenSSL::BN.new("556AF1598AE69899867CEBA9F29CE4862B884C2B43C9019EA0231908F6EFA785E3C462A6ECB16DF676866E997FFB72B487DC7967C58C3CA38CE974473BF19B2AA5DCBF102735572EBA6F353F6F0BBE7FF1DE1B07FE1381A355C275C33405004317F9491B5955F191F6615A63B30E55A027FB88A1A4B25608E09EEE68A7DF32D", 16), + OpenSSL::BN.new("48561834C67E65FFD2A9B47F41E5E78FDC95C387428FDB1E4B0188B64D1643C3A8D3455B945B7E8C4D166010C7C2CE23BFB9BEF43D0348FE7FA5284B0225E7FE1537546D114E3D8A4411B9B9351AB451E1A358F50ED61B1F00DA29336EEBBD649980AC86D76AF8BBB065298C2052672EEF3EF13AB47A15275FC2836F3AC74CEA", 16)) DSA_SIGNATURE_DIGEST = OpenSSL::OPENSSL_VERSION_NUMBER > 0x10000000 ? OpenSSL::Digest::SHA1 : diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb index 49b6b6656c..9a038c9dee 100644 --- a/test/rubygems/test_gem_remote_fetcher.rb +++ b/test/rubygems/test_gem_remote_fetcher.rb @@ -81,7 +81,7 @@ gems: # Generated via: # x = OpenSSL::PKey::DH.new(2048) # wait a while... # x.to_s => pem - # x.priv_key.to_s => hex for OpenSSL::BN.new + # x.priv_key.to_s => decimal for OpenSSL::BN.new TEST_KEY_DH2048 = OpenSSL::PKey::DH.new <<-_end_of_pem_ -----BEGIN DH PARAMETERS----- MIIBCAKCAQEA3Ze2EHSfYkZLUn557torAmjBgPsqzbodaRaGZtgK1gEU+9nNJaFV @@ -93,16 +93,27 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== -----END DH PARAMETERS----- _end_of_pem_ - TEST_KEY_DH2048.priv_key = OpenSSL::BN.new("108911488509734781344423639" \ - "5585749502236089033416160524030987005037540379474123441273555416835" \ - "4725688238369352738266590757370603937618499698665047757588998555345" \ - "3446251978586372525530219375408331096098220027413238477359960428372" \ - "0195464393332338164504352015535549496585792320286513563739305843396" \ - "9294344974028713065472959376197728193162272314514335882399554394661" \ - "5306385003430991221886779612878793446851681835397455333989268503748" \ - "7862488679178398716189205737442996155432191656080664090596502674943" \ - "7902481557157485795980326766117882761941455140582265347052939604724" \ - "964857770053363840471912215799994973597613931991572884", 16) + TEST_KEY_DH2048.set_key( + OpenSSL::BN.new("10725438530785912156218967697008486801800244817009" \ + "1560208603512885352948501237094708563096797190598021598409520414" \ + "9734679558435654191042970781199870011330210579002380736073809014" \ + "9003016222954352601621379700744012563282153596945640946475452284" \ + "5568928065134812770589561436732785097011997990440853684692745849" \ + "5583055233008348615239821368608596014481686097025313576691697895" \ + "7670520880307788062241291816848808660778193886241424406910257704" \ + "1278266290939665417244744475608290477073133083865528901891161122" \ + "7747762224198087674326339318681433826268250155004079667295543246" \ + "700724220484073250324190133688110281228977257161791447", 10), + OpenSSL::BN.new("10891148850973478134442363955857495022360890334161" \ + "6052403098700503754037947412344127355541683547256882383693527382" \ + "6659075737060393761849969866504775758899855534534462519785863725" \ + "2553021937540833109609822002741323847735996042837201954643933323" \ + "3816450435201553554949658579232028651356373930584339692943449740" \ + "2871306547295937619772819316227231451433588239955439466153063850" \ + "0343099122188677961287879344685168183539745533398926850374878624" \ + "8867917839871618920573744299615543219165608066409059650267494379" \ + "0248155715748579598032676611788276194145514058226534705293960472" \ + "4964857770053363840471912215799994973597613931991572884", 10)) def setup @proxies = %w[https_proxy http_proxy HTTP_PROXY http_proxy_user HTTP_PROXY_USER http_proxy_pass HTTP_PROXY_PASS no_proxy NO_PROXY] -- cgit v1.2.3