Tcl Library Source Code

Artifact [8815e9b413]
Login

Artifact 8815e9b413d3d6013ea4ac92b99458a58a53d39b357f08ca7b0cafa10c87bf94:

Ticket change [8815e9b413] - Ticket [bbdff172a399a771|bbdff172a3] <i>::pki::verify always returns false when &quot;algo&quot; argument is provided</i> status still Open with 4 other changes by RP. 2020-02-12 13:31:48.
D 2020-02-12T13:31:48.910
J assignee 
J comment As\sin\stitle,\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 login RP.
J mimetype text/plain
K bbdff172a399a771485ddbe9606ce9e2738a5d8c
U RP.
Z 88d49ba9739fd9df401b25f241b73b37