<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/12420" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2006-09-23T15:27:07-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/12420</id>

		<entry>
		<author><name><![CDATA[tsukeh]]></name></author>
		<updated>2006-09-23T15:27:07-04:00</updated>

		<published>2006-09-23T15:27:07-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=66608#p66608</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=66608#p66608"/>
		<title type="html"><![CDATA[encrypt and decrypt commands]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=66608#p66608"><![CDATA[
That standard base64 is not compatible with encrypt/decrypt commands in eggdrop/crypto.mod..  <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_sad.gif" width="15" height="15" alt=":(" title="Sad"><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5911">tsukeh</a> — Sat Sep 23, 2006 3:27 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[demond]]></name></author>
		<updated>2006-09-23T14:51:56-04:00</updated>

		<published>2006-09-23T14:51:56-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=66607#p66607</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=66607#p66607"/>
		<title type="html"><![CDATA[Re: encrypt and decrypt commands]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=66607#p66607"><![CDATA[
<blockquote class="uncited"><div>So is there any way to make that 'pure tcl' code faster??</div></blockquote>sure, write better code <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_wink.gif" width="15" height="15" alt=";)" title="Wink"><br><br>for example, instead of explicit loops and external proc invokations, use simple table lookup &amp; substitution, like this: (courtesy of RS from the Tcl'ers Wiki)<div class="codebox"><p>Code: </p><pre><code> proc b64en str {    binary scan $str B* bits    switch [expr {[string length $bits]%6}] {        0 {set tail ""}        2 {append bits 0000; set tail ==}        4 {append bits 00; set tail =}    }    return [string map {        000000 A 000001 B 000010 C 000011 D 000100 E 000101 F        000110 G 000111 H 001000 I 001001 J 001010 K 001011 L        001100 M 001101 N 001110 O 001111 P 010000 Q 010001 R        010010 S 010011 T 010100 U 010101 V 010110 W 010111 X        011000 Y 011001 Z 011010 a 011011 b 011100 c 011101 d        011110 e 011111 f 100000 g 100001 h 100010 i 100011 j        100100 k 100101 l 100110 m 100111 n 101000 o 101001 p        101010 q 101011 r 101100 s 101101 t 101110 u 101111 v        110000 w 110001 x 110010 y 110011 z 110100 0 110101 1        110110 2 110111 3 111000 4 111001 5 111010 6 111011 7        111100 8 111101 9 111110 + 111111 /    } $bits]$tail }</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5056">demond</a> — Sat Sep 23, 2006 2:51 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tsukeh]]></name></author>
		<updated>2006-09-23T13:54:55-04:00</updated>

		<published>2006-09-23T13:54:55-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=66606#p66606</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=66606#p66606"/>
		<title type="html"><![CDATA[encrypt and decrypt commands]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=66606#p66606"><![CDATA[
I made some changes/fixes to code and it's now slightly faster..<br><div class="codebox"><p>Code: </p><pre><code>load crypto.so; # crypto.mod which provides bencrypt/bdecrypt - http://tclcryptography.sourceforge.net/package require blowfishpackage require math::bignumset B64 "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"proc encrypt2 {key text} { return [bytetoB64 [::blowfish::blowfish -mode ecb -dir encrypt -key $key -- $text]]}proc decrypt2 {key text} { return [string trimright [::blowfish::blowfish -mode ecb -dir decrypt -key $key -- [B64tobyte $text]] \0]}proc B64tobyte {ec} { set dc "" set k -1 while {$k &lt; [expr [string length $ec] -1]} {  set right "bignum 0 0"  set left "bignum 0 0"  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   set k [expr $k+1]   set p "bignum 0 [string first [string index $ec $k] $::B64]"   set right [::math::bignum::bitor $right [::math::bignum::lshift $p [expr $i*6]]]  }  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   set k [expr $k+1]   set p "bignum 0 [string first [string index $ec $k] $::B64]"   set left [::math::bignum::bitor $left [::math::bignum::lshift $p [expr $i*6]]]  }  for {set i 0} {$i &lt; 4} {set i [expr $i+1]} {   set j [expr (3 - $i) * 8]   append dc [format %c [lindex [::math::bignum::rshift [::math::bignum::bitand $left [::math::bignum::lshift "bignum 0 255" $j]] $j] 2]]  }  for {set i 0} {$i &lt; 4} {set i [expr $i+1]} {   set j [expr (3 - $i) * 8]   append dc [format %c [lindex [::math::bignum::rshift [::math::bignum::bitand $right [::math::bignum::lshift "bignum 0 255" $j]] $j] 2]]  } } return $dc}proc bytetoB64 {ec} { set dc "" set k -1 while {$k &lt; [expr [string length $ec]-1]} {  set k [expr $k+1]  set left [::math::bignum::lshift "bignum 0 [scan [string index $ec $k] %c]" 24]  set k [expr $k+1]  set left [::math::bignum::add $left [::math::bignum::lshift "bignum 0 [scan [string index $ec $k] %c]" 16]]  set k [expr $k+1]  set left [::math::bignum::add $left [::math::bignum::lshift "bignum 0 [scan [string index $ec $k] %c]" 8]]  set k [expr $k+1]  set left [::math::bignum::add $left "bignum 0 [scan [string index $ec $k] %c]"]  set k [expr $k+1]  set right [::math::bignum::lshift "bignum 0 [scan [string index $ec $k] %c]" 24]  set k [expr $k+1]  set right [::math::bignum::add $right [::math::bignum::lshift "bignum 0 [scan [string index $ec $k] %c]" 16]]  set k [expr $k+1]  set right [::math::bignum::add $right [::math::bignum::lshift "bignum 0 [scan [string index $ec $k] %c]" 8]]  set k [expr $k+1]  set right [::math::bignum::add $right "bignum 0 [scan [string index $ec $k] %c]"]  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   append dc [string index $::B64 [expr [lindex $right 2] &amp; 63]]   set right [::math::bignum::rshift $right 6]  }  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   append dc [string index $::B64 [expr [lindex $left 2] &amp; 63]]   set left [::math::bignum::rshift $left 6]  } } return $dc}bind dcc - start dcc:startproc dcc:start {hand idx arg} { set key [randstring 50] set text [randstring 500 "     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] set start [clock clicks] set a [encrypt $key $text] putdcc $idx "eggdrop   : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms" set start [clock clicks] set b [bencrypt $key $text] putdcc $idx "crypto.mod: [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms" set start [clock clicks] set c [encrypt2 $key $text] putdcc $idx "pure tcl  : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms" if {[string equal $a $b] &amp;&amp; [string equal $a $c]} {  putdcc $idx "encrypt ok"  set start [clock clicks]  set c [decrypt $key $a]  putdcc $idx "eggdrop   : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms"  set start [clock clicks]  set d [bdecrypt $key $a]  putdcc $idx "crypto.mod: [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms"  set start [clock clicks]  set e [decrypt2 $key $a]  putdcc $idx "pure tcl  : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms"  if {[string equal $c $d] &amp;&amp; [string equal $c $e]} { putdcc $idx "decrypt ok" } }}</code></pre></div>Results:<div class="codebox"><p>Code: </p><pre><code>eggdrop   : 205 &gt;&gt; 0mscrypto.mod: 153 &gt;&gt; 0mspure tcl  : 117292 &gt;&gt; 117msencrypt okeggdrop   : 104 &gt;&gt; 0mscrypto.mod: 82 &gt;&gt; 0mspure tcl  : 146692 &gt;&gt; 146msdecrypt okeggdrop   : 216 &gt;&gt; 0mscrypto.mod: 153 &gt;&gt; 0mspure tcl  : 115533 &gt;&gt; 115msencrypt okeggdrop   : 106 &gt;&gt; 0mscrypto.mod: 82 &gt;&gt; 0mspure tcl  : 149397 &gt;&gt; 149msdecrypt okeggdrop   : 207 &gt;&gt; 0mscrypto.mod: 144 &gt;&gt; 0mspure tcl  : 116060 &gt;&gt; 116msencrypt okeggdrop   : 105 &gt;&gt; 0mscrypto.mod: 80 &gt;&gt; 0mspure tcl  : 145388 &gt;&gt; 145msdecrypt okeggdrop   : 215 &gt;&gt; 0mscrypto.mod: 152 &gt;&gt; 0mspure tcl  : 115100 &gt;&gt; 115msencrypt okeggdrop   : 105 &gt;&gt; 0mscrypto.mod: 75 &gt;&gt; 0mspure tcl  : 145903 &gt;&gt; 145msdecrypt ok</code></pre></div><br>I also made patch for crypto.mod which fixes some memory leaks, but I still have some problems with it.<br><br>crypto.patch:<div class="codebox"><p>Code: </p><pre><code>--- module.c    2003-08-05 20:28:16.000000000 +0300+++ module.c.new        2006-09-19 21:16:54.000000000 +0300@@ -53,15 +53,20 @@                return TCL_ERROR;        }+       char *p;        if(argc &gt; 2) {                if(strlen(argv[1]) &gt; 512) {                        Tcl_SetResult(interp, "Error, Maximum key length is 512 characters.", TCL_STATIC);                        return TCL_ERROR;                }-               Tcl_SetResult(interp, (char *)twofish_encrypt_string(argv[1], argv[2]), TCL_STATIC);+               p = twofish_encrypt_string(argv[1], argv[2]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } else {-               Tcl_SetResult(interp, (char *)twofish_encrypt_string(DEFAULTKEY, argv[1]), TCL_STATIC);+               p = twofish_encrypt_string(DEFAULTKEY, argv[1]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } }@@ -75,15 +80,20 @@                return TCL_ERROR;        }+       char *p;        if(argc &gt; 2) {                if(strlen(argv[1]) &gt; 512) {                        Tcl_SetResult(interp, "Error, Maximum key length is 512 characters.", TCL_STATIC);                        return TCL_ERROR;                }-               Tcl_SetResult(interp, (char *)twofish_decrypt_string(argv[1], argv[2]), TCL_STATIC);+               p = twofish_decrypt_string(argv[1], argv[2]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } else {-               Tcl_SetResult(interp, (char *)twofish_decrypt_string(DEFAULTKEY, argv[1]), TCL_STATIC);+               p = twofish_decrypt_string(DEFAULTKEY, argv[1]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } }@@ -110,15 +120,20 @@                return TCL_ERROR;        }+       char *p;        if(argc &gt; 2) {                if(strlen(argv[1]) &gt; 512) {                        Tcl_SetResult(interp, "Error, Maximum key length is 512 characters.", TCL_STATIC);                        return TCL_ERROR;                }-               Tcl_SetResult(interp, (char *)blowfish_encrypt_string(argv[1], argv[2]), TCL_STATIC);+               p = blowfish_encrypt_string(argv[1], argv[2]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } else {-               Tcl_SetResult(interp, (char *)blowfish_encrypt_string(DEFAULTKEY, argv[1]), TCL_STATIC);+               p = blowfish_encrypt_string(DEFAULTKEY, argv[1]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } }@@ -132,15 +147,20 @@                return TCL_ERROR;        }+       char *p;        if(argc &gt; 2) {                if(strlen(argv[1]) &gt; 512) {                        Tcl_SetResult(interp, "Error, Maximum key length is 512 characters.", TCL_STATIC);                        return TCL_ERROR;                }-               Tcl_SetResult(interp, (char *)blowfish_decrypt_string(argv[1], argv[2]), TCL_STATIC);+               p = blowfish_decrypt_string(argv[1], argv[2]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } else {-               Tcl_SetResult(interp, (char *)blowfish_decrypt_string(DEFAULTKEY, argv[1]), TCL_STATIC);+               p = blowfish_decrypt_string(DEFAULTKEY, argv[1]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } }@@ -167,15 +187,20 @@                return TCL_ERROR;        }+       char *p;        if(argc &gt; 2) {                if(strlen(argv[1]) &gt; 512) {                        Tcl_SetResult(interp, "Error, Maximum key length is 512 characters.", TCL_STATIC);                        return TCL_ERROR;                }-               Tcl_SetResult(interp, (char *)rijndael_encrypt_string(argv[1], argv[2]), TCL_STATIC);+               p = rijndael_encrypt_string(argv[1], argv[2]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } else {-               Tcl_SetResult(interp, (char *)rijndael_encrypt_string(DEFAULTKEY, argv[1]), TCL_STATIC);+               p = rijndael_encrypt_string(DEFAULTKEY, argv[1]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } }@@ -189,15 +214,20 @@                return TCL_ERROR;        }+       char *p;        if(argc &gt; 2) {                if(strlen(argv[1]) &gt; 512) {                        Tcl_SetResult(interp, "Error, Maximum key length is 512 characters.", TCL_STATIC);                        return TCL_ERROR;                }-               Tcl_SetResult(interp, (char *)rijndael_decrypt_string(argv[1], argv[2]), TCL_STATIC);+               p = rijndael_decrypt_string(argv[1], argv[2]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } else {-               Tcl_SetResult(interp, (char *)rijndael_decrypt_string(DEFAULTKEY, argv[1]), TCL_STATIC);+               p = rijndael_decrypt_string(DEFAULTKEY, argv[1]);+               Tcl_AppendResult(interp, p, TCL_STATIC);+               free(p);                return TCL_OK;        } }</code></pre></div>Any help and ideas are still welcome!<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5911">tsukeh</a> — Sat Sep 23, 2006 1:54 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[tsukeh]]></name></author>
		<updated>2006-09-13T14:09:36-04:00</updated>

		<published>2006-09-13T14:09:36-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=66311#p66311</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=66311#p66311"/>
		<title type="html"><![CDATA[encrypt and decrypt commands]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=66311#p66311"><![CDATA[
I converted one other code to tcl and got those bytetoB64/B64tobyte procedures.<br><br>So is there any way to make that 'pure tcl' code faster??<br><br>I don't eventually use eggdrop and I have some stability problems with crypto.mod or something..<br><br>Testing is done with eggdrop<div class="codebox"><p>Code: </p><pre><code>load crypto.so; # crypto.mod which provides bencrypt/bdecrypt - http://tclcryptography.sourceforge.net/package require blowfishpackage require math::bignumset B64 "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"proc encrypt2 {key text} { return [bytetoB64 [::blowfish::blowfish -mode ecb -dir encrypt -key $key $text]]}proc decrypt2 {key text} { return [string trimright [::blowfish::blowfish -mode ecb -dir decrypt -key $key [B64tobyte $text]] \0]}proc B64tobyte {ec} { set dc "" set k -1 while {$k &lt; [expr [string length $ec] -1]} {  set right [::math::bignum::fromstr 0]  set left [::math::bignum::fromstr 0]  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   set k [expr $k+1]   set right [::math::bignum::bitor $right [::math::bignum::lshift [::math::bignum::fromstr [string first [string index $ec $k] $::B64]] [expr $i*6]]]  }  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   set k [expr $k+1]   set left [::math::bignum::bitor $left [::math::bignum::lshift [::math::bignum::fromstr [string first [string index $ec $k] $::B64]] [expr $i*6]]]  }  for {set i 0} {$i &lt; 4} {set i [expr $i+1]} {   set j [expr (3 - $i) * 8]   append dc [format %c [::math::bignum::tostr [::math::bignum::rshift [::math::bignum::bitand $left [::math::bignum::lshift [::math::bignum::fromstr 255] $j]] $j]]]  }  for {set i 0} {$i &lt; 4} {set i [expr $i+1]} {   set j [expr (3 - $i) * 8]   append dc [format %c [::math::bignum::tostr [::math::bignum::rshift [::math::bignum::bitand $right [::math::bignum::lshift [::math::bignum::fromstr 255] $j]] $j]]]  } } return $dc}proc bytetoB64 {ec} { set dc "" set k -1 while {$k &lt; [expr [string length $ec]-1]} {  set k [expr $k+1]  set left [::math::bignum::lshift [::math::bignum::fromstr [scan [string index $ec $k] %c]] 24]  set k [expr $k+1]  set left [::math::bignum::add $left [::math::bignum::lshift [::math::bignum::fromstr [scan [string index $ec $k] %c]] 16]]  set k [expr $k+1]  set left [::math::bignum::add $left [::math::bignum::lshift [::math::bignum::fromstr [scan [string index $ec $k] %c]] 8]]  set k [expr $k+1]  set left [::math::bignum::add $left [::math::bignum::fromstr [scan [string index $ec $k] %c]]]  set k [expr $k+1]  set right [::math::bignum::lshift [::math::bignum::fromstr [scan [string index $ec $k] %c]] 24]  set k [expr $k+1]  set right [::math::bignum::add $right [::math::bignum::lshift [::math::bignum::fromstr [scan [string index $ec $k] %c]] 16]]  set k [expr $k+1]  set right [::math::bignum::add $right [::math::bignum::lshift [::math::bignum::fromstr [scan [string index $ec $k] %c]] 8]]  set k [expr $k+1]  set right [::math::bignum::add $right [::math::bignum::fromstr [scan [string index $ec $k] %c]]]  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   append dc [string index $::B64 [expr [::math::bignum::tostr $right] &amp; 0x3F]]   set right [::math::bignum::rshift $right 6]  }  for {set i 0} {$i &lt; 6} {set i [expr $i+1]} {   append dc [string index $::B64 [expr [::math::bignum::tostr $left] &amp; 0x3F]]   set left [::math::bignum::rshift $left 6]  } } return $dc}bind dcc - start dcc:startproc dcc:start {hand idx arg} { set key [randstring 50] set text [randstring 500 "     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] set start [clock clicks] set a [encrypt $key $text] putdcc $idx "eggdrop   : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms" set start [clock clicks] set b [bencrypt $key $text] putdcc $idx "crypto.mod: [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms" set start [clock clicks] set c [encrypt2 $key $text] putdcc $idx "pure tcl  : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms" if {[string equal $a $b] &amp;&amp; [string equal $a $c]} {  putdcc $idx "encrypt ok"  set start [clock clicks]  set c [decrypt $key $a]  putdcc $idx "eggdrop   : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms"  set start [clock clicks]  set d [bdecrypt $key $a]  putdcc $idx "crypto.mod: [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms"  set start [clock clicks]  set e [decrypt2 $key $a]  putdcc $idx "pure tcl  : [set m [expr [clock clicks]-$start]] &gt;&gt; [expr $m/1000]ms"  if {[string equal $c $d] &amp;&amp; [string equal $c $e]} { putdcc $idx "decrypt ok" } }}</code></pre></div>Some results<div class="codebox"><p>Code: </p><pre><code>eggdrop   : 212 &gt;&gt; 0mscrypto.mod: 140 &gt;&gt; 0mspure tcl  : 458417 &gt;&gt; 458msencrypt okeggdrop   : 112 &gt;&gt; 0mscrypto.mod: 80 &gt;&gt; 0mspure tcl  : 640686 &gt;&gt; 640msdecrypt okeggdrop   : 241 &gt;&gt; 0mscrypto.mod: 147 &gt;&gt; 0mspure tcl  : 444290 &gt;&gt; 444msencrypt okeggdrop   : 99 &gt;&gt; 0mscrypto.mod: 73 &gt;&gt; 0mspure tcl  : 655279 &gt;&gt; 655msdecrypt okeggdrop   : 210 &gt;&gt; 0mscrypto.mod: 143 &gt;&gt; 0mspure tcl  : 453591 &gt;&gt; 453msencrypt okeggdrop   : 108 &gt;&gt; 0mscrypto.mod: 73 &gt;&gt; 0mspure tcl  : 642180 &gt;&gt; 642msdecrypt okeggdrop   : 213 &gt;&gt; 0mscrypto.mod: 143 &gt;&gt; 0mspure tcl  : 448376 &gt;&gt; 448msencrypt okeggdrop   : 106 &gt;&gt; 0mscrypto.mod: 111 &gt;&gt; 0mspure tcl  : 641055 &gt;&gt; 641msdecrypt ok</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=5911">tsukeh</a> — Wed Sep 13, 2006 2:09 pm</p><hr />
]]></content>
	</entry>
	</feed>
