From 50c236a49f1efe322b053fef69fa7e7105ca65bf Mon Sep 17 00:00:00 2001 From: Kapil Chouhan Date: Mon, 9 Mar 2020 09:29:50 +0000 Subject: Fix windows_certificate functional tests under buildkite Signed-off-by: Kapil Chouhan --- lib/chef/resource/windows_certificate.rb | 1 - spec/data/windows_certificates/base64_test.cer | 38 +++---- spec/data/windows_certificates/othertest.cer | Bin 912 -> 1216 bytes spec/data/windows_certificates/test.cer | Bin 900 -> 1188 bytes spec/data/windows_certificates/test.p7b | Bin 2613 -> 2619 bytes spec/data/windows_certificates/test.pem | 37 +++--- spec/data/windows_certificates/test.pfx | Bin 2701 -> 2637 bytes .../resource/windows_certificate_spec.rb | 124 ++++++++++----------- 8 files changed, 98 insertions(+), 102 deletions(-) diff --git a/lib/chef/resource/windows_certificate.rb b/lib/chef/resource/windows_certificate.rb index 64ac6bb3b0..64e566f6af 100644 --- a/lib/chef/resource/windows_certificate.rb +++ b/lib/chef/resource/windows_certificate.rb @@ -309,7 +309,6 @@ class Chef def import_certificates(cert_objs, is_pfx) [cert_objs].flatten.each do |cert_obj| thumbprint = OpenSSL::Digest::SHA1.new(cert_obj.to_der).to_s # Fetch its thumbprint - # Need to check if return value is Boolean:true # If not then the given certificate should be added in certstore if verify_cert(thumbprint) == true diff --git a/spec/data/windows_certificates/base64_test.cer b/spec/data/windows_certificates/base64_test.cer index 0d90bf81e3..763216f86a 100644 --- a/spec/data/windows_certificates/base64_test.cer +++ b/spec/data/windows_certificates/base64_test.cer @@ -1,22 +1,20 @@ -----BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQNH6iXZnEKbFOEQ7D9f9iCTANBgkqhkiG9w0BAQsFADBK -MSMwIQYDVQQDDBpBIEJhc2U2NCBEdW1teSBDZXJ0aWZpY2F0ZTEjMCEGCSqGSIb3 -DQEJARYUdGVzdGJ5cnNwZWNAY2hlZi5jb20wHhcNMTkwMjEyMDk1ODM2WhcNMjAw -MjEyMTAxODM2WjBKMSMwIQYDVQQDDBpBIEJhc2U2NCBEdW1teSBDZXJ0aWZpY2F0 -ZTEjMCEGCSqGSIb3DQEJARYUdGVzdGJ5cnNwZWNAY2hlZi5jb20wggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSy2Qlf2k1X3y/YgEjnvD0K8NeKgXKKi62 -RHRMTJ2+6KSg+I1MqHZC+BVrfzehuJVby5kM7tGLF8FvM3q7X/5oSPg8pvLZzIV0 -pBrpVPCTYw8fnlmFKBt/+m2XOqsWyL59yP+p66SHAKmoLYTGu8dkGvgJn3dwKNen -VFmwadteVfKs2wFW/ZwUxH4aLloCa8KSyqstIXrYQmdqqFOSuEgkynalD19dozSv -QtkQ9FZPuFGDwNpdO7OrcjE1lTUlzuth7CqV/pj4GYJhK/PPtO8Ing/BtwZm5XB8 -2yvvLVnL7Y/hikg2ENKA9fOYk52zR/kkd7d8qoJva7WlYEXTZvpdAgMBAAGjcDBu -MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw -HgYDVR0RBBcwFYITd3d3LnRlc3RieXJzcGVjLmNvbTAdBgNVHQ4EFgQUuL1l247K -h+cVH9LehmQgXuV8F6MwDQYJKoZIhvcNAQELBQADggEBAMTJW5tSZ/g2AP45EUwj -PLDnDLY4YnsJDQ7Jo58EAY6givUc+ZnKRWxYAYNBOKcqDM5E4pXi3Fa1lKYR1vMu -5AThPaDXhv18ljGAs21MYt9hl7PqdzbfX4ejF+jCD4UrE8bGtxuDc1WQ2HbeJtdj -0j7BPPNXfcvPAIyX3BEOQFUPgvVAqzWMQLpdUKg+sNUJZijqKQv11xVALGHtxqGB -1MFrdl6D/idODfhcdo2n1tBMyOGhHwEOBLqB1PTH72g5J4BVx4iwH/gh8PRmMy0P -eJkNspgOBGPOhNpe7bhmK45MBuJpmjyl/CYCqtQvaEdpbuRQIgc2e+YRMfR71qYp -Em8= +MIIDQTCCAimgAwIBAgIQPAc5ZRAOLL1PCvdo8CoWDTANBgkqhkiG9w0BAQsFADAh +MR8wHQYDVQQDDBZ3d3cuZHVtbXljaGVmdGVzdHMuY29tMCAXDTIwMDMwNjEyMDUz +MVoYDzI4OTkxMjMxMTgzMDAwWjAhMR8wHQYDVQQDDBZ3d3cuZHVtbXljaGVmdGVz +dHMuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6uZ0V5zobMQm +JPtZxt4vYtL/As7U6sUBVe9oR9OCYvyIDmpuPcNnrJ26L+iu2W5Kd+840Dv6tHS4 +yOV07bYBU+nVHiCdEn/K7Q5ITv/8uXv39dvlSuSrIn4P+I2vhSQjIy/B94QPD/xE +dD0WDym1ySY2zQsL4T+yKoaXc5tiBoWBwAdl6/RiXeOm2kBXhIDcW4MLlB0BXtDJ +l7syB30mOvNsQT6UlymI1q7fpsaPBTo8V3lUWooVVmQciiYquoD34gq7XpdGQOLJ +V7aSIch1BoQyeQJfWsKzv/R5yzAzw+2zeRf301USunBXwhoac/Sx4xrJxjRknGTs +7tsCNQUmRQIDAQABo3MwcTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYB +BQUHAwIGCCsGAQUFBwMBMCEGA1UdEQQaMBiCFnd3dy5kdW1teWNoZWZ0ZXN0cy5j +b20wHQYDVR0OBBYEFGQa7l1ZPNbhj0s64g1/nyY+xULdMA0GCSqGSIb3DQEBCwUA +A4IBAQCS3chRs1LUvlq7Hj1kx3CtAhjTE75eEWz8wzWZ+DGppGnMUQg0vwrw7JPd +s3ODAFor62J97Fmb1sQ9/lSGan0CwBtCMqzHr3hoKbpVR9aFKu/Kt21zE4pEvFgZ +NVrxOFofmZ072VRdRpRK3RcnV58I02Xyb+5VR8lTbHpIsUOj+i9+y5ZuuOXoRDpI +G+AdIAfvcBbshPkI62gSFvBUdic0fcMVPZ5rFWaDjW2XFXZ6s/e5mPHNjpGpSZy7 +2y9ku9kB6ywBQXx9U21DBoIDxfprSylQGxtUuXaeCwnRvpT0Ifto5/KaeH4IzJQq +ZYGdPzBO7WBpk/AsO6buw3kQ9M5h -----END CERTIFICATE----- diff --git a/spec/data/windows_certificates/othertest.cer b/spec/data/windows_certificates/othertest.cer index 353f792252..f4ff69eb08 100644 Binary files a/spec/data/windows_certificates/othertest.cer and b/spec/data/windows_certificates/othertest.cer differ diff --git a/spec/data/windows_certificates/test.cer b/spec/data/windows_certificates/test.cer index 0f32d742c1..1c358b5035 100644 Binary files a/spec/data/windows_certificates/test.cer and b/spec/data/windows_certificates/test.cer differ diff --git a/spec/data/windows_certificates/test.p7b b/spec/data/windows_certificates/test.p7b index cf8cfae58c..bd46d5eccd 100644 Binary files a/spec/data/windows_certificates/test.p7b and b/spec/data/windows_certificates/test.p7b differ diff --git a/spec/data/windows_certificates/test.pem b/spec/data/windows_certificates/test.pem index cfbec5d188..1c358b5035 100644 --- a/spec/data/windows_certificates/test.pem +++ b/spec/data/windows_certificates/test.pem @@ -1,21 +1,20 @@ -----BEGIN CERTIFICATE----- -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 +tNdbdS3U8nrG73iA2clmF57ARQWC -----END CERTIFICATE----- diff --git a/spec/data/windows_certificates/test.pfx b/spec/data/windows_certificates/test.pfx index c774e12efd..2c208bf7c6 100644 Binary files a/spec/data/windows_certificates/test.pfx and b/spec/data/windows_certificates/test.pfx differ diff --git a/spec/functional/resource/windows_certificate_spec.rb b/spec/functional/resource/windows_certificate_spec.rb index 5b4da9e579..99b7840f9c 100644 --- a/spec/functional/resource/windows_certificate_spec.rb +++ b/spec/functional/resource/windows_certificate_spec.rb @@ -65,11 +65,11 @@ describe Chef::Resource::WindowsCertificate, :windows_only do let(:p7b_path) { File.join(certificate_path, "test.p7b") } let(:pfx_path) { File.join(certificate_path, "test.pfx") } let(:out_path) { File.join(certificate_path, "testout.pem") } - let(:tests_thumbprint) { "3180B3E3217862600BD7B2D28067B03D41576A4F" } + let(:tests_thumbprint) { "e45a4a7ff731e143cf20b8bfb9c7c4edd5238bb3" } let(:other_cer_path) { File.join(certificate_path, "othertest.cer") } - let(:others_thumbprint) { "AD393859B2D2D4161D224F16CBD3D16555753A20" } - let(:p7b_thumbprint) { "50954A52DDFA2043F36EA9026FDD95EC252048D0" } - let(:p7b_nested_thumbprint) { "4A3333FC4E1274995AF5A95810881C86F2DF7FBD" } + let(:others_thumbprint) { "6eae1deefaf59daf1a97c9ceeff39c98b3da38cb" } + let(:p7b_thumbprint) { "f867e25b928061318ed2c36ca517681774b06260" } + let(:p7b_nested_thumbprint) { "dc395eae6be5b69951b8b6e1090cfc33df30d2cd" } before do opts = { store_name: store } @@ -127,10 +127,10 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Does not imports certificate into store" do expect(no_of_certificates).to eq(1) end - # it "Idempotent: Does not converge while addition" do - # expect(no_of_certificates).to eq(1) - # expect(win_certificate).not_to be_updated_by_last_action - # end + it "Idempotent: Does not converge while addition" do + expect(no_of_certificates).to eq(1) + expect(win_certificate).not_to be_updated_by_last_action + end end context "Again adding the same certificate of other format" do @@ -141,10 +141,10 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Does not imports certificate into store" do expect(no_of_certificates).to eq(1) end - # it "Idempotent: Does not converge while addition" do - # expect(no_of_certificates).to eq(1) - # expect(win_certificate).not_to be_updated_by_last_action - # end + it "Idempotent: Does not converge while addition" do + expect(no_of_certificates).to eq(1) + expect(win_certificate).not_to be_updated_by_last_action + end end context "Adding another certificate" do @@ -171,11 +171,11 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Imports certificate into store" do expect(no_of_certificates).to eq(1) end - # it "Idempotent: Does not converge while adding again" do - # win_certificate.run_action(:create) - # expect(no_of_certificates).to eq(1) - # expect(win_certificate).not_to be_updated_by_last_action - # end + it "Idempotent: Does not converge while adding again" do + win_certificate.run_action(:create) + expect(no_of_certificates).to eq(1) + expect(win_certificate).not_to be_updated_by_last_action + end end context "Adds Base64 Encoded CER" do @@ -186,11 +186,11 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Imports certificate into store" do expect(no_of_certificates).to eq(1) end - # it "Idempotent: Does not converge while adding again" do - # win_certificate.run_action(:create) - # expect(no_of_certificates).to eq(1) - # expect(win_certificate).not_to be_updated_by_last_action - # end + it "Idempotent: Does not converge while adding again" do + win_certificate.run_action(:create) + expect(no_of_certificates).to eq(1) + expect(win_certificate).not_to be_updated_by_last_action + end end context "Adds PEM" do @@ -201,11 +201,11 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Imports certificate into store" do expect(no_of_certificates).to eq(1) end - # it "Idempotent: Does not converge while adding again" do - # win_certificate.run_action(:create) - # expect(no_of_certificates).to eq(1) - # expect(win_certificate).not_to be_updated_by_last_action - # end + it "Idempotent: Does not converge while adding again" do + win_certificate.run_action(:create) + expect(no_of_certificates).to eq(1) + expect(win_certificate).not_to be_updated_by_last_action + end end context "Adds P7B" do @@ -216,12 +216,12 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Imports certificate into store" do expect(no_of_certificates).not_to eq(0) end - # it "Idempotent: Does not converge while adding again" do - # win_certificate.run_action(:create) - # expect(win_certificate).not_to be_updated_by_last_action - # end + it "Idempotent: Does not converge while adding again" do + win_certificate.run_action(:create) + expect(win_certificate).not_to be_updated_by_last_action + end it "Nested certificates are also imported" do - expect(no_of_certificates).to eq(2) + expect(no_of_certificates).to eq(3) end end @@ -235,11 +235,11 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Imports certificate into store" do expect(no_of_certificates).to eq(1) end - # it "Idempotent: Does not converge while adding again" do - # win_certificate.run_action(:create) - # expect(no_of_certificates).to eq(1) - # expect(win_certificate).not_to be_updated_by_last_action - # end + it "Idempotent: Does not converge while adding again" do + win_certificate.run_action(:create) + expect(no_of_certificates).to eq(1) + expect(win_certificate).not_to be_updated_by_last_action + end end context "With Invalid password" do @@ -285,9 +285,9 @@ describe Chef::Resource::WindowsCertificate, :windows_only do it "Initial check if certificate is present" do expect(no_of_certificates).to eq(1) end - # it "Displays correct message" do - # expect(stdout.string.strip).to eq("Certificate is valid") - # end + it "Displays correct message" do + expect(stdout.string.strip).to eq("Certificate is valid") + end it "Does not converge while verifying" do expect(win_certificate).not_to be_updated_by_last_action end @@ -322,11 +322,11 @@ describe Chef::Resource::WindowsCertificate, :windows_only do win_certificate.run_action(:verify) end it "Initial check if certificate is present" do - expect(no_of_certificates).to eq(2) + expect(no_of_certificates).to eq(3) + end + it "Displays correct message" do + expect(stdout.string.strip).to eq("Certificate is valid") end - # it "Displays correct message" do - # expect(stdout.string.strip).to eq("Certificate is valid") - # end it "Does not converge while verifying" do expect(win_certificate).not_to be_updated_by_last_action end @@ -338,7 +338,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do win_certificate.run_action(:verify) end it "Initial check if certificate is present" do - expect(no_of_certificates).to eq(2) + expect(no_of_certificates).to eq(3) end it "Displays correct message" do expect(stdout.string.strip).to eq("Certificate is valid") @@ -354,7 +354,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do win_certificate.run_action(:verify) end it "Initial check if certificate is present" do - expect(no_of_certificates).to eq(2) + expect(no_of_certificates).to eq(3) end it "Displays correct message" do expect(stdout.string.strip).to eq("Certificate not found") @@ -471,22 +471,22 @@ describe Chef::Resource::WindowsCertificate, :windows_only do expect(no_of_certificates).to eq(0) expect(win_certificate).not_to be_updated_by_last_action end - # it "Deletes the valid certificate" do - # # Add another certificate" - # win_certificate.source = other_cer_path - # win_certificate.run_action(:create) - # expect(no_of_certificates).to eq(2) - - # # Delete previously added certificate - # win_certificate.source = tests_thumbprint - # win_certificate.run_action(:delete) - # expect(no_of_certificates).to eq(1) - - # # Verify another certificate still exists - # win_certificate.source = others_thumbprint - # win_certificate.run_action(:verify) - # expect(stdout.string.strip).to eq("Certificate is valid") - # end + it "Deletes the valid certificate" do + # Add another certificate" + win_certificate.source = other_cer_path + win_certificate.run_action(:create) + expect(no_of_certificates).to eq(2) + + # Delete previously added certificate + win_certificate.source = tests_thumbprint + win_certificate.run_action(:delete) + expect(no_of_certificates).to eq(1) + + # Verify another certificate still exists + win_certificate.source = others_thumbprint + win_certificate.run_action(:verify) + expect(stdout.string.strip).to eq("Certificate is valid") + end end end end -- cgit v1.2.1