Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Where present, have uuid use /dev/urandom as an entropy source instead of relying on delicate platform specific hacks. |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
d5e2fcf04b92a3c44648bd8b8db7951c |
User & Date: | hypnotoad 2018-05-31 16:20:44 |
Context
2018-06-12
| ||
03:55 | oauth / oauth <T> Ticket [20b144d2] Skip tests if TLS is not available. Added base64, sha1 to the set of support packages. check-in: b39206d300 user: aku tags: trunk | |
2018-05-31
| ||
16:21 | Pulling changes from trunk check-in: 703dc04479 user: hypnotoad tags: hypnotoad | |
16:20 | Where present, have uuid use /dev/urandom as an entropy source instead of relying on delicate platform specific hacks. check-in: d5e2fcf04b user: hypnotoad tags: trunk | |
2018-05-18
| ||
17:47 | oauth / oauth <B> Ticket [8fd2561785] Fixed missing escape-quoting of an opening brace in a quote-quoted regexp pattern in a proc. The outer {...} of the proc body governs. Fixed bogus variable name in oauth::QuoteValues. Added an empty test file with a no-op placeholder test. This will catch at least the file not loading properly. Version bumped to 1.0.2 check-in: aec286d43d user: aku tags: trunk | |
Changes
Changes to modules/uuid/uuid.tcl.
︙ | ︙ | |||
38 39 40 41 42 43 44 | return $machinfo } lappend machinfo [clock seconds]; # timestamp lappend machinfo [clock clicks]; # system incrementing counter lappend machinfo [info hostname]; # spatial unique id (poor) lappend machinfo [pid]; # additional entropy lappend machinfo [array get ::tcl_platform] | > > > > > > > > | | | | | | | | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | return $machinfo } lappend machinfo [clock seconds]; # timestamp lappend machinfo [clock clicks]; # system incrementing counter lappend machinfo [info hostname]; # spatial unique id (poor) lappend machinfo [pid]; # additional entropy lappend machinfo [array get ::tcl_platform] ### # If we have /dev/urandom just stream 128 bits from that ### if {[file exists /dev/urandom]} { set fin [open /dev/urandom r] set machinfo [read $fin 128] close $fin } elseif {[catch {package require nettool}]} { # More spatial information -- better than hostname. # bug 1150714: opening a server socket may raise a warning messagebox # with WinXP firewall, using ipconfig will return all IP addresses # including ipv6 ones if available. ipconfig is OK on win98+ if {[string equal $::tcl_platform(platform) "windows"]} { catch {exec ipconfig} config lappend machinfo $config } else { catch { set s [socket -server void -myaddr [info hostname] 0] K [fconfigure $s -sockname] [close $s] } r lappend machinfo $r } if {[package provide Tk] != {}} { lappend machinfo [winfo pointerxy .] lappend machinfo [winfo id .] } } else { ### # If the nettool package works on this platform # use the stream of hardware ids from it ### lappend machinfo {*}[::nettool::hwid_list] } return $machinfo } # Generates a binary UUID as per the draft spec. We generate a pseudo-random # type uuid (type 4). See section 3.4 # proc ::uuid::generate_tcl {} { package require md5 2 variable uid set tok [md5::MD5Init] md5::MD5Update $tok [incr uid]; # package incrementing counter foreach string [generate_tcl_machinfo] { md5::MD5Update $tok $string } set r [md5::MD5Final $tok] binary scan $r c* r # 3.4: set uuid versioning fields lset r 8 [expr {([lindex $r 8] & 0x3F) | 0x80}] lset r 6 [expr {([lindex $r 6] & 0x0F) | 0x40}] return [binary format c* $r] } if {[string equal $tcl_platform(platform) "windows"] && [package provide critcl] != {}} { namespace eval uuid { critcl::ccode { #define WIN32_LEAN_AND_MEAN #define STRICT #include <windows.h> #include <ole2.h> |
︙ | ︙ |