Feature Proposal: Support selecting the TLS protocol version

"Weweler, Yves-Noel via omniORB-dev" <[email protected]> Tue, 2 Jan 2024 13:27:26 +0000
Newsgroups gmane.comp.corba.omniorb.devel
Message-ID <[email protected]>
--_004_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_
Content-Type: multipart/alternative;
	boundary="_000_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_"

--_000_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

We have certain requirements that force us to ensure that we can force spec=
ific TLS protocol versions.
First I tried doing this using an openssl configuration file. However, I no=
ticed that within src/lib/omniORB/orbcore/ssl/sslContext.cc the TLS version=
 configuration is overwritten.
```
void
sslContext::set_supported_versions() {
  SSL_CTX_set_options(pd_ctx,
                      SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 |
                      SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1);
}
```
Do you have any suggestions on how to force specific protocol versions?


Alternatively, I would like to propose that we add additional configuration=
 to omniorb that behaves similar to `cipher_list`.
Essentially, I would like to be able to set the protocol version using the =
orb specific configurations as well as using the python interface.
According to the openssl wiki setting the version using options is deprecat=
ed. Hence, I suggest we adopt the min and max approach of configuration.

  *   https://wiki.openssl.org/index.php/List_of_SSL_OP_Flags
These options are deprecated as of 1.1.0, use SSL_CTX_set_min_proto_version=
() and SSL_CTX_set_max_proto_version() instead.

Sadly, my understanding of the omniorb codebase is rather limited at the mo=
ment, hence writing appropriate tests and getting all locations correct is =
currently out of reach for me.
Nevertheless, I prepared a small patch as a sketch for my proposal. (I neve=
r compiled it and it does not yet cover Python. Just to show my idea!)

Do you think that my approach is worth implementing?

Best regards,
Yves-Noel Weweler


--_000_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.E-MailFormatvorlage19
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.E-MailFormatvorlage20
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:911429611;
	mso-list-type:hybrid;
	mso-list-template-ids:-2039944276 1093049452 67567619 67567621 67567617 67=
567619 67567621 67567617 67567619 67567621;}
@list l0:level1
	{mso-level-start-at:0;
	mso-level-number-format:bullet;
	mso-level-text:-;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:23.25pt;
	text-indent:-18.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-font-family:Calibri;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:59.25pt;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:95.25pt;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:131.25pt;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:167.25pt;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:203.25pt;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:239.25pt;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:275.25pt;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:311.25pt;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l1
	{mso-list-id:2142769984;
	mso-list-template-ids:1497922668;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level2
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:72.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:108.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:144.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level5
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:180.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:216.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:252.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level8
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:288.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:324.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"DE" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US">Hi,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">We have certain requirements th=
at force us to ensure that we can force specific TLS protocol versions.<br>
First I tried doing this using an openssl configuration file. However, I no=
ticed that within src/lib/omniORB/orbcore/ssl/sslContext.cc the TLS version=
 configuration is overwritten.<br>
```<br>
void<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">sslContext::set_supported_versi=
ons() {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp; SSL_CTX_set_options(pd_c=
tx,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp; SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 |<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp; SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1);<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">}<br>
```<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Do you have any suggestions on =
how to force specific protocol versions?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-US">=
<br>
Alternatively, I would like to propose that we add additional configuration=
 to omniorb that behaves similar to `cipher_list`.<br>
Essentially, I would like to be able to set the protocol version using the =
orb specific configurations as well as using the python interface.<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">According to the openssl wiki s=
etting the version using options is deprecated. Hence, I suggest we adopt t=
he min and max approach of configuration.<o:p></o:p></span></p>
<ul style=3D"margin-top:0cm" type=3D"disc">
<li class=3D"MsoListParagraph" style=3D"margin-left:-12.75pt;mso-list:l0 le=
vel1 lfo3">
<a href=3D"https://wiki.openssl.org/index.php/List_of_SSL_OP_Flags"><span l=
ang=3D"EN-US">https://wiki.openssl.org/index.php/List_of_SSL_OP_Flags</span=
></a><span lang=3D"EN-US"><br>
</span><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-family:&quot;Aria=
l&quot;,sans-serif;color:black;background:white">These options are deprecat=
ed as of 1.1.0, use&nbsp;<b>SSL_CTX_set_min_proto_version()</b>&nbsp;and&nb=
sp;<b>SSL_CTX_set_max_proto_version()</b>&nbsp;instead.</span><span lang=3D=
"EN-US"><o:p></o:p></span></li></ul>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Sadly, my understanding of the =
omniorb codebase is rather limited at the moment, hence writing appropriate=
 tests and getting all locations correct is currently out of reach for me.<=
o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-US">=
Nevertheless, I prepared a small patch as a sketch for my proposal. (I neve=
r compiled it and it does not yet cover Python. Just to show my idea!)<br>
<br>
Do you think that my approach is worth implementing?<br>
<br>
Best regards,<br>
Yves-Noel Weweler<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><span lang=3D"EN-US">=
<o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>

--_000_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_--

--_004_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_
Content-Type: application/octet-stream;
	name="tls_version_selection_draft.patch"
Content-Description: tls_version_selection_draft.patch
Content-Disposition: attachment;
	filename="tls_version_selection_draft.patch"; size=10456;
	creation-date="Tue, 02 Jan 2024 13:26:44 GMT";
	modification-date="Tue, 02 Jan 2024 13:26:44 GMT"
Content-Transfer-Encoding: base64

SW5kZXg6IGluY2x1ZGUvb21uaU9SQjQvc3NsQ29udGV4dC5oDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaW5j
bHVkZS9vbW5pT1JCNC9zc2xDb250ZXh0LmgJKFJldmlzaW9uIDY2NzQpDQorKysgaW5jbHVkZS9v
bW5pT1JCNC9zc2xDb250ZXh0LmgJKEFyYmVpdHNrb3BpZSkNCkBAIC0xMDEsNiArMTAxLDE5IEBA
DQogCiAgIHN0YXRpYyBfY29yZV9hdHRyIENPUkJBOjpCb29sZWFuIGZ1bGxfcGVlcmRldGFpbHM7
CiAKKyAgLy8gTWFwIG9mIHN0cmluZyB0byBPcGVuU1NMIHZlcnNpb24gZW51bWVyYXRvcnMKKyAg
c3RhdGljIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBpbnQ+IHNzbF92ZXJzaW9uX3N0cmluZ190b19l
bnVtX21hcHBpbmcgPSB7CisgICAgICB7IlNTTDNfVkVSU0lPTiIsIFNTTDNfVkVSU0lPTn0sCisg
ICAgICB7IlRMUzFfVkVSU0lPTiIsIFRMUzFfVkVSU0lPTn0sCisgICAgICB7IlRMUzFfMV9WRVJT
SU9OIiwgVExTMV8xX1ZFUlNJT059LAorICAgICAgeyJUTFMxXzJfVkVSU0lPTiIsIFRMUzFfMl9W
RVJTSU9OfSwKKyAgICAgIHsiVExTMV8zX1ZFUlNJT04iLCBUTFMxXzNfVkVSU0lPTn0sCisgICAg
ICB7IkRUTFMxX1ZFUlNJT04iLCBEVExTMV9WRVJTSU9OfSwKKyAgICAgIHsiRFRMUzFfMl9WRVJT
SU9OIiwgRFRMUzFfMl9WRVJTSU9OfQorICB9OworICBzdGF0aWMgaW50IGNvbnZlcnRfc3NsX3Zl
cnNpb25fc3RyaW5nX3RvX2VudW0oQ09SQkE6OlN0cmluZ192YXIgdmVyc2lvblN0cmluZyk7Cisg
IHN0YXRpYyBDT1JCQTo6U3RyaW5nX3ZhciBjb252ZXJ0X2VudW1fdG9fc3NsX3ZlcnNpb25fc3Ry
aW5nKGludCBlbnVtKTsKKwogICBjbGFzcyBQZWVyRGV0YWlscyB7CiAgIHB1YmxpYzoKICAgICBp
bmxpbmUgUGVlckRldGFpbHMoU1NMKiBzLCBYNTA5KiBjLCBDT1JCQTo6Qm9vbGVhbiB2KQpAQCAt
MTUwLDYgKzE2Myw4IEBADQogICB2b2lkIHVwZGF0ZV9DQShjb25zdCBjaGFyKiBjYWZpbGUsIGNv
bnN0IGNoYXIqIGNhcGF0aCk7CiAgIHZvaWQgdXBkYXRlX2tleShjb25zdCBjaGFyKiBrZXlmaWxl
LCBjb25zdCBjaGFyKiBwYXNzd29yZCk7CiAgIHZvaWQgdXBkYXRlX2NpcGhlcl9saXN0KGNvbnN0
IGNoYXIqIGNpcGhlcl9saXN0KTsKKyAgdm9pZCB1cGRhdGVfbWluX3Byb3RvY29sX3ZlcnNpb24o
aW50IHZlcnNpb24pOworICB2b2lkIHVwZGF0ZV9tYXhfcHJvdG9jb2xfdmVyc2lvbihpbnQgdmVy
c2lvbik7CiAgIHZvaWQgdXBkYXRlX3ZlcmlmeV9tb2RlKGludCBtb2RlLCBpbnQgbW9kZV9pbmNv
bWluZywgb21uaV92ZXJpZnlfY2IgY2FsbGJhY2spOwogICB2b2lkIHVwZGF0ZV9pbmZvX2NiKG9t
bmlfaW5mb19jYiBjYWxsYmFjayk7CiAKQEAgLTE3OSw3ICsxOTQsNyBAQA0KICAgCiAgIC8vCiAg
IC8vIFZpcnR1YWwgZnVuY3Rpb25zIHRoYXQgcG9wdWxhdGUgdGhlIFNTTF9DVFggaW4gcGRfY3R4
LiBTdWJjbGFzc2VzCi0gIC8vIG1heSBvdmVycmlkZSB0aGVzZSBpZiByZXF1aXJlZC4gVGhzZSBh
cmUgY2FsbGVkIHdoaWxlIGhvbGRpbmcKKyAgLy8gbWF5IG92ZXJyaWRlIHRoZXNlIGlmIHJlcXVp
cmVkLiBUaGVzZSBhcmUgY2FsbGVkIHdoaWxlIGhvbGRpbmcKICAgLy8gcGRfY3R4X2xvY2suCiAK
ICAgU1NMX0NUWCogZ2V0X1NTTF9DVFgoKSBjb25zdApAQCAtMTkzLDEyICsyMDgsOCBAQA0KICAg
dmlydHVhbCBTU0xfTUVUSE9EKiBzZXRfbWV0aG9kKCk7IAogICAvLyBNZXRob2QgdG8gcGFzcyB0
byBTU0xfQ1RYX25ldy4gRGVmYXVsdHMgdG8gcmV0dXJuIFRMU19tZXRob2QoKS4KIAotICB2aXJ0
dWFsIHZvaWQgc2V0X3N1cHBvcnRlZF92ZXJzaW9ucygpOyAKLSAgLy8gRGVmYXVsdCB0bwotICAv
LyAgIFNTTF9DVFhfc2V0X29wdGlvbnMoc3NsX2N0eCwKLSAgLy8gICAgICAgICAgICAgICAgICAg
ICAgIFNTTF9PUF9OT19TU0x2MiB8IFNTTF9PUF9OT19TU0x2MyB8Ci0gIC8vICAgICAgICAgICAg
ICAgICAgICAgICBTU0xfT1BfTk9fVExTdjEgfCBTU0xfT1BfTk9fVExTdjFfMSk7Ci0gIC8vIFRo
YXQgaXMsIG9ubHkgYWNjZXB0IFRMUyAxLjIgb3IgbGF0ZXIuCisgIHZpcnR1YWwgdm9pZCBzZXRf
bWluX3Byb3RvY29sX3ZlcnNpb24oaW50IHZlcnNpb24pOworICB2aXJ0dWFsIHZvaWQgc2V0X21h
eF9wcm90b2NvbF92ZXJzaW9uKGludCB2ZXJzaW9uKTsKIAogICB2aXJ0dWFsIHZvaWQgc2V0X0NB
KCk7CiAgIC8vIFNldCBDQSBkZXRhaWxzLiBDYWxscyBib3RoIFNTTF9DVFhfbG9hZF92ZXJpZnlf
bG9jYXRpb25zIGFuZApAQCAtMjM5LDYgKzI1MCw4IEBADQogICBDT1JCQTo6U3RyaW5nX3ZhciBw
ZF9wYXNzd29yZDsKICAgQ09SQkE6OlN0cmluZ192YXIgcGRfcGFzc3dvcmRfaW5fY3R4OwogICBD
T1JCQTo6U3RyaW5nX3ZhciBwZF9jaXBoZXJfbGlzdDsKKyAgaW50ICAgICAgICAgICAgICAgcGRf
bWluX3Byb3RvY29sX3ZlcnNpb247CisgIGludCAgICAgICAgICAgICAgIHBkX21heF9wcm90b2Nv
bF92ZXJzaW9uOwogICBpbnQgICAgICAgICAgICAgICBwZF92ZXJpZnlfbW9kZTsKICAgaW50ICAg
ICAgICAgICAgICAgcGRfdmVyaWZ5X21vZGVfaW5jb21pbmc7CiAgIG9tbmlfdmVyaWZ5X2NiICAg
IHBkX3ZlcmlmeV9jYjsKSW5kZXg6IHNhbXBsZS5jZmcNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBzYW1wbGUu
Y2ZnCShSZXZpc2lvbiA2Njc0KQ0KKysrIHNhbXBsZS5jZmcJKEFyYmVpdHNrb3BpZSkNCkBAIC0z
MjYsNiArMzI2LDggQEANCiAjIHNzbENBRmlsZQogIyBzc2xDQVBhdGgKICMgc3NsQ2lwaGVyTGlz
dAorIyBzc2xNaW5Qcm90b2NvbFZlcnNpb24KKyMgc3NsTWF4UHJvdG9jb2xWZXJzaW9uCiAjIHNz
bEtleUZpbGUKICMgc3NsS2V5UGFzc3dvcmQKICMgc3NsVmVyaWZ5TW9kZQpAQCAtMzQ5LDYgKzM1
MSwxNiBAQA0KICMgICBzc2xDaXBoZXJMaXN0IHNwZWNpZmllcyB0aGUgc3RyaW5nIGZvcm0gb2Yg
YWNjZXB0YWJsZSBjaXBoZXJzLiBTZWUKICMgICB0aGUgT3BlblNTTCBjaXBoZXJzKDEpIG1hbnVh
bCBwYWdlIGZvciBkZXRhaWxzLgogIworIyAgIHNzbE1pblByb3RvY29sVmVyc2lvbiBzcGVjaWZp
ZXMgdGhlIG1pbmltdW0gcHJvdG9jb2wgdmVyc2lvbiB0byB1c2UuCisjICAgQ3VycmVudGx5IHN1
cHBvcnRlZCB2ZXJzaW9ucyBhcmUgU1NMM19WRVJTSU9OLCBUTFMxX1ZFUlNJT04sCisjICAgVExT
MV8xX1ZFUlNJT04sIFRMUzFfMl9WRVJTSU9OLCBUTFMxXzNfVkVSU0lPTiBmb3IgVExTIGFuZAor
IyAgIERUTFMxX1ZFUlNJT04sIERUTFMxXzJfVkVSU0lPTiBmb3IgRFRMUy4KKyMKKyMgICBzc2xN
YXhQcm90b2NvbFZlcnNpb24gc3BlY2lmaWVzIHRoZSBtYXhpbXVtIHByb3RvY29sIHZlcnNpb24g
dG8gdXNlLgorIyAgIEN1cnJlbnRseSBzdXBwb3J0ZWQgdmVyc2lvbnMgYXJlIFNTTDNfVkVSU0lP
TiwgVExTMV9WRVJTSU9OLAorIyAgIFRMUzFfMV9WRVJTSU9OLCBUTFMxXzJfVkVSU0lPTiwgVExT
MV8zX1ZFUlNJT04gZm9yIFRMUyBhbmQKKyMgICBEVExTMV9WRVJTSU9OLCBEVExTMV8yX1ZFUlNJ
T04gZm9yIERUTFMuCisjCiAjICAgc3NsS2V5RmlsZSBzcGVjaWZpZXMgdGhlIGZpbGUgY29udGFp
bmluZyB0aGUgU1NMIGtleS4KICMKICMgICBzc2xLZXlQYXNzd29yZCBzcGVjaWZpZXMgdGhlIHBh
c3N3b3JkIHRvIHVubG9jayB0aGUga2V5LgpJbmRleDogc3JjL2xpYi9vbW5pT1JCL29yYmNvcmUv
c3NsL3NzbENvbnRleHQuY2MNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBzcmMvbGliL29tbmlPUkIvb3JiY29y
ZS9zc2wvc3NsQ29udGV4dC5jYwkoUmV2aXNpb24gNjY3NCkNCisrKyBzcmMvbGliL29tbmlPUkIv
b3JiY29yZS9zc2wvc3NsQ29udGV4dC5jYwkoQXJiZWl0c2tvcGllKQ0KQEAgLTUzLDYgKzUzLDgg
QEANCiBjb25zdCBjaGFyKiAgICBzc2xDb250ZXh0OjprZXlfZmlsZSAgICAgICAgICAgICAgICAg
ICAgPSAwOwogY29uc3QgY2hhciogICAgc3NsQ29udGV4dDo6a2V5X2ZpbGVfcGFzc3dvcmQgICAg
ICAgICAgID0gMDsKIGNvbnN0IGNoYXIqICAgIHNzbENvbnRleHQ6OmNpcGhlcl9saXN0ICAgICAg
ICAgICAgICAgICA9IDA7CitpbnQgICAgICAgICAgICBzc2xDb250ZXh0OjptaW5fcHJvdG9jb2xf
dmVyc2lvbiAgICAgICA9IFRMUzFfMl9WRVJTSU9OOworaW50ICAgICAgICAgICAgc3NsQ29udGV4
dDo6bWF4X3Byb3RvY29sX3ZlcnNpb24gICAgICAgPSBUTFMxXzNfVkVSU0lPTjsKIGludCAgICAg
ICAgICAgIHNzbENvbnRleHQ6OnZlcmlmeV9tb2RlICAgICAgICAgICAgICAgICA9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFNTTF9WRVJJRllfUEVFUiB8IFNTTF9WRVJJRllfRkFJTF9J
Rl9OT19QRUVSX0NFUlQpOwogaW50ICAgICAgICAgICAgc3NsQ29udGV4dDo6dmVyaWZ5X21vZGVf
aW5jb21pbmcgICAgICAgID0gLTE7CkBAIC0xMzYsNiArMTM4LDIxIEBADQogCiAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCiB2b2lkCitzc2xDb250ZXh0Ojp1cGRhdGVfbWluX3Byb3RvY29sX3ZlcnNpb24oaW50
IHZlcnNpb24pCit7CisgIG9tbmlfdHJhY2VkbXV0ZXhfbG9jayBzeW5jKHBkX2N0eF9sb2NrKTsK
KyAgcGRfbWluX3Byb3RvY29sX3ZlcnNpb24gPSB2ZXJzaW9uOworfQorCisvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCit2b2lkCitzc2xDb250ZXh0Ojp1cGRhdGVfbWF4X3Byb3RvY29sX3ZlcnNpb24oaW50IHZl
cnNpb24pCit7CisgIG9tbmlfdHJhY2VkbXV0ZXhfbG9jayBzeW5jKHBkX2N0eF9sb2NrKTsKKyAg
cGRfbWF4X3Byb3RvY29sX3ZlcnNpb24gPSB2ZXJzaW9uOworfQorLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
dm9pZAogc3NsQ29udGV4dDo6dXBkYXRlX3ZlcmlmeV9tb2RlKGludCBtb2RlLCBpbnQgbW9kZV9p
bmNvbWluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbW5pX3ZlcmlmeV9jYiBj
YWxsYmFjaykKIHsKQEAgLTE3OCw3ICsxOTUsOCBAQA0KICAgICAgICAgICAgICAgICAgICAgQ09S
QkE6OkNPTVBMRVRFRF9OTyk7CiAgICAgfQogCi0gICAgc2V0X3N1cHBvcnRlZF92ZXJzaW9ucygp
OworICAgIHNldF9taW5fcHJvdG9jb2xfdmVyc2lvbigpOworICAgIHNldF9tYXhfcHJvdG9jb2xf
dmVyc2lvbigpOwogICAgIHNldF9jZXJ0aWZpY2F0ZSgpOwogICAgIHNldF9wcml2YXRla2V5KCk7
CiAgICAgc2V0X0NBKCk7CkBAIC0yMDgsNyArMjI2LDcgQEANCiAgIFNTTF9DVFhfc2V0X2RlZmF1
bHRfcGFzc3dkX2NiX3VzZXJkYXRhKHBkX2N0eCwgMCk7CiAgIFNTTF9DVFhfZnJlZShwZF9jdHgp
OwogICBwZF9wYXNzd29yZF9pbl9jdHggPSAoY29uc3QgY2hhciopMDsKLSAgCisKICAgY3JlYXRl
X2N0eCgpOwogfQogCkBAIC0yMjIsNyArMjQwLDcgQEANCiAgICAgLy8gbm90IGZyZWUgaXQgeWV0
LgogICAgIGlmICghKGNvbnN0IGNoYXIqKXBkX3Bhc3N3b3JkX2luX2N0eCkKICAgICAgIHBkX3Bh
c3N3b3JkX2luX2N0eCA9IHBkX3Bhc3N3b3JkLl9yZXRuKCk7Ci0gICAgCisKICAgICBwZF9jYWZp
bGUgICA9IGNlcnRpZmljYXRlX2F1dGhvcml0eV9maWxlOwogICAgIHBkX2NhcGF0aCAgID0gY2Vy
dGlmaWNhdGVfYXV0aG9yaXR5X3BhdGg7CiAgICAgcGRfa2V5ZmlsZSAgPSBrZXlfZmlsZTsKQEAg
LTIyOSw2ICsyNDcsOCBAQA0KICAgICBwZF9wYXNzd29yZCA9IGtleV9maWxlX3Bhc3N3b3JkOwog
ICB9CiAgIHBkX2NpcGhlcl9saXN0ICAgICAgICAgID0gY2lwaGVyX2xpc3Q7CisgIHBkX21pbl9w
cm90b2NvbF92ZXJzaW9uICAgPSBtaW5fcHJvdG9jb2xfdmVyc2lvbjsKKyAgcGRfbWF4X3Byb3Rv
Y29sX3ZlcnNpb24gICA9IG1heF9wcm90b2NvbF92ZXJzaW9uOwogICBwZF92ZXJpZnlfbW9kZSAg
ICAgICAgICA9IHZlcmlmeV9tb2RlOwogICBwZF92ZXJpZnlfbW9kZV9pbmNvbWluZyA9IHZlcmlm
eV9tb2RlX2luY29taW5nOwogICBwZF92ZXJpZnlfY2IgICAgICAgICAgICA9IHZlcmlmeV9jYWxs
YmFjazsKQEAgLTI3NiwxNCArMjk2LDI0IEBADQogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiB2b2lkCi1z
c2xDb250ZXh0OjpzZXRfc3VwcG9ydGVkX3ZlcnNpb25zKCkgewotICBTU0xfQ1RYX3NldF9vcHRp
b25zKHBkX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICBTU0xfT1BfTk9fU1NMdjIgfCBTU0xf
T1BfTk9fU1NMdjMgfAotICAgICAgICAgICAgICAgICAgICAgIFNTTF9PUF9OT19UTFN2MSB8IFNT
TF9PUF9OT19UTFN2MV8xKTsKK3NzbENvbnRleHQ6OnNldF9taW5fcHJvdG9jb2xfdmVyc2lvbihp
bnQgdmVyc2lvbikgeworICBpZiAoIWludCBTU0xfQ1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbihw
ZF9jdHgsIHZlcnNpb24pKSB7CisgICAgcmVwb3J0X2Vycm9yKCk7CisgICAgT01OSU9SQl9USFJP
VyhJTklUSUFMSVpFLCBJTklUSUFMSVpFX1RyYW5zcG9ydEVycm9yLCBDT1JCQTo6Q09NUExFVEVE
X05PKTsKKyAgfQogfQogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiB2b2lkCitzc2xDb250ZXh0OjpzZXRf
bWF4X3Byb3RvY29sX3ZlcnNpb24oaW50IHZlcnNpb24pIHsKKyAgaWYgKCFpbnQgU1NMX0NUWF9z
ZXRfbWF4X3Byb3RvX3ZlcnNpb24ocGRfY3R4LCB2ZXJzaW9uKSkgeworICAgIHJlcG9ydF9lcnJv
cigpOworICAgIE9NTklPUkJfVEhST1coSU5JVElBTElaRSwgSU5JVElBTElaRV9UcmFuc3BvcnRF
cnJvciwgQ09SQkE6OkNPTVBMRVRFRF9OTyk7CisgIH0KK30KKworLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor
dm9pZAogc3NsQ29udGV4dDo6c2V0X0NBKCkgewogCiAgIGlmIChwZF9jYWZpbGUuaW4oKSB8fCBw
ZF9jYXBhdGguaW4oKSkgewpAQCAtNDkyLDMgKzUyMiwxOSBAQA0KICAgICBsb2cgPDwgIk9wZW5T
U0w6ICIgPDwgKGNvbnN0IGNoYXIqKSBidWYgPDwgIlxuIjsKICAgfQogfQorCitzdGF0aWMgaW50
IGNvbnZlcnRfc3NsX3ZlcnNpb25fc3RyaW5nX3RvX2VudW0oQ09SQkE6OlN0cmluZ192YXIgdmVy
c2lvblN0cmluZykgeworICBhdXRvIGl0ID0gdmVyc2lvbk1hcC5maW5kKHZlcnNpb25TdHIpOwor
ICBpbnQgdmVyc2lvbiA9IChpdCAhPSB2ZXJzaW9uTWFwLmVuZCgpKSA/IGl0LT5zZWNvbmQgOiAt
MTsKKyAgcmV0dXJuIHZlcnNpb247Cit9CisKK3N0YXRpYyBDT1JCQTo6U3RyaW5nX3ZhciBjb252
ZXJ0X2VudW1fdG9fc3NsX3ZlcnNpb25fc3RyaW5nKGludCBlbnVtZXJhdG9yKSB7CisgIHN0ZDo6
bWFwPGludCwgc3RkOjpzdHJpbmc+IHJldmVyc2VkTWFwOworICBmb3IgKGNvbnN0IGF1dG8mIHBh
aXIgOiBvcmlnaW5hbE1hcCkgeworICAgICAgcmV2ZXJzZWRNYXBbcGFpci5zZWNvbmRdID0gcGFp
ci5maXJzdDsKKyAgfQorICBhdXRvIGl0ID0gcmV2ZXJzZWRNYXAuZmluZChlbnVtZXJhdG9yKTsK
KyAgc3RkOjpzdHJpbmcgdmVyc2lvblN0cmluZyA9IChpdCAhPSByZXZlcnNlZE1hcC5lbmQoKSkg
PyBpdC0+c2Vjb25kIDogJ1VOS05PV04nOworICByZXR1cm4gQ09SQkE6OnN0cmluZ19kdXAodmVy
c2lvblN0cmluZyk7Cit9CkluZGV4OiBzcmMvbGliL29tbmlPUkIvb3JiY29yZS9zc2wvc3NsVHJh
bnNwb3J0SW1wbC5jYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHNyYy9saWIvb21uaU9SQi9vcmJjb3JlL3Nz
bC9zc2xUcmFuc3BvcnRJbXBsLmNjCShSZXZpc2lvbiA2Njc0KQ0KKysrIHNyYy9saWIvb21uaU9S
Qi9vcmJjb3JlL3NzbC9zc2xUcmFuc3BvcnRJbXBsLmNjCShBcmJlaXRza29waWUpDQpAQCAtMjcy
LDYgKzI3Miw1NyBAQA0KIAogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworY2xhc3Mgc3NsTWluVGxz
VmVyc2lvbkhhbmRsZXIgOiBwdWJsaWMgb3JiT3B0aW9uczo6SGFuZGxlciB7CitwdWJsaWM6CisK
KyAgc3NsTWluVGxzVmVyc2lvbkhhbmRsZXIoKSA6CisgICAgb3JiT3B0aW9uczo6SGFuZGxlcigi
c3NsTWluVGxzVmVyc2lvbiIsCisJCQkic3NsTWluVGxzVmVyc2lvbiA9IDxtaW4uIHByb3RvY29s
IHZlcnNpb24+IiwKKwkJCTEsCisJCQkiLU9SQnNzbE1pblRsc1ZlcnNpb24gPG1pbi4gcHJvdG9j
b2wgdmVyc2lvbj4iKSB7fQorCisgIHZvaWQgdmlzaXQoY29uc3QgY2hhciogdmFsdWUsIG9yYk9w
dGlvbnM6OlNvdXJjZSkKKyAgeworICAgIHNzbENvbnRleHQ6Om1pbl9wcm90b2NvbF92ZXJzaW9u
ID0gU1NMQ29udGV4dDo6c3NsX3ZlcnNpb25fc3RyaW5nX3RvX2VudW0odmFsdWUpOworICB9CisK
KyAgdm9pZCBkdW1wKG9yYk9wdGlvbnM6OnNlcXVlbmNlU3RyaW5nJiByZXN1bHQpCisgIHsKKyAg
ICBvcmJPcHRpb25zOjphZGRLVlN0cmluZyhrZXkoKSwKKwkJCSAgICBzc2xDb250ZXh0Ojpjb252
ZXJ0X2VudW1fdG9fc3NsX3ZlcnNpb25fc3RyaW5nKHNzbENvbnRleHQ6Om1pbl9wcm90b2NvbF92
ZXJzaW9uKSwKKwkJCSAgICByZXN1bHQpOworICB9Cit9OworCitzdGF0aWMgc3NsTWluVGxzVmVy
c2lvbkhhbmRsZXIgc3NsTWluVGxzVmVyc2lvbkhhbmRsZXJfOworCisKKy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCitjbGFzcyBzc2xNYXhUbHNWZXJzaW9uSGFuZGxlciA6IHB1YmxpYyBvcmJPcHRpb25z
OjpIYW5kbGVyIHsKK3B1YmxpYzoKKworICBzc2xNYXhUbHNWZXJzaW9uSGFuZGxlcigpIDoKKyAg
ICBvcmJPcHRpb25zOjpIYW5kbGVyKCJzc2xNYXhUbHNWZXJzaW9uIiwKKwkJCSJzc2xNYXhUbHNW
ZXJzaW9uID0gPG1heC4gcHJvdG9jb2wgdmVyc2lvbj4iLAorCQkJMSwKKwkJCSItT1JCc3NsTWF4
VGxzVmVyc2lvbiA8bWF4LiBwcm90b2NvbCB2ZXJzaW9uPiIpIHt9CisKKyAgdm9pZCB2aXNpdChj
b25zdCBjaGFyKiB2YWx1ZSwgb3JiT3B0aW9uczo6U291cmNlKQorICB7CisgICAgc3NsQ29udGV4
dDo6bWF4X3Byb3RvY29sX3ZlcnNpb24gPSBTU0xDb250ZXh0Ojpzc2xfdmVyc2lvbl9zdHJpbmdf
dG9fZW51bSh2YWx1ZSk7CisgIH0KKworICB2b2lkIGR1bXAob3JiT3B0aW9uczo6c2VxdWVuY2VT
dHJpbmcmIHJlc3VsdCkKKyAgeworICAgIG9yYk9wdGlvbnM6OmFkZEtWU3RyaW5nKGtleSgpLAor
CQkJICAgIHNzbENvbnRleHQ6OmNvbnZlcnRfZW51bV90b19zc2xfdmVyc2lvbl9zdHJpbmcoc3Ns
Q29udGV4dDo6bWF4X3Byb3RvY29sX3ZlcnNpb24pLAorCQkJICAgIHJlc3VsdCk7CisgIH0KK307
CisKK3N0YXRpYyBzc2xNYXhUbHNWZXJzaW9uSGFuZGxlciBzc2xNYXhUbHNWZXJzaW9uSGFuZGxl
cl87CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiBzdGF0aWMgaW50CiB2ZXJpZnlNb2RlVmFsdWUo
Y29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiB2YWx1ZSwgQ09SQkE6OkJvb2xlYW4gdW5zZXRf
b2spCiB7CkBAIC00NTUsNiArNTA2LDggQEANCiAgICAgb3JiT3B0aW9uczo6c2luZ2xldG9uKCku
cmVnaXN0ZXJIYW5kbGVyKHNzbEtleUZpbGVIYW5kbGVyXyk7CiAgICAgb3JiT3B0aW9uczo6c2lu
Z2xldG9uKCkucmVnaXN0ZXJIYW5kbGVyKHNzbEtleVBhc3N3b3JkSGFuZGxlcl8pOwogICAgIG9y
Yk9wdGlvbnM6OnNpbmdsZXRvbigpLnJlZ2lzdGVySGFuZGxlcihzc2xDaXBoZXJMaXN0SGFuZGxl
cl8pOworICAgIG9yYk9wdGlvbnM6OnNpbmdsZXRvbigpLnJlZ2lzdGVySGFuZGxlcihzc2xNaW5U
bHNWZXJzaW9uSGFuZGxlcl8pOworICAgIG9yYk9wdGlvbnM6OnNpbmdsZXRvbigpLnJlZ2lzdGVy
SGFuZGxlcihzc2xNYXhUbHNWZXJzaW9uSGFuZGxlcl8pOwogICAgIG9yYk9wdGlvbnM6OnNpbmds
ZXRvbigpLnJlZ2lzdGVySGFuZGxlcihzc2xWZXJpZnlNb2RlSGFuZGxlcl8pOwogICAgIG9yYk9w
dGlvbnM6OnNpbmdsZXRvbigpLnJlZ2lzdGVySGFuZGxlcihzc2xWZXJpZnlNb2RlSW5jb21pbmdI
YW5kbGVyXyk7CiAgICAgb3JiT3B0aW9uczo6c2luZ2xldG9uKCkucmVnaXN0ZXJIYW5kbGVyKHNz
bEFjY2VwdFRpbWVPdXRIYW5kbGVyXyk7Cg==

--_004_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
omniORB-dev mailing list
[email protected]
https://www.omniorb-support.com/mailman/listinfo/omniorb-dev

--_004_7da9c9a15c5d43f78c35d9121d3db830insiderstechnologiesde_--