D 2019-06-06T08:45:42.284 J assignee J icomment ---\sblowfish-1.0.4.tcl\t2019-06-06\s09:52:21\s+0200\r\n+++\sblowfish-1.0.5.tcl\t2019-06-06\s10:02:41\s+0200\r\n@@\s-509,18\s+509,27\s@@\r\n\s\s\s\s\sif\s{[eof\s$in]}\s{\r\n\s\s\s\s\s\s\s\s\sfileevent\s$in\sreadable\s{}\r\n\s\s\s\s\s\s\s\s\sset\sstate(reading)\s0\r\n-\s\s\s\s}\r\n-\r\n-\s\s\s\sset\sdata\s[read\s$in\s$chunksize]\r\n-\s\s\s\s#\sFIX\sME:\swe\sshould\sony\spad\safter\seof\r\n-\s\s\s\sif\s{[string\slength\s$pad]\s>\s0}\s{\r\n-\s\s\s\s\s\s\s\sset\sdata\s[Pad\s$data\s8]\r\n-\s\s\s\s}\r\n-\r\n-\s\s\s\sif\s{$out\s==\s{}}\s{\r\n-\s\s\s\s\s\s\s\sappend\sstate(output)\s[$state(cmd)\s$Key\s$data]\r\n+\s\s\s\s\s\s\s\sset\sdata\s$state(remainder)\r\n+\s\s\s\s\s\s\s\s#\sOnly\spad\sat\sthe\send\sof\sthe\sstream.\r\n+\s\s\s\s\s\s\s\sif\s{[string\slength\s$pad]\s>\s0}\s{\r\n+\s\s\s\s\s\s\s\s\s\s\s\sset\sdata\s[Pad\s$data\s8\s$pad]\r\n+\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s}\selse\s{\r\n-\s\s\s\s\s\s\s\sputs\s-nonewline\s$out\s[$state(cmd)\s$Key\s$data]\r\n+\s\s\s\s\s\s\s\sset\sdata\s[read\s$in\s$chunksize]\r\n+\s\s\s\s\s\s\s\sputs\s"Chunk:\sreading\s[string\slen\s$data]\sbytes"\r\n+\s\s\s\s\s\s\s\sset\sdata\s$state(remainder)$data\r\n+\s\s\s\s\s\s\s\s#\sIf\sdata\sis\snot\sa\smultiple\sof\s8,\sstate(remainder)\swill\shold\r\n+\s\s\s\s\s\s\s\s#\sexcess\sbytes\sfor\sthe\snext\sround.\r\n+\s\s\s\s\s\s\s\sset\spagedlen\s[expr\s{([string\slength\s$data]\s/\s8)\s*\s8}]\r\n+\s\s\s\s\s\s\s\sset\sstate(remainder)\s[string\srange\s$data\s$pagedlen\send]\r\n+\s\s\s\s\s\s\s\sset\sdata\s[string\srange\s$data\s0\s$pagedlen-1]\r\n+\s\s\s\s}\r\n+\s\s\s\sif\s{[string\slength\s$data]\s>\s0}\s{\r\n+\s\s\s\s\s\s\s\sif\s{$out\s==\s{}}\s{\r\n+\s\s\s\s\s\s\s\s\s\s\s\sappend\sstate(output)\s[$state(cmd)\s$Key\s$data]\r\n+\s\s\s\s\s\s\s\s}\selse\s{\r\n+\s\s\s\s\s\s\s\s\s\s\s\sputs\s-nonewline\s$out\s[$state(cmd)\s$Key\s$data]\r\n+\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s}\r\n\s}\r\n\s\r\n@@\s-585,7\s+594,7\s@@\r\n\sproc\s::blowfish::Pad\s{data\sblocksize\s{fill\s\\0}}\s{\r\n\s\s\s\s\sset\slen\s[string\slength\s$data]\r\n\s\s\s\s\sif\s{$len\s==\s0}\s{\r\n-\s\s\s\s\s\s\s\sset\sdata\s[string\srepeat\s$fill\s$blocksize]\r\n+\s\s\s\s\s\s\s\s#\sdo\snot\spad\san\sempty\sstring\r\n\s\s\s\s\s}\selseif\s{($len\s%\s$blocksize)\s!=\s0}\s{\r\n\s\s\s\s\s\s\s\s\sset\spad\s[expr\s{$blocksize\s-\s($len\s%\s$blocksize)}]\r\n\s\s\s\s\s\s\s\s\sappend\sdata\s[string\srepeat\s$fill\s$pad]\r\n@@\s-682,6\s+691,7\s@@\r\n\s\s\s\s\s\s\s\s\s\s\s\s\sset\sstate(cmd)\sDecrypt\r\n\s\s\s\s\s\s\s\s\s}\r\n\s\s\s\s\s\s\s\s\sset\sstate(output)\s""\r\n+\s\s\s\s\s\s\s\sset\sstate(remainder)\s""\r\n\s\s\s\s\s\s\s\s\sfileevent\s$opts(-in)\sreadable\s\\\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s[list\s[namespace\sorigin\sChunk]\s\\\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s$Key\s$opts(-in)\s$opts(-out)\s$opts(-chunksize)\s$opts(-pad)] J login anonymous J mimetype text/plain K d56da1abcaa028bed473ff5ffbd814f41909c5f5 U anonymous Z 49cf6ae32a45ba86be2439768f526e44