Tcl Library Source Code

Artifact [acef47a4fa]
Login

Artifact acef47a4faca3365db34e529963e5b5f6822a2f465116cb105879b6f0b6921a4:

Ticket change [acef47a4fa] - New ticket [bbdff172a399a771|bbdff172a3] <i>::pki::verify always returns false when &quot;algo&quot; argument is provided</i>. by RP. 2020-02-12 11:14:15.
D 2020-02-12T11:14:15.824
J assignee nobody
J closer nobody
J cmimetype text/html
J comment As\sin\ssummary,\swhen\s<b>algo</b>\sargument\sis\sprovided\s<b>::pki::verify</b>\salways\sreturns\sfalse.\r\nAs\sI\sfound\sout\sproblem\sis\sthat\swhen\s<b>default</b>\salgorithm\sis\sused\splaintext\svalue\sis\sstripped\sand\sconverted\sto\soctetstring,\sbut\swhen\sexplicit\salgo\sis\sprovided\sfinal\scomparision\sis\sbetween\splain-text\sand\sbinary.<br>\r\nFix\sthat\sI've\smade\sis\sto\salways\sconvert\s<b>plaintext</b>\sto\soctet-string\s<b>digest</b>\s(before\s<b>if</b>\sclause):\r\n<pre\sstyle="padding:\s10px;\sborder-left:\ssolid\s5px\sgray;">\r\nproc\s::pki::verify\s{signedmessage\scheckmessage\skeylist\s{algo\sdefault}}\s{\r\n\tpackage\srequire\sasn\r\n\r\n\tif\s{[catch\s{\r\n\t\tset\splaintext\s[::pki::decrypt\s-binary\s-unpad\s-pub\s--\s$signedmessage\s$keylist]\r\n\t}]}\s{\r\n\t\treturn\sfalse\r\n\t}\r\n\r\n\t#\sRP\s-\salways\sconvert\splain\stext\sto\sextracted\soctet-string\sdigest\s(original\s$plaintext\sis\snot\svalid\sfor\sfinal\scomparison\swith\sbinary\shash)\r\n\tset\sdigest\s""\r\n\tcatch\s{\r\n\t\t::asn::asnGetSequence\splaintext\smessage\r\n\t\t::asn::asnGetSequence\smessage\sdigestInfo\r\n\t\t::asn::asnGetOctetString\smessage\sdigest\r\n\t}\r\n\r\n\tif\s{$algo\seq\s"default"}\s{\r\n\t\tset\salgoId\s"unknown"\r\n\r\n\t\tcatch\s{\r\n\t\t\t::asn::asnGetObjectIdentifier\sdigestInfo\salgoId\r\n\t\t\tset\salgoId\s[::pki::_oid_number_to_name\s$algoId]\r\n\t\t}\r\n\t}\selse\s{\r\n\t\tset\salgoId\s$algo\r\n\t}\r\n\r\n\tswitch\s--\s$algoId\s{\r\n\t\t"md5"\s-\s"md5WithRSAEncryption"\s{\r\n\t\t\tset\scheckdigest\s[md5::md5\s$checkmessage]\r\n\t\t}\r\n\t\t"sha1"\s-\s"sha1WithRSAEncryption"\s{\r\n\t\t\tset\scheckdigest\s[sha1::sha1\s-bin\s$checkmessage]\r\n\t\t}\r\n\t\t"sha256"\s-\s"sha256WithRSAEncryption"\s{\r\n\t\t\tset\scheckdigest\s[sha2::sha256\s-bin\s$checkmessage]\r\n\t\t}\r\n\t\tdefault\s{\r\n\t\t\treturn\s-code\serror\s"Unknown\shashing\salgorithm:\s$algoId"\r\n\t\t}\r\n\t}\r\n\r\n\treturn\s[expr\s{$checkdigest\seq\s$digest}]\r\n}\r\n</pre>
J foundin 0.10
J is_private 0
J login RP.
J priority 5\sMedium
J private_contact 50d9392564d29f4876848cc135e7ea56eed25957
J resolution None
J severity Important
J status Open
J submitter RP.
J subsystem pki
J title ::pki::verify\salways\sreturns\sfalse\swhen\s"algo"\sargument\sis\sprovided
J type Bug
K bbdff172a399a771485ddbe9606ce9e2738a5d8c
U RP.
Z f47ac58de4cb5e546c380a300262bb75