3ed3936760d6829e2802b29af0275363b5ab2c85
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

1) ## translation metadata
Roger Dingledine looks like we never set the...

Roger Dingledine authored 13 years ago

2) # Revision: $Revision$
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

3) # Translation-Priority: 2-medium
4) 
5) #include "head.wmi" TITLE="Tor Project: Verifying Signatures" CHARSET="UTF-8"
6) <div id="content" class="clearfix">
7)   <div id="breadcrumbs">
Andrew Lewman change all of the breadcrum...

Andrew Lewman authored 13 years ago

8)     <a href="<page index>">Home &raquo; </a>
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

9)     <a href="<page docs/verifying-signatures>">Verifying Signatures</a>
10)   </div>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

11)   <div id="maincol">
traumschule verification: add TOC

traumschule authored 5 years ago

12) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

13) <section class="accordion">
14) <!--
15)   This section uses a CSS accordion to hide and show topics.
16)   Styles are defined at the bottom of layout.css.
17) -->
18)  <div>
19)    <input id="ac-0" name="accordion-0" type="checkbox" checked />
20)    <label for="ac-0">
traumschule verification: split by OS (...

traumschule authored 5 years ago

21)     <h1><a name="TOC">How to verify signatures of packages</a></h1>
traumschule verification: fix formatting

traumschule authored 5 years ago

22)     <hr>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

23)    </label>
24)    <article class="ac-small">
25) <!-- TOC -->
26)     <div class="nav img-shadow">
27)     <div class="sidenav-sub">
28)     <ul>
29)       <li><a href="#Why-verify-signature">Always verify downloads</a></li>
traumschule verification: split by OS (...

traumschule authored 5 years ago

30)       <li><a href="#ImportKey">Import Tor's signing key</a></li>
31)       <li><a href="#VerifySignature">Verify OpenPGP signatures</a></li>
32)       <li><a href="#ChecksumVerification">Verify checksums</a></li>
33)       <li><a href="#MARVerification">MAR verification</a></li>
34)       <li><a href="#Troubleshooting">Troubleshooting</a></li>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

35)       <li><a href="#Scripts">Scripts</a></li>
36)     </ul>
37)     </div>
38)     </div>
traumschule verification: fix formatting

traumschule authored 5 years ago

39) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

40) <!-- Intro -->
traumschule verification: fix formatting

traumschule authored 5 years ago

41)     <p>Digital signature is a process ensuring that a certain package was
42)     generated by its developers and has not been tampered with. Below we explain
43)     why it is important and how to verify that the Tor program you download is
44)     the one we have created and has not been modified by some attacker.</p>
45) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

46)     <p>If you want to learn more about how it works see<br/>
traumschule verification: fix formatting

traumschule authored 5 years ago

47)     <a href="https://en.wikipedia.org/wiki/Digital_signature">
48)     https://en.wikipedia.org/wiki/Digital_signature</a>.</p>
49) 
traumschule WIP verification: improve w...

traumschule authored 5 years ago

50)     <p class="hint">(Click on each headline to show or hide the section.)</p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

51)   </article>
52)  </div>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

53) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

54) <!-- Motivation -->
55)  <div>
56)    <input id="ac-1" name="accordion-1" type="checkbox" />
57)    <label for="ac-1">
58)     <a class="nav" title="link here" href="#Why-verify-signature">&#9668;</a>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

59)     <h3><a name="Why-verify-signature">Always verify the signature of
60)         downloaded files</a></h3>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

61)     <hr>
traumschule verification: fix formatting

traumschule authored 5 years ago

62)     <p>
63)     How do you know that the Tor program you have is really the one we made?
traumschule WIP verification: improve w...

traumschule authored 5 years ago

64)     Digital signatures ensure that the package you are downloading was created
65)     by our <a href="<>page about/corepeople>">developers</a>. It uses a
66)     cryptographic mechanism to ensure that the software package that you have
67)     just downloaded is authentic.
68)     <span class="hint">(click to toggle)</span></p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

69)    </label>
70)    <article class="ac-small">
71) 
traumschule verification: fix formatting

traumschule authored 5 years ago

72)     <p>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

73)     For many Tor users it is important to verify that the Tor software is
74)     authentic as they have very real adversaries who might try to give them a
75)     fake version of Tor.
traumschule verification: fix formatting

traumschule authored 5 years ago

76)     </p>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

77) 
traumschule verification: fix formatting

traumschule authored 5 years ago

78)     <p>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

79)     If the Tor package has been modified by some attacker it is not safe to use
80)     it. It doesn't matter how secure and anonymous Tor is if you're not running
81)     the real Tor.
traumschule verification: fix formatting

traumschule authored 5 years ago

82)     </p>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

83) 
traumschule verification: fix formatting

traumschule authored 5 years ago

84)     <p>
85)     Before you go ahead and download something, there are a few extra steps you
86)     should take to make sure you have downloaded an authentic version of Tor.
87)     </p>
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

88) 
89)     <h4>Always download Tor from torproject.org</h4>
90) 
traumschule verification: fix formatting

traumschule authored 5 years ago

91)     <p>
92)     There are a variety of attacks that can be used to make you download a fake
traumschule WIP verification: improve w...

traumschule authored 5 years ago

93)     version of Tor. For example, an attacker could trick you into thinking some
94)     other website is a great place to download Tor. You should always download
95)     Tor from
96)     <a href="https://www.torproject.org"><b>https</b>://www.torproject.org/</a>.
traumschule verification: fix formatting

traumschule authored 5 years ago

97)     </p>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

98) 
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

99)     <h4>Always make sure you are browsing over https</h4>
100) 
traumschule verification: fix formatting

traumschule authored 5 years ago

101)     <p>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

102)     <a href="https://www.torproject.org">https://www.torproject.org/</a> uses
103)     https. Https is the secure version of the http protocol which uses
104)     encryption and authentication between your browser and the website.
105)     This makes it much harder for the attacker to modify your download. But
106)     it's not perfect. Some places in the world block the Tor website, making
107)     users to download Tor <a href="<page docs/faq>#GetTor">somewhere else</a>.
traumschule verification: fix formatting

traumschule authored 5 years ago

108)     </p>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

109) 
traumschule verification: fix formatting

traumschule authored 5 years ago

110)     <p>
111)     Large companies sometimes force employees to use a modified browser,
traumschule WIP verification: improve w...

traumschule authored 5 years ago

112)     so the company can listen in on all their browsing. We've even
113)     <a href="https://blog.torproject.org/blog/diginotar-debacle-and-what-you-should-do-about-it">seen</a>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

114)     attackers who have the ability to trick your browser into thinking
traumschule verification: fix formatting

traumschule authored 5 years ago

115)     you're talking to the Tor website with https when you're not.
116)     </p>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

117) 
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

118)     <h4>Always verify signatures of packages you have downloaded</h4>
119) 
traumschule verification: fix formatting

traumschule authored 5 years ago

120)     <p>
121)     Some software sites list
122)     <a href="https://en.wikipedia.org/wiki/Cryptographic_hash_function">sha1
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

123)     hashes</a> alongside the software on their website, so users can
124)     verify that they downloaded the file without any errors. These
125)     "checksums" help you answer the question "Did I download this file
126)     correctly from whoever sent it to me?" They do a good job at making
127)     sure you didn't have any random errors in your download, but they
128)     don't help you figure out whether you were downloading it from the
129)     attacker. The better question to answer is: "Is this file that I
traumschule verification: fix formatting

traumschule authored 5 years ago

130)     just downloaded the file that Tor intended me to get?"
131)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

132)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
133)   </article>
134)  </div>
135) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

136) <!-- Import Tor's signing key -->
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

137)  <div>
138)   <input id="ac-2" name="accordion-2" type="checkbox" checked />
139)   <label for="ac-2">
traumschule verification: split by OS (...

traumschule authored 5 years ago

140)     <a class="nav" title="link here" href="#ImportKey">&#9668;</a>
141)     <h3><a name="ImportKey">Step 1: Import Tor's signing key</a></h3>
Roger Dingledine add another heading on veri...

Roger Dingledine authored 12 years ago

142)     <hr>
traumschule verification: fix formatting

traumschule authored 5 years ago

143)     <p>
144)     Each file on <a href="<page download/download>">our download
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

145)     page</a> is accompanied by a file with the same name as the
146)     package and the extension ".asc". These .asc files are GPG
147)     signatures. They allow you to verify the file you've downloaded
148)     is exactly the one that we intended you to get. For example,
Georg Koppen Bug 13407: Update signature...

Georg Koppen authored 9 years ago

149)     torbrowser-install-<version-torbrowserbundle>_en-US.exe is accompanied by
150)     torbrowser-install-<version-torbrowserbundle>_en-US.exe.asc. For a list
traumschule verification: fix formatting

traumschule authored 5 years ago

151)     of which developer signs which package, see our
152)     <a href="<page docs/signing-keys>">signing keys</a> page.
153)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

154)   </label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

155)   <article class="ac-box">
traumschule WIP verification: improve w...

traumschule authored 5 years ago

156) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

157)    <p><span class="hint">Choose your operating system:</span>
158)    <label for="ac-2-1"><a name="KeyWindows">&#9658; Windows</a></label>
traumschule verification: apply few mor...

traumschule authored 5 years ago

159)    <label for="ac-2-2"><a name="KeyMacOS">&#9658; macOS</a></label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

160)    <label for="ac-2-3"><a name="KeyLinux">&#9658; Linux</a></label>
traumschule verification: add rudimenta...

traumschule authored 5 years ago

161)    <label for="ac-2-4"><a name="KeyAndroid">&#9658; Android</a></label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

162)    </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

163) <!-- Windows -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

164)   <div>
165)    <input id="ac-2-1" name="accordion-2" type="radio" checked />
166)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

167)     <h3>Import OpenPGP key on Windows</h3>
traumschule verification: fix formatting

traumschule authored 5 years ago

168)     <p>
169)     First of all you need to have GnuPG installed before you can verify
170)     signatures.
171)     <br/>
172)     Download it from
173)     <a href="https://gpg4win.org/download.html">https://gpg4win.org/download.html</a>.
174)     </p>
175)     <p>
176)     Once it's installed, use GnuPG to import the key that signed your
hiromipaw Edits instruction on how to...

hiromipaw authored 6 years ago

177)     package. In order to verify the signature you will need to type a few commands
178)     in windows command-line, <i>cmd.exe</i>.
traumschule verification: fix formatting

traumschule authored 5 years ago

179)     </p>
180)     <p>
181)     The Tor Browser team signs Tor Browser releases. Import its key
182)     (0x4E2C6E8793298290) by starting <i>cmd.exe</i> and typing:
183)     </p>
traumschule rerender css

traumschule authored 5 years ago

184)     <pre>
185)     > gpg.exe --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
186)     </pre>
traumschule verification: fix formatting

traumschule authored 5 years ago

187)     <p>
traumschule verification: split by OS (...

traumschule authored 5 years ago

188)    </article>
189)   </div>
traumschule verification: apply few mor...

traumschule authored 5 years ago

190) <!-- macOS -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

191)   <div>
192)    <input id="ac-2-2" name="accordion-2" type="radio" />
193)    <article class="ac-os">
traumschule verification: apply few mor...

traumschule authored 5 years ago

194)     <h3>Import OpenPGP key on macOS</h3>
traumschule verification: split by OS (...

traumschule authored 5 years ago

195)     <p>
196)     You need to have GnuPG installed before you can verify
197)     signatures. Install it from
198)     <a href="https://www.gpgtools.org/">https://www.gpgtools.org/</a>.
199)     </p>
200) 
201)     <p>The next step is to use GnuPG to import the key that signed
202)     your package. The Tor Browser team signs Tor Browser releases. Import its
traumschule verification: improve consi...

traumschule authored 5 years ago

203)     key (0x4E2C6E8793298290) by starting the terminal under
204)     "Applications/Utilities" and typing:</p>
traumschule rerender css

traumschule authored 5 years ago

205)     <pre>
206)     $ gpg --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
207)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

208)     <p>
209)    </article>
210)   </div>
211) <!-- Linux -->
212)   <div>
213)    <input id="ac-2-3" name="accordion-2" type="radio" />
214)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

215)     <h3>Import OpenPGP key on Linux</h3>
traumschule verification: split by OS (...

traumschule authored 5 years ago

216)     <p>
217)     You need to have GnuPG installed before you can verify
traumschule verification: improve consi...

traumschule authored 5 years ago

218)     signatures. It is probably already installed on your
traumschule verification: split by OS (...

traumschule authored 5 years ago

219)     system, as most Linux distributions come with it preinstalled.
220)     </p>
221) 
traumschule verification: add rudimenta...

traumschule authored 5 years ago

222)     <p>
223)     The next step is to use GnuPG to import the key that signed
224)     your package. The Tor Browser team signs Tor Browser releases. Import its
225)     key (0x4E2C6E8793298290) by starting the terminal and typing:</p>
226)     <pre>
227)     $ gpg --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
228)     </pre>
229)     <p>
230)    </article>
231)   </div>
232) <!-- Android -->
233)   <div>
234)    <input id="ac-2-4" name="accordion-2" type="radio" />
235)    <article class="ac-os">
236)     <h3>Import OpenPGP key on Android</h3>
237) 
238)     <p>
239)     To show the signature of your applications you need the app Checkey. It can
240)     be installed from
241)     <a href="https://f-droid.org/en/packages/info.guardianproject.checkey">​F-Droid</a>.
242) 
243)     <p><!-- TODO copied from linux, needs to be rewritten -->
244)     You need to have GnuPG installed before you can verify
245)     signatures. It is probably already installed on your
246)     system, as most Linux distributions come with it preinstalled.
247)     </p>
248) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

249)     <p>
250)     The next step is to use GnuPG to import the key that signed
251)     your package. The Tor Browser team signs Tor Browser releases. Import its
252)     key (0x4E2C6E8793298290) by starting the terminal and typing:</p>
traumschule rerender css

traumschule authored 5 years ago

253)     <pre>
254)     $ gpg --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
255)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

256)     <p>
257)    </article>
258)   </div>
traumschule verification: improve consi...

traumschule authored 5 years ago

259) <!-- all OS -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

260)   <div>
261)     <p>
traumschule verification: fix formatting

traumschule authored 5 years ago

262)     After importing the key, you can verify that the fingerprint
263)     is correct:
264)     </p>
traumschule rerender css

traumschule authored 5 years ago

265)     <pre>
266)     gpg --fingerprint 0x4E2C6E8793298290
267)     </pre>
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

268)     <p>You should see:</p>
269)     <pre>
traumschule update gpg fingerprint outp...

traumschule authored 5 years ago

270) pub   rsa4096/0x4E2C6E8793298290 2014-12-15 [C] [expires: 2020-08-24]
271)       Key fingerprint = EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
traumschule verification: fix formatting

traumschule authored 5 years ago

272) uid                   [ unknown] Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;
traumschule update gpg fingerprint outp...

traumschule authored 5 years ago

273) sub   rsa4096/0xD1483FA6C3C07136 2016-08-24 [S] [expires: 2018-08-24]
274)       Key fingerprint = A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
275) sub   rsa4096/0xEB774491D9FF06E2 2018-05-26 [S] [expires: 2020-09-12]
276)       Key fingerprint = 1107 75B5 D101 FB36 BC6C  911B EB77 4491 D9FF 06E2
traumschule verification: fix formatting

traumschule authored 5 years ago

277)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

278)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
279)   </div>
traumschule verification: improve consi...

traumschule authored 5 years ago

280)  </article><!-- END ac-box -->
281) </div><!-- END step 1 -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

282) 
283) <!-- Verifiy with OpenPGP signature -->
284) <div>
285)  <input id="ac-3" name="accordion-3" type="checkbox" />
286)  <label for="ac-3">
287)     <a class="nav" title="link here" href="#VerifySignature">&#9668;</a>
traumschule rerender css

traumschule authored 5 years ago

288)     <h3><a name="VerifySignature">Step 2: Verification with OpenGPG signature</a></h3>
traumschule verification: split by OS (...

traumschule authored 5 years ago

289)     <hr>
290)     <p>This section explains how to verify the downloaded file's digital
291)     signature on different operating systems. Please notice that a signature is
292)     dated the moment the package has been signed. Therefore every time a new
293)     file is uploaded a new signature is generated with a different date. As
294)     long as you have verified the signature you should not worry that the
295)     reported date may vary.
296)     </p>
297)   </label>
298)   <article class="ac-box">
299)    <p><span class="hint">Choose your operating system:</span>
300)    <label for="ac-3-1"><a name="VerifyWindows">&#9658; Windows</a></label>
traumschule verification: apply few mor...

traumschule authored 5 years ago

301)    <label for="ac-3-2"><a name="VerifyMacOS">&#9658; macOS</a></label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

302)    <label for="ac-3-3"><a name="VerifyLinux">&#9658; Linux</a></label>
traumschule verification: add rudimenta...

traumschule authored 5 years ago

303)    <label for="ac-3-3"><a name="VerifyAndroid">&#9658; Android</a></label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

304)    </p>
305)    <p>
306)    If you haven't already, <a href="<page download/download>">download</a>
307)    the files you are interested in.
308)    </p>
309) <!-- Windows -->
310)   <div>
311)    <input id="ac-3-1" name="accordion-3" type="radio" checked />
312)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

313)     <h3>Verify with OpenPGP signature on Windows</h3>
traumschule verification: fix formatting

traumschule authored 5 years ago

314)     <p>
315)     To verify the signature of the package you downloaded, you will need
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

316)     to download the ".asc" file as well. Assuming you downloaded the
traumschule verification: fix formatting

traumschule authored 5 years ago

317)     package and its signature to your Desktop, run:
318)     </p>
traumschule rerender css

traumschule authored 5 years ago

319)     <pre>
320)     > gpg.exe --verify C:\Users\Alice\Desktop\torbrowser-install-<version-torbrowserbundle>_en-US.exe.asc
321)     </pre>
322) 
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

323)     <p>Please substitute "Alice" with your own username.</p>
traumschule verification: fix formatting

traumschule authored 5 years ago

324)     <p>The output should say "Good signature":</p>
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

325)     <pre>
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

326) gpg: assuming signed data in 'torbrowser-install-<version-torbrowserbundle>_en-US.exe'
327) gpg: Signature made Wed 15 Nov 2017 05:52:38 PM CET
328) gpg:                using RSA key 0xD1483FA6C3C07136
traumschule verification: fix formatting

traumschule authored 5 years ago

329) gpg: Good signature from "Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;" [unknown]
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

330) gpg: WARNING: This key is not certified with a trusted signature!
331) gpg:          There is no indication that the signature belongs to the owner.
332) Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
333)      Subkey fingerprint: A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
traumschule verification: fix formatting

traumschule authored 5 years ago

334)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

335)    </article>
336)   </div>
traumschule verification: apply few mor...

traumschule authored 5 years ago

337) <!-- macOS -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

338)   <div>
339)    <input id="ac-3-2" name="accordion-3" type="radio" />
340)    <article class="ac-os">
traumschule verification: apply few mor...

traumschule authored 5 years ago

341)     <h3>Verify with OpenPGP signature on macOS</h3>
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

342)     <p>
traumschule verification: split by OS (...

traumschule authored 5 years ago

343)     To verify the signature of the package you downloaded, you will need
344)     to download the ".asc" file as well. Assuming you downloaded the
345)     package and its signature to your Downloads folder, run:
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

346)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

347) 
traumschule verification: improve consi...

traumschule authored 5 years ago

348)     <p>
traumschule verification: apply few mor...

traumschule authored 5 years ago

349)     The easiest way to verify an ".asc" file is to open it by double-clicking
traumschule verification: fix wording a...

traumschule authored 5 years ago

350)     on it, or typing command-O. Alternatively type into the terminal:
traumschule verification: improve consi...

traumschule authored 5 years ago

351)     </p>
352) 
traumschule rerender css

traumschule authored 5 years ago

353)     <pre>
354)     $ gpg --verify ~/Downloads/TorBrowser-<version-torbrowserbundleosx64>_en-US.dmg{.asc*,}
355)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

356) 
357)     <p>The output should say "Good signature":</p>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

358) 
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

359)     <pre>
traumschule verification: improve consi...

traumschule authored 5 years ago

360) gpg: assuming signed data in 'TorBrowser-<version-torbrowserbundleosx64>_en-US.dmg'
traumschule verification: split by OS (...

traumschule authored 5 years ago

361) gpg: Signature made Wed 15 Nov 2017 05:52:38 PM CET
362) gpg:                using RSA key 0xD1483FA6C3C07136
363) gpg: Good signature from "Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;" [unknown]
364) gpg: WARNING: This key is not certified with a trusted signature!
365) gpg:          There is no indication that the signature belongs to the owner.
366) Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
367)      Subkey fingerprint: A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
traumschule update gpg fingerprint outp...

traumschule authored 5 years ago

368)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

369)    </article>
370)   </div>
371) <!-- Linux -->
372)   <div>
373)    <input id="ac-3-3" name="accordion-3" type="radio" />
374)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

375)     <h3>Verify with OpenPGP signature on Linux</h3>
traumschule verification: improve consi...

traumschule authored 5 years ago

376) 
377)     <p>For Tor (not Tor Browser) packages:
378)     On <b>Debian</b> you should read the instructions on
379)     <a href="<page docs/debian>#packages">importing these keys to apt</a>
380)     to use our package repository instead.
381)     If you're using the <b>RPMs</b>, you can manually verify the signatures by
382)     <pre>rpm -K filename.rpm</pre>
383)     </p>
384) 
traumschule verification: fix formatting

traumschule authored 5 years ago

385)     <p>
386)     To verify the signature of the package you downloaded, you will need
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

387)     to download the ".asc" file as well. Assuming you downloaded the
traumschule verification: fix formatting

traumschule authored 5 years ago

388)     package and its signature to your Downloads folder, run:
389)     </p>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

390) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

391)     <p>Change 64 to 32 if you have the 32-bit package:</p>
traumschule verification: fix formatting

traumschule authored 5 years ago

392) 
traumschule rerender css

traumschule authored 5 years ago

393)     <pre>
394)     $ gpg --verify tor-browser-linux64-<version-torbrowserbundlelinux64>_en-US.tar.xz.asc
395)     </pre>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

396) 
Georg Koppen Bug 15253: Add Tor Browser...

Georg Koppen authored 9 years ago

397)     <p>The output should say "Good signature":</p>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

398) 
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

399)     <pre>
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

400) gpg: assuming signed data in 'tor-browser-linux64-<version-torbrowserbundlelinux64>_en-US.tar.xz'
401) gpg: Signature made Wed 15 Nov 2017 05:52:38 PM CET
402) gpg:                using RSA key 0xD1483FA6C3C07136
traumschule verification: fix formatting

traumschule authored 5 years ago

403) gpg: Good signature from "Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;" [unknown]
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

404) gpg: WARNING: This key is not certified with a trusted signature!
405) gpg:          There is no indication that the signature belongs to the owner.
406) Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
407)      Subkey fingerprint: A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
408)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

409) 
410)   </article>
411)  </div>
traumschule verification: add rudimenta...

traumschule authored 5 years ago

412) <!-- Android -->
413)   <div>
414)    <input id="ac-3-4" name="accordion-3" type="radio" />
415)    <article class="ac-os">
416)     <h3>Verify with OpenPGP signature on Android</h3>
417) 
418)     <p>
419)     To verify the signature of the package you downloaded, you will need
420)     to download the ".asc" file as well. Assuming you downloaded the
421)     package and its signature to your Downloads folder, run:
422)     </p>
423) 
424)     <pre>
425)     $ jarsigner -verify -verbose -certs tor-browser-android-arm-<version-torbrowserbundleandroid>.apk
426)     </pre>
427) 
428)     <p>or using <a hef="https://developer.android.com/studio/command-line/apksigner">apksigner</a>:
429) 
430)     <pre>
431)     $ apksigner verify --print-certs tor-browser-android-arm-<version-torbrowserbundleandroid>.apk
432)     </pre>
433) 
434)     <p>The output should say "Good signature":</p>
435)     <!-- TODO this is the output i got verifying the signature with gpg -->
436)     <pre>
437) gpg: assuming signed data in 'tor-browser-android-arm-1.0a1.apk'
438) gpg: Signature made Thu 06 Sep 2018 08:38:27 PM CEST
439) gpg:                using RSA key 0xEB774491D9FF06E2
440) gpg: Good signature from "Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;" [unknown]
441) gpg: WARNING: This key is not certified with a trusted signature!
442) gpg:          There is no indication that the signature belongs to the owner.
443) Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
444)      Subkey fingerprint: 1107 75B5 D101 FB36 BC6C  911B EB77 4491 D9FF 06E2
445)     </pre>
446)   </article>
447)  </div>
448) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

449) <!-- END OS specific sections -->
traumschule verification: fix formatting

traumschule authored 5 years ago

450)     <p>
451)     Currently valid subkey fingerprints are:
452)     </p>
Georg Koppen Bug 15253: Add Tor Browser...

Georg Koppen authored 9 years ago

453)     <pre>
454)     5242 013F 02AF C851 B1C7  36B8 7017 ADCE F65C 2036
Georg Koppen Add new subkeys for Tor Bro...

Georg Koppen authored 7 years ago

455)     BA1E E421 BBB4 5263 180E  1FC7 2E1A C68E D408 14E0
traumschule verification: fix formatting

traumschule authored 5 years ago

456)     A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
457)     </pre>
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

458)     <p>
459)     Notice that there is a warning because you haven't assigned a trust
460)     index to this person. This means that GnuPG verified that the key made
461)     that signature, but it's up to you to decide if that key really belongs
traumschule verification: apply few mor...

traumschule authored 5 years ago

462)     to the developer. Since international travel to meet the developer might be
463)     unfeasable you can ignore this warning or try to use another device or
464)     another internet connection to compare the key fingerprints listed
traumschule verification: fix wording a...

traumschule authored 5 years ago

465)     <a href="<page docs/signing-keys>">here</a>.
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

466)     </p>
Georg Koppen Bug 15253: Add Tor Browser...

Georg Koppen authored 9 years ago

467) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

468)     <p>To learn more about GnuPG see
469)     <a href="https://www.gnupg.org/documentation/">https://www.gnupg.org/documentation/</a>
ilv Combined osx and linux inst...

ilv authored 9 years ago

470)     </p>
Roger Dingledine explain that linux users ar...

Roger Dingledine authored 12 years ago

471) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

472)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
traumschule verification: improve consi...

traumschule authored 5 years ago

473)   </article><!-- END ac-box -->
474)  </div><!-- END step 2 -->
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

475) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

476) <!-- Verify checksums -->
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

477)  <div>
traumschule verification: split by OS (...

traumschule authored 5 years ago

478)   <input id="ac-4" name="accordion-4" type="checkbox" />
479)    <label for="ac-4">
480)     <a class="nav" title="link here" href="#ChecksumVerification">&#9668;</a>
traumschule verification: improve consi...

traumschule authored 5 years ago

481)     <h3><a id="ChecksumVerification">Step 3: Verify the file integrity
482)     with a sha256 checksums</a></h3>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

483)     <hr>
traumschule verification: split by OS (...

traumschule authored 5 years ago

484)     <p>
485)     Build reproducibility is a
486)     <a href="https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise">
487)     security property</a> of Tor Browser 3.0 and later. Anyone can build
488)     Tor Browser on their own machine and produce a binary that is bit-for-bit
489)     identical to the binary we offer on the download page.
490)     Fortunately, it is not necessary for everyone to build Tor Browser locally
491)     to get this security. Verifying and comparing the signed list of
492)     <a href="https://en.wikipedia.org/wiki/Cryptographic_hash">hashes</a>
493)     will confirm that multiple people have built Tor Browsers identical to the
494)     download.
495)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

496)    </label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

497)   <article>
498)     <p>
traumschule verification: improve consi...

traumschule authored 5 years ago

499)     Note: This process does not work on macOS yet due to Apple's codesigning
500)     requirement. See <a href="#MARVerification">MAR verification</a> below.
traumschule verification: split by OS (...

traumschule authored 5 years ago

501)     </p>
502)      <ul>
503)       <li>
504)       <a href="<page download/download>">Download</a> the Tor Browser package,
505)       the <tt>sha256sums-unsigned-build.txt</tt> file, and the
506)       <tt>sha256sums-unsigned-build.txt.asc</tt> signature file.
Georg Koppen Update advanced verificatio...

Georg Koppen authored 8 years ago

507)       They can all be found in the same directory under
508)       <a href="https://www.torproject.org/dist/torbrowser/">
traumschule verification: improve consi...

traumschule authored 5 years ago

509)       https://www.torproject.org/dist/torbrowser/</a>, for example in
510)       '<version-torbrowserbundlelinux64>'
traumschule verification: split by OS (...

traumschule authored 5 years ago

511)       for Tor Browser <version-torbrowserbundlelinux64>.
traumschule verification: fix formatting

traumschule authored 5 years ago

512)       </li>
513)       <li>
traumschule verification: improve consi...

traumschule authored 5 years ago

514)       Retrieve the signers' GPG key with following ID with the method
515)       <a href="#ImportKey">described above</a>:<br/>
traumschule rerender css

traumschule authored 5 years ago

516)       (Other developers' key IDs can be found
517)       <a href="<page docs/signing-keys>">here)</a>
518)       </li>
traumschule verification: split by OS (...

traumschule authored 5 years ago

519)      </ul>
traumschule rerender css

traumschule authored 5 years ago

520)      <pre>
521)      0x4E2C6E8793298290
522)      </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

523)   </article>
524)   <article class="ac-box">
525)   
526)    <p><span class="hint">Choose your operating system:</span>
527)    <span>
528) 
529)     <label for="ac-4-1"><a name="ChecksumsWindows">&#9658; Windows</a></label>
530)    </span>
531)    <span>
532)     <label for="ac-4-3"><a name="ChecksumsLinux">&#9658; Linux</a></label>
533)    </span>
534)    </p>
535) 
536) <!-- Windows -->
537)   <div>
traumschule rerender css

traumschule authored 5 years ago

538)     <input id="ac-4-1" name="accordion-4" type="radio" checked />
traumschule verification: split by OS (...

traumschule authored 5 years ago

539)    <article class="ac-os">
540)     <h3>Verififcation with a checksum on Windows</h3>
541)     <h4>Verify the signature of the checksum file</h4>
542)     <p>
543)     Verify the sha256sums-unsigned-build.txt file by executing this command:
544)     </p>
traumschule rerender css

traumschule authored 5 years ago

545)     <pre>
546)     > gpg.exe --verify sha256sums-unsigned-build.txt.asc sha256sums-unsigned-build.txt
traumschule verification: split by OS (...

traumschule authored 5 years ago

547)     </pre>
548) 
549)     <p>
550)     You should see a message like
551)     <pre>"Good signature from &lt;DEVELOPER NAME&gt;"</pre>.
552)     If you don't, there is a problem. Try these steps again.
553)     </p>
traumschule verification: fix formatting

traumschule authored 5 years ago

554) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

555)     <h4>Verify the file integrity of Tor Browser</h4>
traumschule rerender css

traumschule authored 5 years ago

556)     <p>
557)     If you want to verify a Windows Tor Browser package you need to first
558)     strip off the authenticode signature of it.<br/>
559)     Tools that can be used for this purpose are
560)     <a href="http://osslsigncode.sourceforge.net">osslsigncode</a> and
561)     <a href="http://forum.xda-developers.com/showthread.php?t=416175">delcert.exe</a>.
562)     Assuming you have built e.g. <tt>osslsigncode</tt> on a Linux computer you can enter
563)     </p>
564)     <pre>
565)     > C:\path\to\osslsigncode remove-signature &#92;
566)         where\you\saved\\&lt;TOR BROWSER FILE NAME&gt;.exe &lt;TOR BROWSER FILE NAME&gt;.exe
567)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

568) 
traumschule rerender css

traumschule authored 5 years ago

569)     <p>Now use the sha256sum of the Tor Browser package with the
570)     <a href="http://md5deep.sourceforge.net/">hashdeep utility</a> and run
571)     </p>
572)     <pre>
573)     C:\location\of\hashdeep -c sha256sum &lt;TOR BROWSER FILE NAME&gt;.exe
574)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

575)    </article>
576)   </div>
traumschule verification: fix formatting

traumschule authored 5 years ago

577) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

578) <!-- Linux -->
traumschule rerender css

traumschule authored 5 years ago

579)   <div>
580)    <input id="ac-4-3" name="accordion-4" type="radio" />
traumschule verification: split by OS (...

traumschule authored 5 years ago

581)    <article class="ac-os ac-4-3">
582)     <h3>Verififcation with a checksum on Linux</h3>
583)     <h4>Verify the signature of the checksum file</h4>
584)     <ul>
585)      <li>Verify the sha256sums-unsigned-build.txt with this command:</li>
traumschule rerender css

traumschule authored 5 years ago

586)      <pre>$ gpg --verify sha256sums-unsigned-build.txt.asc sha256sums-unsigned-build.txt</pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

587) 
traumschule rerender css

traumschule authored 5 years ago

588)      <li><!-- TODO which OSs are meant here? -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

589)      In case your operating system is adding the .txt extension automatically
590)      to the SHA256 sums signature file strip it again by running
traumschule rerender css

traumschule authored 5 years ago

591)      </li>
592)      <pre>$ mv sha256sums-unsigned-build.txt.asc.txt sha256sums-unsigned-build.txt.asc</pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

593) 
traumschule rerender css

traumschule authored 5 years ago

594)      <li>
traumschule verification: split by OS (...

traumschule authored 5 years ago

595)      Verify the sha256sums-unsigned-build.txt file by executing this command:
596)      </li>
traumschule rerender css

traumschule authored 5 years ago

597)      <pre>$ gpg --verify sha256sums-unsigned-build.txt.asc sha256sums-unsigned-build.txt</pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

598) 
599)      <li>
traumschule rerender css

traumschule authored 5 years ago

600)      If you don't see a message like this, there is a problem
601)      and you should try these steps again:
traumschule verification: split by OS (...

traumschule authored 5 years ago

602)      </li>
traumschule rerender css

traumschule authored 5 years ago

603)      <pre>"Good signature from &lt;DEVELOPER NAME&gt;"</pre>.
traumschule verification: split by OS (...

traumschule authored 5 years ago

604)     </ul>
605) 
606)     <h4>Verify the file integrity of Tor Browser</h4>
607)     <ul>
608)      <li>Calculate the SHA-256 checksum of Tor Browser:</li>
traumschule rerender css

traumschule authored 5 years ago

609)      <pre>$ sha256sum &lt;TOR BROWSER FILE NAME&gt;.tar.gz</pre>
traumschule verification: fix formatting

traumschule authored 5 years ago

610) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

611)      <li>You will see a string of letters and numbers.</li>
traumschule verification: fix formatting

traumschule authored 5 years ago

612) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

613)      <li>Open <tt>sha256sums-unsigned-build.txt</tt> in a text editor.</li>
traumschule verification: fix formatting

traumschule authored 5 years ago

614) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

615)      <li>Locate the name of the Tor Browser file you downloaded.</li>
traumschule verification: fix formatting

traumschule authored 5 years ago

616) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

617)      <li>
618)      Compare the string of letters and numbers to the left of your filename with
619)      the string of letters and numbers that appeared on your command line.
620)      If they match, you've successfully verified the build.
621)      </li>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

622)     </ul>
traumschule rerender css

traumschule authored 5 years ago

623)     </article>
624)    </div>
traumschule verification: add rudimenta...

traumschule authored 5 years ago

625) <!-- Android -->
626)   <div>
627)    <input id="ac-4-4" name="accordion-4" type="radio" />
628)    <article class="ac-os ac-4-4">
629)     <h3>Verififcation with a checksum on Android</h3>
630) 
631)     <p><!-- TODO -->This part needs to be written.
632)     <a href="https://trac.torproject.org/projects/tor/ticket/27514">Please help!</a>
633)     </p>
634)    </article>
635)   </div>
traumschule verification: split by OS (...

traumschule authored 5 years ago

636)    <a class="nav" href="#TOC" title="go up">&uarr;</a>
traumschule verification: improve consi...

traumschule authored 5 years ago

637)   </article><!-- END ac-box -->
638)  </div><!-- END step 3 -->
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

639) 
640) <!-- MAR verification -->
641)  <div>
traumschule verification: split by OS (...

traumschule authored 5 years ago

642)   <input id="ac-5" name="accordion-5" type="checkbox" />
643)    <label for="ac-5">
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

644)     <a class="nav" title="link here" href="#MARVerification">&#9668;</a>
traumschule verification: split by OS (...

traumschule authored 5 years ago

645)     <h3><a name="MARVerification">MAR verification</a></h3>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

646)     <hr>
traumschule verification: split by OS (...

traumschule authored 5 years ago

647)     <p>
648)     Starting with Tor Browser 4.5a4 we sign our MAR files which helps
Georg Koppen Bug 14304: Document strippi...

Georg Koppen authored 9 years ago

649)     securing our update process. The downside of this is the need for additional
650)     instructions to verify that the MAR files we ship are indeed the ones we
traumschule verification: split by OS (...

traumschule authored 5 years ago

651)     produced with our rbm setup.
652)     </p>
653)    </label>
654)    <article class="ac-small">
655)     <p>
656)     Assuming the verification happens on a Linux computer one first needs the
Georg Koppen Bug 14304: Document strippi...

Georg Koppen authored 9 years ago

657)     <tt>mar-tools-linux*.zip</tt> out of the <tt>gitian-builder/inputs</tt>
658)     directory to remove the embedded signature(s). The steps to get the unsigned
659)     MAR file on a 64 bit Linux are</p>
660)     <pre>
traumschule rerender css

traumschule authored 5 years ago

661)     $ cd /path/to/MAR/file
662)     $ unzip /path/to/gitian-builder/inputs/mar-tools-linux64.zip
663)     $ export LD_LIBRARY_PATH=/path/to/MAR/file/mar-tools
664)     $ mar-tools/signmar -r your-signed-mar-file.mar your-unsigned-mar-file.mar</pre>
Georg Koppen Bug 14304: Document strippi...

Georg Koppen authored 9 years ago

665)     <p>Now you can compare the SHA256 sum of <tt>your-unsigned-mar-file.mar</tt>
Georg Koppen Update advanced verificatio...

Georg Koppen authored 8 years ago

666)     with the one provided in the <tt>sha265sums-unsigned-build.txt</tt> or
667)     <tt>sha256sums-unsigned-build.incremental.txt</tt> as outlined in
traumschule verification: split by OS (...

traumschule authored 5 years ago

668)     <a href="#ChekcksumVerification">Checksum verification</a> above.
669)     </p>
670)    </article>
671)  </div>
672) 
673) <!-- Troubleshooting -->
674)  <div>
675)   <input id="ac-6" name="accordion-6" type="checkbox" />
676)    <label for="ac-6">
677)     <a class="nav" title="link here" href="#Troubleshooting">&#9668;</a>
678)     <h3><a id="Troubleshooting">Troubleshooting</a></h3>
679)     <hr>
680)     <p>Does this guide work for you? Is a question missing?
681)     <a href="<page about/contact>#support">Reach out to us</a>!</p>
682)    </label>
683)    <article class="ac-small">
traumschule rerender css

traumschule authored 5 years ago

684)     <p>Send us your question!</p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

685)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
686)   </article>
687)  </div>
688) 
689) <!-- Scripts -->
690)  <div>
691)   <input id="ac-7" name="accordion-7" type="checkbox" checked />
692)    <label for="ac-7">
693)     <a class="nav" title="link here" href="#Scripts">&#9668;</a>
694)     <h3><a id="Scripts">Automate the process with a script</a></h3>
695)     <hr>
696)     <p><a href="https://github.com/isislovecruft/scripts/blob/master/verify-gitian-builder-signatures">Scripts</a>
697)     to <a href="https://tor.stackexchange.com/questions/648/how-to-verify-tor-browser-bundle-tbb-3-x">automate</a>
698)     these steps have been written, but to use them you will need to modify
699)     them yourself with the latest Tor Browser filename.</p>
traumschule verification: split by OS (...

traumschule authored 5 years ago

700)    </label>
701)    <article class="ac-small">
traumschule rerender css

traumschule authored 5 years ago

702)     <p>
703)     This needs to be explained. <a href="<page getinvolved/volunteer>">Help!</a>
704)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

705)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
706)   </article>
707)  </div>
708) </section>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

709) 
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

710)   </div>
711)   <!-- END MAINCOL -->
712)   <div id = "sidecol">
713) #include "side.wmi"
714) #include "info.wmi"
715)   </div>
716)   <!-- END SIDECOL -->
717) </div>
718) <!-- END CONTENT -->