Overview
Context
Changes
Modified client/1.0/pkgd.eagle
from [a49ff45f93]
to [297a91d7bb].
︙ | | |
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
-
+
+
-
+
-
+
-
+
+
-
+
-
+
|
#
return [file join [file dirname [info library]] pkgd]
}
#
# NOTE: This procedure returns non-zero if the specified file seems to be
# an OpenPGP signature file. The fileName argument is the name of
# the file to check, which may or may not exist.
# the file to check, which may or may not exist. The nameOnly
# argument should be non-zero to ignore the contents of the file.
#
proc isPgpSignatureFileName { fileName } {
proc isPgpSignatureFileName { fileName nameOnly } {
if {[string length $fileName] == 0} then {
return false
}
set extension [file extension $fileName]
if {$extension eq ".asc"} then {
if {[file exists $fileName]} then {
if {!$nameOnly && [file exists $fileName]} then {
return [::PackageRepository::isPgpSignature [readFile $fileName]]
} else {
return true
}
} else {
return false
}
}
#
# NOTE: This procedure returns non-zero if the specified file seems to be
# a Harpy script certificate file. The fileName argument is the name
# of the file to check, which may or may not exist.
# of the file to check, which may or may not exist. The nameOnly
# argument should be non-zero to ignore the contents of the file.
#
proc isHarpyCertificateFileName { fileName } {
proc isHarpyCertificateFileName { fileName nameOnly } {
if {[string length $fileName] == 0} then {
return false
}
set extension [file extension $fileName]
if {$extension eq ".harpy"} then {
if {[file exists $fileName]} then {
if {!$nameOnly && [file exists $fileName]} then {
return [::PackageRepository::isHarpyCertificate [readFile $fileName]]
} else {
return true
}
} else {
return false
}
|
︙ | | |
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
|
-
+
|
[::PackageRepository::getFileViaHttp $uri 10 stdout $quiet]
}
#
# NOTE: Is use of OpenPGP for signature verification enabled? Also,
# did we just download an OpenPGP signature file?
#
if {$usePgp && [isPgpSignatureFileName $localFileName]} then {
if {$usePgp && [isPgpSignatureFileName $localFileName true]} then {
#
# NOTE: Attempt to verify the OpenPGP signature. If this fails,
# an error is raised.
#
if {![::PackageRepository::verifyPgpSignature $localFileName]} then {
error [appendArgs \
"bad PGP signature \"" $localFileName \"]
|
︙ | | |
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
|
-
+
|
file mkdir [file dirname $downloadFileName]
downloadOneFile $language $version $fileName $downloadFileName $usePgp
lappend downloadedFileNames [list \
$fileNameOnly $directory(temporary) $directory(persistent)]
if {$usePgp && ![isPgpSignatureFileName $downloadFileName]} then {
if {$usePgp && ![isPgpSignatureFileName $downloadFileName true]} then {
downloadOneFile $language $version [appendArgs $fileName .asc] \
[appendArgs $downloadFileName .asc] $usePgp
lappend downloadedFileNames [list \
[appendArgs $fileNameOnly .asc] $directory(temporary) \
$directory(persistent)]
}
|
︙ | | |
Modified client/1.0/pkgd.eagle.harpy
from [f0f033a03d]
to [4ccc75c948].
︙ | | |
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Protocol>None</Protocol>
<Vendor>Mistachkin Systems</Vendor>
<Id>492aa58d-5e9f-40fd-b909-c8a2a65e7036</Id>
<Id>773aaed9-81ab-4f37-a8b5-33385149bc2e</Id>
<HashAlgorithm>SHA512</HashAlgorithm>
<EntityType>Script</EntityType>
<TimeStamp>2016-08-19T19:36:49.2881328Z</TimeStamp>
<TimeStamp>2016-08-19T19:54:13.8457500Z</TimeStamp>
<Duration>-1.00:00:00</Duration>
<Key>0x2c322765603b5278</Key>
<Signature>
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
</Signature>
</Certificate>
|
Modified client/1.0/pkgr.eagle
from [ece670d676]
to [25667f2c0a].
︙ | | |
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
-
+
+
+
-
+
-
+
|
#
# NOTE: This procedure returns non-zero if the specified string value
# looks like a Harpy (script) certificate. The value argument
# is the string to check.
#
# <public>
proc isHarpyCertificate { value } {
if {[string length $value] == 0 || [string first [string trim {
if {[string length $value] == 0 || ([string first [string trim {
<?xml version="1.0" encoding="utf-8"?>
}] $value] == 0 && [string first [string trim {
<Certificate xmlns="https://eagle.to/2011/harpy"
}] $value] != -1} then {
}] $value] != -1)} then {
return true
} else {
return false
}
}
#
# NOTE: This procedure returns non-zero if the specified string value
# looks like a PGP signature. The value argument is the string
# to check.
#
# <public>
proc isPgpSignature { value } {
if {[string length $value] == 0 || [string first [string trim {
-----BEGIN PGP SIGNATURE-----
}] $value] != -1} then {
}] $value] == 0} then {
return true
} else {
return false
}
}
#
|
︙ | | |
Modified client/1.0/pkgr.eagle.harpy
from [041e568d84]
to [a401a14e54].
︙ | | |
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Protocol>None</Protocol>
<Vendor>Mistachkin Systems</Vendor>
<Id>c8d855d3-dc6c-4ff7-b559-6920bdc2c9ef</Id>
<Id>f958f841-28ec-493a-9f30-fc7c5ec9e126</Id>
<HashAlgorithm>SHA512</HashAlgorithm>
<EntityType>Script</EntityType>
<TimeStamp>2016-08-19T19:13:22.5840312Z</TimeStamp>
<TimeStamp>2016-08-19T19:55:14.6953594Z</TimeStamp>
<Duration>-1.00:00:00</Duration>
<Key>0x2c322765603b5278</Key>
<Signature>
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
</Signature>
</Certificate>
|