From 200d3cd0b00be64dc57374bbf04717e9cfbc209f Mon Sep 17 00:00:00 2001 From: Dos Moonen Date: Fri, 2 May 2025 15:27:09 +0200 Subject: [PATCH] Strip the CRL server from the certificates again --- .ci/certs/ca.p12 | Bin 0 -> 2927 bytes .ci/certs/client_localhost.p12 | Bin 3667 -> 3838 bytes .ci/certs/client_localhost_certificate.pem | 40 +++++++++--------- .ci/certs/server_localhost.p12 | Bin 3667 -> 3838 bytes .ci/certs/server_localhost_certificate.pem | 40 +++++++++--------- .ci/ubuntu/gha-setup.sh | 6 +-- Makefile | 4 +- .../qpid/proton/_message.py | 5 +-- .../qpid/proton/_transport.py | 2 +- .../ssl_configuration.py | 4 +- tests/conftest.py | 2 +- tests/test_connection.py | 38 +++++++++++++---- 12 files changed, 79 insertions(+), 62 deletions(-) create mode 100644 .ci/certs/ca.p12 diff --git a/.ci/certs/ca.p12 b/.ci/certs/ca.p12 new file mode 100644 index 0000000000000000000000000000000000000000..b0ce3a409afd548d6471d09caea9cf2e4774d5e2 GIT binary patch literal 2927 zcma)8c{J2}AD$UAW0@g@hAd-}z8eL$*OEx`Z*dWZz1*aI>!?Tj(ZI zvKK;@XrUTwSA+1*yPWQM|9ao^IiK@1Oa;D@uz#OcTV-~_XR zizx^=l!AZ&6pllH0*C!q3$_ELz_tJiY>k;;;E4ZhAvwU1VhT)`DQW^9zcyf;01;6A zn<9ZTP(F$0eXJ)h&v)79%4yDmI5KMzj?^F!X>JG@4Itrc|Go%ehk*bQIJ--nKA6M; z1uSHso(~@WI>Ekg0|^lxCZa{Kj{mBMoueoH=)asGUVrrwc1ic1SPgskh-SX$vG5 zy5WX^T~fC^;oR%o%sPpJKDe+EML2creBnYH$3#8vY2H7qF}5lC``hMg{_xGU;TNuT zM{YhdPy5*v0@DbWLRuhmPrm7JXcc}cTN-?G&!JL+zc4?qfZ$n$E9bPFRo9Sw!&4Wi zmNAm9_1;nG^^iA@)z1RhbnG%+owRHKf#T2mLHyKjP*_|CFPF^>Kd;uON{5ISs3)yd zm4{@?LnAsxjW1mvKG z^KAZ?Zkt_OSiF3Usk>Qo0ZFb0d`o8SJ^!Ybpi29mS#5MEiB**2c4@tp|9R8XWVcJl zujw-u<_KI_{K-P2lZafo#}iE#i@B;+Mg(vS18Vw+$f~EQlQbvFQ`)*{xa(!mt=eb3 z{ag{N+3Oae4kvd%^3|rE)l~_OzMdC4hR?T~XwJcJbC-3md@UV_ulOpDt2;M?zH7oL zxkG!x@zBJtuB^en!$@GPa%7%|v+%msvh(R9SN(p=-K%I6bxODJMCXk;SnVfjejphFPw)2v;F6Ga~)(uv6quqHdj_|MS=-kq8HW3W|HHhwV^DDnLUvHdFxt@U|k;5%;D&N_{zef)Niwc4T zeLj5gO@_2{LovkdG`Z`bUfp6M$z}{?=pTzY>2;`)*sECg`3g#=>#WLb7dabVyi$$t zj?#??+=pR`!g>u=>RG-prd~|?m^!Po{Mob;HUO1&iQaBtBRoL|ln~%xSGkayVKIFS z_{}o^BjkgE9E<&lnDKSB)PrVi3;Tm;`4USdT0aFJ45u=H{Qi6`B!s zVPx&>g~pMa{_%8SCMQw0Ci|&J5+J#E5a@T=8FGj9!k07kv@MG->**LKl1KXbsJo~}s8eV`dZLiOi z%G;Ai{B!dosc!LB>OLvW!5-mPl2hZgOr$|&a6~Ha?Dg^PAG%0AOH~m`$>KUJ}9r1mmdkO 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 Y(dJIF1Q`W_LtA%SUOUH;|F>%Y1K`!Z`~Uy| diff --git a/.ci/certs/client_localhost_certificate.pem b/.ci/certs/client_localhost_certificate.pem index b049ba1..2d49a87 100644 --- a/.ci/certs/client_localhost_certificate.pem +++ b/.ci/certs/client_localhost_certificate.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBLMTowOAYDVQQDDDFUTFNH -ZW5TZWxmU2lnbmVkUm9vdENBIDIwMjUtMDItMjdUMTU6NDQ6NTguODgwNTMwMQ0w -CwYDVQQHDAQkJCQkMB4XDTI1MDIyNzE0NDQ1OVoXDTM1MDIyNTE0NDQ1OVowJTES -MBAGA1UEAwwJbG9jYWxob3N0MQ8wDQYDVQQKDAZjbGllbnQwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC7L/xjD4iHTCf2IfXd/fayxkX0+dI+Z2y+latM -UFvn4GpDIz0Acfqjp3/NhShbWoHqOhR/w5l20J9Ljt2RmecpybK717Flst8Q0g0C -xm3GaN7fVLAxoWAIbzU7cAZMv0SRuu2RIo2HTt5i2xBljA5Bf6wMZqMFxvnNWNGt -TIWVUzCjeqWqPUi84XdHu0GWyQ11rIjCnw5zY3D8EFc+HoTgI33y81EABps7ybmH -BdUtMsAFEXgk3lJplaLeIvlM/HzBk+ffkqpcwC6kTnoR7Nww8a2aE6wHq91Hj+R7 -mmAo8Hpx0grott/pmwWOd2Ld1w3gxC3I7D6yqjfT4Rjc6FyxAgMBAAGjgdAwgc0w -CQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwKwYD -VR0RBCQwIoIJbG9jYWxob3N0ggpGMjNOMDQ5MlhUgglsb2NhbGhvc3QwMQYDVR0f -BCowKDAmoCSgIoYgaHR0cDovL2NybC1zZXJ2ZXI6ODAwMC9iYXNpYy5jcmwwHQYD -VR0OBBYEFLmThoy0pKufr0QWZRwg1FJGdcFRMB8GA1UdIwQYMBaAFDJd0t924S/4 -0cxm/LgBIUfoEhlaMA0GCSqGSIb3DQEBCwUAA4IBAQCk4Ytqqtymc8h0M2HiIyhK -p2Dkf7GZRjBPvC6ULIxMEixslcDCkVTkLaYKRJL7xv37RNfc6kgi9K1IjPfDUtEm -IDm56hRhIvLkH/BsUbhhJsZnYBN1GbqmFNtNP7Zj2Yt6uAwFkFB6gnK7RflSwVaG -EYZhs8QEmZ1VhGymJorp5HGI6EcVkOhG3pScp5yaAqM2cKy7CLnZJfpCzQ12LZ7/ -2UEKRtfILvN8kWaWOaGCM7t3Z2i6bfEh/1WZBmZnyK+zDBxv/YDp2iave/i7r/dY -tOZA1KB2OMWZY4pHmiEior05yf0o7xNctPdwy3+IvRYAH6FJhMA29XoizPW8Cvtk +MIIDnDCCAoSgAwIBAgIUXHwqQoZiZnMEBExZooUBletJc5AwDQYJKoZIhvcNAQEL +BQAwSzE6MDgGA1UEAwwxVExTR2VuU2VsZlNpZ25lZFJvb3RDQSAyMDI1LTAyLTI3 +VDE1OjQ0OjU4Ljg4MDUzMDENMAsGA1UEBwwEJCQkJDAeFw0yNTAzMzEwODIwMTRa +Fw0yNjAzMzEwODIwMTRaMCUxEjAQBgNVBAMMCWxvY2FsaG9zdDEPMA0GA1UECgwG +Y2xpZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuy/8Yw+Ih0wn +9iH13f32ssZF9PnSPmdsvpWrTFBb5+BqQyM9AHH6o6d/zYUoW1qB6joUf8OZdtCf +S47dkZnnKcmyu9exZbLfENINAsZtxmje31SwMaFgCG81O3AGTL9EkbrtkSKNh07e +YtsQZYwOQX+sDGajBcb5zVjRrUyFlVMwo3qlqj1IvOF3R7tBlskNdayIwp8Oc2Nw +/BBXPh6E4CN98vNRAAabO8m5hwXVLTLABRF4JN5SaZWi3iL5TPx8wZPn35KqXMAu +pE56EezcMPGtmhOsB6vdR4/ke5pgKPB6cdIK6Lbf6ZsFjndi3dcN4MQtyOw+sqo3 +0+EY3OhcsQIDAQABo4GdMIGaMCsGA1UdEQQkMCKCCWxvY2FsaG9zdIIKRjIzTjA0 +OTJYVIIJbG9jYWxob3N0MAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUMl3S33bhL/jR +zGb8uAEhR+gSGVowHQYDVR0OBBYEFLmThoy0pKufr0QWZRwg1FJGdcFRMAsGA1Ud +DwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEA +rHwYFdoRGosO25hLiqS3Llb9idmqr7gLwZ7Xpvb9WkkoQczZyHIzld8aNVf5Jih2 +6axkl7PBegW/+2og7pdJ3pknfoHGik0NVgJVxZZ6ZK8Gp0fUvgVWM6OXilF6Vb99 +wEzyavM00Vz0P/Mts60BPmvUnH8rRIWh3qsE+CPAdqu5QJTC4toblrGw/HkXpfoq +yqFfegYexxUE0eIH5ZraxhGdnkfWXu2uMdILmqHyetW5BKKJphK8ft5lRwBEgqcR +btmHBxRnZDxUgK3Y9sln9XwTWmxk19MMjGvCZw/g5Iq3QNNmJToyb+9EOICVEgXj +VY3SdWp32ADzuqOMEBNkrg== -----END CERTIFICATE----- diff --git a/.ci/certs/server_localhost.p12 b/.ci/certs/server_localhost.p12 index 437d1126e1010a61d0d5f81cf26386028a451ed4..81295820e3979148e0465713e3e966e7016ce2db 100644 GIT binary patch literal 3838 zcmai%XE+<|+r}jlyS7%0)`*H78hcl%QClfd8kE?y_7-Y2Mo`pNv#mXCDN-+Sb~O^V+BwOj{_KkY4^o4T zV)sf)UIc%0X<@iCUxHj6#f0O~|NJP&6%m9jdkcw>#z`8@$@Rs($V#Q`!;YF4rFis) zaxz%?^C7r<8v zlr^3@qORi9!}PT*c9%vGj_5RmS`xiQL!4+myoV9x>c<;I72Y;`0EX1MLd#g|$VKcv z4?AC8D!nQRPkNYq@%yv#7K`g9N3iLZ!S=f^Wi^SX6u)RJ#1DnT4dBO9BxR`XmiMs| zrn~H@xv8(0Z0s*KRgAbLz2PfT%QqUGZ@;nUdb`*L7wa5o>#mQ4GN^i*<54k~B((?XRwlNLVSUeWFME4kbw(Z|Q@GMjH3f|sey^vi%fq$^ ze~fRD*~4DOD{0RiEbBd=HoW-(>D2>@D(&Er>~q?@3B@w?qiWe*eMQ=0+GkkPZ`f3N zU0a6=xbmec2>L@+P#JF(SU7}=?CQ#q`n$1tP^b$<)Xj7`E;$5SV31*VBoecujx`&pi|1_PqOG zcSi%L?B|gel1++XC;tWK_w4Xq{a~s=>mFG(;}SfGC$8>Ame~p~B4acgd4o3r8$7{n zEGFB$_H+4m*vSc-h`@$UlBzao&mt{d-8Y5RJ6`m2VHl}iD%4TYz3-6+2Ja%i5}LGZ zZ7x?Dv=Z1YahBEnl2YDFYcV0Po-k(=Z4s0jg*+_CGca$FP>#f${GaQoSner_) zWwqu>5zlU|zQg^A^LEdRMGEAtcq==rhIhAS+sP0U*S%1o@uda*ua5}}QGTlleW(=r zIY+$6SNa=J;1=Ay$r5tL{jbeO zSj*QUg`Gua=wQBX(!Z7+Hbyue(9H&cwvs$OTw0k-j2)$`j>ov$j2@1G)5}_{IrlEc zsZr{QlPIST%iW&>5`C0~?n0O;Tvzt-IEl9E{*bQ4G-4(I+?Vi9KsF`78KKIIaZM%+QbWyQs%q!4g8hGO-fN91Jr z7>e<~(g+Yh^7rWbmjM2oIqz?oL{pxL(c?Q_F-vzpzLA7CJ^=zLNdB8S3$y8VsKFi+ zJ-e^>>a4Hng<&WR(9F9819dX(F@I0p4^{W&Lw)%f1=v%YJ`zkTA#atK#=KOURV53Q z-O-t4oiD93klketm(Q1Y3>)Vn$fxeys0C%uTE|+mt>YU@^68Y&wAKQ-99w4xuD56| zz0>I5Sy8TOXN-Q@?dIibFkOj(n&vD{VpXT(eS!e^%L9J3mJ z+_)TM%_)0R#=qB@wRB(4-@@{_z9{^%X7r%GX}jC?%L1tLRMsw2yGx48S{GK2Ve)H3 z0rpzn@R>3X8a?FFtKwt~_}-!Ng{R-pVnRi%t8vr^el1K@YYh4#P}q78H#47yzYKlA z8tL}wEP;kP;+lEEBb+*7;QhWLWS_3-XgjSrmgYT`M`h|pJ6;IZk}Dza?Rc~w^f@TK zWS4PjV5yaK|7izk;axn-PYG2gBJ*-Z!dH1UDvrrB(_}>9(f3BYTI-MX{T8&u*VJe* zwKS=ELA8V&p4CR6k7mU69J<_km>336ZlGt(?6R#`J>fppraB%oy1Xu3bFhaPwjc0U z@IXG>j+uaruEXunc>Qdx{&r}qmnJ#Qaz<$3HcHvuL`p&6F8=8_e#sSQ{U7ayx(6CA1^p`_Ow1Y`&o6LPcx&iMN*4vcTafH z_j=$!nwJ``{P}(T?Q%-#6m(Vc*eaZp>63~{*8Iosy>=Mky8TbA;krkvx6SRUv$Pw5gs z_Cfub%A=p$*(@WKsj@RqQ&+4cKokl(<i^A9Yp+NHCd`{-vrqh;AUB- z)Bjzujx-tYvl=EM0(-px58q6v2@=Pa8+sEXGj*5-$%JBO)zU&$+!`Z^Zo(?+ww=?u zQJ?T0b+|8iA{Vcc4b~{CXSyP9wqJ-fB+Z#)ziAaa4Q(>>9^g=D5gtFEaHMuvT&JRi zjbnca%3aUQ_>jCo2Zu<8twJ+x6ij^?xYDtX#3TmywDO-xES>cuCO#U}drAE)98?LT zR(%naai)%F)osxr<4dVfhp$`muXecFhn@+0b}@jbepS7v5Y%N{=iCQfiu@ zNFQKGjH(HngiMQw9H~i9neV=Wt|-X-3&a}U1$03kL}q{%d?Cwp9(KD3=G}ai%D)YH zspR;;kmhQ~7x+}EDwbOHK$M2pv+0c%>~QRThGCzJp5se?(*jc)UOjV08QrLI`rUT& z@Leb6XHLT*q}ka*x0A>G?wXQ(%S)(9TqR@qar`Rc2{>6ui-qX?T6IG$PiUtwP{o(h zDq4KRDDBBz(io?xk12mA#v0w=%2cx0`^fEf*b*E0kKC|n=0(ZIpe(7muI>cIgp$#1 zPhOrj<)&@~cx}Q<0IouC|E$adRJpG^IH2Npz3aSz~^8M+cNtr{o6 zCd6p-a2nP=N@2;q1f3DOQun@bK#BLqkcC6^EFnFbkHK%%)zw43*gz94ePjup=;RZS zx_fi;c{wz-#ZHT!H{#L*m@jE$ad>@?zjY@J;=DqG5K|hgPqcHe&XS#+|1=MNMGm#L zv)r2on4rPz>$Ck~k3Jmn-Psqt2sv8d7g@V=?S7C4r+RjMz&V$mWT;}ytWh-9-!lAG z%Wkt5p}HGEli8>fT=nHetyEC#J^&VcZYJg$pGuMMq<(8!5Vt5tF6W_O=(C;E|2U}f z{b=0PK7A{}M09r4c$w{YEc35q3S+OVvbq-MAn1T7wGcLG$C>-nOb?cplRIZmi zvHFT{d;{ai9QzX0L#)4=F(Hmvg=H4muMgq^t}Az55H!34YNZSc`03=IRDEb674yP2 z5u+Z7Jn2mIo^B;8Obggje#;wPr9@8^l%={E!BtMsDXU27jPyEn-geTf&lX_&j6=T2 z;Ea&nZb3@Pww8|2nY+uVZxXn$M5m_ew2;;s++G-rc8SPp)acP&`Tg6Ck31E>Grf4} zU52XgiH4}?~e zemzw3VU-rZrC@&%&f1pdivuD_24lB@z8T+_l7n<{T8}Si1;ULM=o*wvErT%TWhhVH zGYSZHRR;pS4 d=1pQJ-Ls-U52*;x{NZZY_+OIBJ^xv0{s&q$5#Rs- literal 3667 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 T`JDien|2(JFC(4Qf2;OCL$bih diff --git a/.ci/certs/server_localhost_certificate.pem b/.ci/certs/server_localhost_certificate.pem index 0e72b16..d4514dc 100644 --- a/.ci/certs/server_localhost_certificate.pem +++ b/.ci/certs/server_localhost_certificate.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIBATANBgkqhkiG9w0BAQsFADBLMTowOAYDVQQDDDFUTFNH -ZW5TZWxmU2lnbmVkUm9vdENBIDIwMjUtMDItMjdUMTU6NDQ6NTguODgwNTMwMQ0w -CwYDVQQHDAQkJCQkMB4XDTI1MDIyNzE0NDQ1OVoXDTM1MDIyNTE0NDQ1OVowJTES -MBAGA1UEAwwJbG9jYWxob3N0MQ8wDQYDVQQKDAZzZXJ2ZXIwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCn1MRZTV3ATEvS8jFXhci/HGup4acSa1AduNak -8fpGHSFFmrywY6cl00rmPa95nfGloqbkRydqOwMn1Pv3XfHc3UeaiBgU+FNRj9u6 -NOwJ0zR3QkqLxvQqbjrvxMN/IaZ2WL0Zem+j8YIY9yHytjkLEX2AH9AZLwHpdBLI -vSVeS3BNF/gKpXYExGNNfG47/Lo0fIgwboN069pHY/Ff80SAzUkzRcOxDplJoMWp -wym15ssmAnGzAzTrMhKIJ7rUyaE0ZNAIcid7KQ1VzB+yMpeYz5pdbx0G4U/DuVXf -j8FnwlGwGAw05CckDjZcgrWNgLz1kqEcMV/UEFlbQuEzl5kTAgMBAAGjgdAwgc0w -CQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwKwYD -VR0RBCQwIoIJbG9jYWxob3N0ggpGMjNOMDQ5MlhUgglsb2NhbGhvc3QwHQYDVR0O -BBYEFGv69aUODEtJA5QWU4KalMtGvuGYMB8GA1UdIwQYMBaAFDJd0t924S/40cxm -/LgBIUfoEhlaMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwtc2VydmVyOjgw -MDAvYmFzaWMuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQBQxX+IwLmt9emhC/of3riN -wQaLXGYKKMHcsimGkBsQbitWlwWtBZwR2F9aOlvcOAlFbQ2Enldbdpkens1YwR4k -Fsx2VdOnumSYbq6DKZg0mMrg3AqufYLBGVPSGNksQ6qERZVD5NGATLh0kA9R3q0h -eGKJbHyrdI6fkSELkmBGbuetjmGIfmYh+OjYZhqvU5mutjdOfY9k1t08eRvdNiIB -4HxFVEk/S0opA98LkjY0wjPSAMZAWPNxHD5vHoaI6VwYnxLadD1NcasfEpae6uLW -t7CT+v6rtfBXvczfdd9rmhCmcHR5ckrL/wbpnvgkloQqxclw5IpDt/JkPyGghWx3 +MIIDnDCCAoSgAwIBAgIUTaKkqSIB0UooOSRvfT8BletD6xswDQYJKoZIhvcNAQEL +BQAwSzE6MDgGA1UEAwwxVExTR2VuU2VsZlNpZ25lZFJvb3RDQSAyMDI1LTAyLTI3 +VDE1OjQ0OjU4Ljg4MDUzMDENMAsGA1UEBwwEJCQkJDAeFw0yNTAzMzEwODE0MTFa +Fw0yNjAzMzEwODE0MTFaMCUxEjAQBgNVBAMMCWxvY2FsaG9zdDEPMA0GA1UECgwG +c2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp9TEWU1dwExL +0vIxV4XIvxxrqeGnEmtQHbjWpPH6Rh0hRZq8sGOnJdNK5j2veZ3xpaKm5EcnajsD +J9T7913x3N1HmogYFPhTUY/bujTsCdM0d0JKi8b0Km4678TDfyGmdli9GXpvo/GC +GPch8rY5CxF9gB/QGS8B6XQSyL0lXktwTRf4CqV2BMRjTXxuO/y6NHyIMG6DdOva +R2PxX/NEgM1JM0XDsQ6ZSaDFqcMptebLJgJxswM06zISiCe61MmhNGTQCHIneykN +VcwfsjKXmM+aXW8dBuFPw7lV34/BZ8JRsBgMNOQnJA42XIK1jYC89ZKhHDFf1BBZ +W0LhM5eZEwIDAQABo4GdMIGaMCsGA1UdEQQkMCKCCWxvY2FsaG9zdIIKRjIzTjA0 +OTJYVIIJbG9jYWxob3N0MAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUMl3S33bhL/jR +zGb8uAEhR+gSGVowHQYDVR0OBBYEFGv69aUODEtJA5QWU4KalMtGvuGYMAsGA1Ud +DwQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEA +BiEO0HkTJV7EmFaieTrmygwhd5oPLjNQNSEZERQpdnFiE3cwCSEsMX+/NlGG0k/R +7I0hzEZahPVpAa5U4iBrLDFdH59bfG519MhwK0sOGq83qMIIOuG/D4y6AfYppBJS +z9/CriQ3mk4m6hSkk25Pf3c2gRsDQH/dMReCIFBrAshGhNwGQEPCXGWDz4k7cRwp +ZCDt+Bxw3ukWv3sZJhMBXs/G9LTfRbSHlE5ejHAMSszx0CiW7GRwVFmYyHx8kyFo +ejr2/PtCuamDzkGjQEYxCuY/b67oVTyV8R9b3zmxo893IO5udja7V+ep9q7SeD9V +9WiyRZIfZDjieDX7FvhziQ== -----END CERTIFICATE----- diff --git a/.ci/ubuntu/gha-setup.sh b/.ci/ubuntu/gha-setup.sh index 5e5944d..ffb6760 100755 --- a/.ci/ubuntu/gha-setup.sh +++ b/.ci/ubuntu/gha-setup.sh @@ -13,6 +13,9 @@ readonly rabbitmq_image=rabbitmq:4.1.0-management readonly docker_name_prefix='rabbitmq-amqp-python-client' readonly docker_network_name="$docker_name_prefix-network" +readonly rabbitmq_docker_name="$docker_name_prefix-rabbitmq" +readonly toxiproxy_docker_name="$docker_name_prefix-toxiproxy" + if [[ ! -v GITHUB_ACTIONS ]] then GITHUB_ACTIONS='false' @@ -49,9 +52,6 @@ fi set -o nounset -declare -r rabbitmq_docker_name="$docker_name_prefix-rabbitmq" -declare -r toxiproxy_docker_name="$docker_name_prefix-toxiproxy" - function start_toxiproxy { if [[ $run_toxiproxy == 'true' ]] diff --git a/Makefile b/Makefile index 05988c1..0282241 100644 --- a/Makefile +++ b/Makefile @@ -8,10 +8,10 @@ rabbitmq-server-stop: ./.ci/ubuntu/gha-setup.sh stop format: - poetry run isort --skip rabbitmq_amqp_python_client/qpid . + poetry run isort --skip rabbitmq_amqp_python_client/qpid --skip .venv . poetry run black rabbitmq_amqp_python_client/ poetry run black tests/ - poetry run flake8 --exclude=venv,local_tests,docs/examples,rabbitmq_amqp_python_client/qpid --max-line-length=120 --ignore=E203,W503 + poetry run flake8 --exclude=venv,.venv,local_tests,docs/examples,rabbitmq_amqp_python_client/qpid --max-line-length=120 --ignore=E203,W503 test: format poetry run pytest . diff --git a/rabbitmq_amqp_python_client/qpid/proton/_message.py b/rabbitmq_amqp_python_client/qpid/proton/_message.py index ad11cd4..7968447 100644 --- a/rabbitmq_amqp_python_client/qpid/proton/_message.py +++ b/rabbitmq_amqp_python_client/qpid/proton/_message.py @@ -84,10 +84,7 @@ from ._common import millis2secs, secs2millis from ._data import AnnotationDict, Data, char, symbol, ulong from ._endpoints import Link -from ._exceptions import ( - EXCEPTIONS, - MessageException, -) +from ._exceptions import EXCEPTIONS, MessageException if TYPE_CHECKING: from proton._data import PythonAMQPData diff --git a/rabbitmq_amqp_python_client/qpid/proton/_transport.py b/rabbitmq_amqp_python_client/qpid/proton/_transport.py index d4a1702..013ac3c 100644 --- a/rabbitmq_amqp_python_client/qpid/proton/_transport.py +++ b/rabbitmq_amqp_python_client/qpid/proton/_transport.py @@ -820,7 +820,7 @@ class SSLDomain(object): def __init__(self, mode: int) -> None: self._domain = pn_ssl_domain(mode) - if self._domain is None: + if isnull(self._domain): raise SSLUnavailable() def _check(self, err: int) -> int: diff --git a/rabbitmq_amqp_python_client/ssl_configuration.py b/rabbitmq_amqp_python_client/ssl_configuration.py index eea30b8..f42f893 100644 --- a/rabbitmq_amqp_python_client/ssl_configuration.py +++ b/rabbitmq_amqp_python_client/ssl_configuration.py @@ -48,10 +48,10 @@ class WinClientCert: @dataclass class PosixSslConfigurationContext: ca_cert: str - client_cert: Union[PosixClientCert, WinClientCert, None] = None + client_cert: Union[PosixClientCert, None] = None @dataclass class WinSslConfigurationContext: ca_store: Union[LocalMachineStore, CurrentUserStore, PKCS12Store] - client_cert: Union[PosixClientCert, WinClientCert, None] = None + client_cert: Union[WinClientCert, None] = None diff --git a/tests/conftest.py b/tests/conftest.py index 1ed6742..2c9c545 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -84,7 +84,7 @@ def connection_with_reconnect(pytestconfig): def ssl_context(pytestconfig): if sys.platform == "win32": return WinSslConfigurationContext( - ca_store=PKCS12Store(path=".ci/certs/server_localhost.p12"), + ca_store=PKCS12Store(path=".ci/certs/ca.p12"), client_cert=WinClientCert( store=PKCS12Store(path=".ci/certs/client_localhost.p12"), disambiguation_method=FriendlyName(name="1"), diff --git a/tests/test_connection.py b/tests/test_connection.py index 5636020..ef262e0 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -2,13 +2,18 @@ from datetime import datetime, timedelta from pathlib import Path +import pytest + from rabbitmq_amqp_python_client import ( ConnectionClosed, Environment, + PKCS12Store, + PosixSslConfigurationContext, QuorumQueueSpecification, RecoveryConfiguration, StreamSpecification, ValidationCodeException, + WinSslConfigurationContext, ) from .http_requests import delete_all_connections @@ -39,15 +44,30 @@ def test_connection_ssl(ssl_context) -> None: "amqps://guest:guest@localhost:5671/", ssl_context=ssl_context, ) - path = Path(ssl_context.ca_cert) - assert path.is_file() is True - assert path.exists() is True - - path = Path(ssl_context.client_cert.client_cert) - assert path.is_file() is True - - path = Path(ssl_context.client_cert.client_key) - assert path.is_file() is True + if isinstance(ssl_context, PosixSslConfigurationContext): + path = Path(ssl_context.ca_cert) + assert path.is_file() is True + assert path.exists() is True + + path = Path(ssl_context.client_cert.client_cert) + assert path.is_file() is True + assert path.exists() is True + + path = Path(ssl_context.client_cert.client_key) + assert path.is_file() is True + assert path.exists() is True + elif isinstance(ssl_context, WinSslConfigurationContext): + assert isinstance(ssl_context.ca_store, PKCS12Store) + path = Path(ssl_context.ca_store.path) + assert path.is_file() is True + assert path.exists() is True + + assert isinstance(ssl_context.client_cert.store, PKCS12Store) + path = Path(ssl_context.client_cert.store.path) + assert path.is_file() is True + assert path.exists() is True + else: + pytest.fail("Unsupported ssl context") connection = environment.connection() connection.dial()