| 
					
				 | 
			
			
				@@ -1,23 +1,26 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;tor.nsi - A basic win32 installer for Tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ; Originally written by J Doe. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+; Modified by Steve Topletz 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ; See LICENSE for licensing information 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;----------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !include "MUI.nsh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!include "LogicLib.nsh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!include "FileFunc.nsh" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!insertmacro GetParameters 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define VERSION "0.2.0.12-alpha-dev" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define INSTALLER "tor-${VERSION}-win32.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define WEBSITE "https://www.torproject.org/" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define LICENSE "LICENSE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;BIN is where it expects to find tor.exe and tor-resolve.exe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!define BIN "..\bin" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-SetCompressor /SOLID lzma 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!define BIN "..\bin" ;BIN is where it expects to find tor.exe, tor-resolve.exe, libcrypto.a and libssl.a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+SetCompressor /SOLID LZMA ;Tighter compression 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+RequestExecutionLevel user ;Updated for Vista compatibility 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 OutFile ${INSTALLER} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 InstallDir $PROGRAMFILES\Tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SetOverWrite ifnewer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Name "Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Caption "Tor ${VERSION} Setup" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 BrandingText "The Onion Router" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -31,13 +34,12 @@ VIAddVersionKey "LegalCopyright" " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 VIAddVersionKey "FileVersion" "${VERSION}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!define MUI_WELCOMEPAGE_TITLE "Welcome to the Tor ${VERSION} Setup Wizard" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!define MUI_WELCOMEPAGE_TITLE "Welcome to the Tor Setup Wizard" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Tor ${VERSION}.\r\n\r\nIf you have previously installed Tor and it is currently running, please exit Tor first before continuing this installation.\r\n\r\n$_CLICK" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_ABORTWARNING 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-!define MUI_HEADERIMAGE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_FINISHPAGE_RUN "$INSTDIR\tor.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_FINISHPAGE_LINK "Visit the Tor website for the latest updates." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !define MUI_FINISHPAGE_LINK_LOCATION ${WEBSITE} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,8 +58,12 @@ VIAddVersionKey "FileVersion" "${VERSION}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !insertmacro MUI_UNPAGE_FINISH 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !insertmacro MUI_LANGUAGE "English" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Var configdir 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Var configfile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Var CONFIGDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Var CONFIGFILE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function .onInit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ParseCmdLine 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;Sections 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;-------- 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -65,89 +71,48 @@ Var configfile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Section "Tor" Tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;Files that have to be installed for tor to run and that the user 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;cannot choose not to install 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   SectionIn RO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   SetOutPath $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "${BIN}\tor.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "${BIN}\tor-resolve.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "${BIN}\tor.ico" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   WriteIniStr "$INSTDIR\Tor Website.url" "InternetShortcut" "URL" ${WEBSITE} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	SectionIn RO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	SetOutPath $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ExtractBinaries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ExtractIcon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	WriteINIStr "$INSTDIR\Tor Website.url" "InternetShortcut" "URL" ${WEBSITE} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   StrCpy $configfile "torrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   StrCpy $configdir $APPDATA\Tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	StrCpy $CONFIGFILE "torrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	StrCpy $CONFIGDIR $APPDATA\Tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;   ;If $APPDATA isn't valid here (Early win95 releases with no updated 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;   ; shfolder.dll) then we put it in the program directory instead. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;   StrCmp $APPDATA "" "" +2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;      StrCpy $configdir $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   SetOutPath $configdir 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ;If there's already a torrc config file, ask if they want to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ;overwrite it with the new one. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   IfFileExists "$configdir\torrc" "" endiftorrc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      MessageBox MB_ICONQUESTION|MB_YESNO "You already have a Tor config file.$\r$\nDo you want to overwrite it with the default sample config file?" IDNO yesreplace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      Delete $configdir\torrc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      Goto endiftorrc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     yesreplace: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      StrCpy $configfile "torrc.sample" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   endiftorrc: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File /oname=$configfile "..\src\config\torrc.sample" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;      StrCpy $CONFIGDIR $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	SetOutPath $CONFIGDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;If there's already a torrc config file, ask if they want to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;overwrite it with the new one. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${If} ${FileExists} "$CONFIGDIR\torrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		MessageBox MB_ICONQUESTION|MB_YESNO "You already have a Tor config file.$\r$\nDo you want to overwrite it with the default sample config file?" IDYES Yes IDNO No 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Yes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Delete $CONFIGDIR\torrc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Goto Next 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		No: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			StrCpy $CONFIGFILE "torrc.sample" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Next: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${EndIf} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File /oname=$CONFIGFILE "..\src\config\torrc.sample" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Section "Documents" Docs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   SetOutPath "$INSTDIR\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ;File "doc\FAQ" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\HACKING" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\address-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\control-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\control-spec-v0.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\dir-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\dir-spec-v1.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\path-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\rend-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\socks-extensions.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\tor-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\spec\version-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ; WEBSITE-FILES-HERE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\tor-resolve.html" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\tor-reference.html" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\doc\design-paper\tor-design.pdf" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\README" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\AUTHORS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\ChangeLog" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   File "..\LICENSE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ExtractDocuments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;Section "TorButton for FireFox" Torbutton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;   SetOutPath $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;   File "${BIN}\torbutton-1.0.4-fx+tb.xpi" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;   ReadRegStr $1 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe" "Path" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;   StrCmp $1 "" +2 0 ; if Path is empty or null, then skip to an error, otherwise proceed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;	Exec '"$1firefox.exe" -install-global-extension "$INSTDIR\torbutton-1.0.4-fx+tb.xpi"' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;	DetailPrint "Torbutton installed" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;	Goto +2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;	MessageBox MB_OK|MB_ICONSTOP "FireFox wasn't found on your system.  Not installing Torbutton." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;	DetailPrint "Firefox NOT found." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;SectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SubSection /e "Shortcuts" Shortcuts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Section "Start Menu" StartMenu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   SetOutPath $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   IfFileExists "$SMPROGRAMS\Tor\*.*" "" +2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      RMDir /r "$SMPROGRAMS\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   CreateDirectory "$SMPROGRAMS\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   CreateShortCut "$SMPROGRAMS\Tor\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico"  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   CreateShortCut "$SMPROGRAMS\Tor\Torrc.lnk" "Notepad.exe" "$configdir\torrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   CreateShortCut "$SMPROGRAMS\Tor\Tor Website.lnk" "$INSTDIR\Tor Website.url" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   CreateShortCut "$SMPROGRAMS\Tor\Uninstall.lnk" "$INSTDIR\Uninstall.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   IfFileExists "$INSTDIR\Documents\*.*" "" endifdocs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      CreateDirectory "$SMPROGRAMS\Tor\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Manual.lnk" "$INSTDIR\Documents\tor-reference.html" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Documentation.lnk" "$INSTDIR\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Specification.lnk" "$INSTDIR\Documents\tor-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  SetOutPath $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ${If} ${FileExists} "$SMPROGRAMS\Tor\*.*" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    RMDir /r "$SMPROGRAMS\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ${EndIf} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Call CreateTorLinks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ${If} ${FileExists} "$INSTDIR\Documents\*.*" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Call CreateDocLinks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ${EndIf} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    endifdocs: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -164,24 +129,7 @@ SectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SubSectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Section "Uninstall" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$DESKTOP\Tor.lnk" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\libcrypto.a" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\libssl.a" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\tor.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\tor-resolve.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\Tor Website.url" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\torrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\torrc.sample" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\tor.ico" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   StrCmp $configdir $INSTDIR +2 "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      RMDir /r $configdir 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$INSTDIR\Uninstall.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   RMDir /r "$INSTDIR\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   RMDir $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   RMDir /r "$SMPROGRAMS\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   RMDir /r "$APPDATA\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Delete "$SMSTARTUP\Tor.lnk" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   Call un.InstallPackage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Section -End 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -193,11 +141,127 @@ Section -End 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SectionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  !insertmacro MUI_DESCRIPTION_TEXT ${Tor} "The core executable and config files needed for Tor to run." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  !insertmacro MUI_DESCRIPTION_TEXT ${Docs} "Documentation about Tor." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  !insertmacro MUI_DESCRIPTION_TEXT ${ShortCuts} "Shortcuts to easily start Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  !insertmacro MUI_DESCRIPTION_TEXT ${StartMenu} "Shortcuts to access Tor and it's documentation from the Start Menu" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  !insertmacro MUI_DESCRIPTION_TEXT ${Desktop} "A shortcut to start Tor from the desktop" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  !insertmacro MUI_DESCRIPTION_TEXT ${Startup} "Launches Tor automatically at startup in a minimized window" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!insertmacro MUI_DESCRIPTION_TEXT ${Tor} "The core executable and config files needed for Tor to run." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!insertmacro MUI_DESCRIPTION_TEXT ${Docs} "Documentation about Tor." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!insertmacro MUI_DESCRIPTION_TEXT ${ShortCuts} "Shortcuts to easily start Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!insertmacro MUI_DESCRIPTION_TEXT ${StartMenu} "Shortcuts to access Tor and it's documentation from the Start Menu" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!insertmacro MUI_DESCRIPTION_TEXT ${Desktop} "A shortcut to start Tor from the desktop" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+!insertmacro MUI_DESCRIPTION_TEXT ${Startup} "Launches Tor automatically at startup in a minimized window" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !insertmacro MUI_FUNCTION_DESCRIPTION_END 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;####################Functions######################### 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ExtractBinaries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "${BIN}\tor.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "${BIN}\tor-resolve.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ExtractIcon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "${BIN}\tor.ico" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ExtractSpecs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;File "doc\FAQ" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\HACKING" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\address-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\control-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\control-spec-v0.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\dir-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\dir-spec-v1.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\path-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\rend-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\socks-extensions.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\tor-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\spec\version-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ExtractHTML 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\tor-resolve.html" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\tor-reference.html" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ExtractDesignDocs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\doc\design-paper\tor-design.pdf" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ExtractReleaseDocs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\README" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\AUTHORS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\ChangeLog" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	File "..\LICENSE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ExtractDocuments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	SetOutPath "$INSTDIR\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ExtractSpecs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ExtractHTML 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ExtractDesignDocs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call ExtractReleaseDocs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function un.InstallFiles 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$DESKTOP\Tor.lnk" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\libcrypto.a" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\libssl.a" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\tor.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\tor-resolve.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\Tor Website.url" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\torrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\torrc.sample" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\tor.ico" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$SMSTARTUP\Tor.lnk" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Delete "$INSTDIR\Uninstall.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function un.InstallDirectories 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${If} $CONFIGDIR == $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		RMDir /r $CONFIGDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${EndIf} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	RMDir /r "$INSTDIR\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	RMDir $INSTDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	RMDir /r "$SMPROGRAMS\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	RMDir /r "$APPDATA\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function un.WriteRegistry 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function un.InstallPackage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call un.InstallFiles 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call un.InstallDirectories 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Call un.WriteRegistry 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function CreateTorLinks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateDirectory "$SMPROGRAMS\Tor" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateShortCut "$SMPROGRAMS\Tor\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateShortCut "$SMPROGRAMS\Tor\Torrc.lnk" "Notepad.exe" "$CONFIGDIR\torrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateShortCut "$SMPROGRAMS\Tor\Tor Website.lnk" "$INSTDIR\Tor Website.url" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateShortCut "$SMPROGRAMS\Tor\Uninstall.lnk" "$INSTDIR\Uninstall.exe" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function CreateDocLinks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateDirectory "$SMPROGRAMS\Tor\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Manual.lnk" "$INSTDIR\Documents\tor-reference.html" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Documentation.lnk" "$INSTDIR\Documents" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Specification.lnk" "$INSTDIR\Documents\tor-spec.txt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Function ParseCmdLine 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${GetParameters} $1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${If} $1 == "-x" ;Extract All Files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		StrCpy $INSTDIR $EXEDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Call ExtractBinaries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Call ExtractDocuments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Quit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${ElseIf} $1 == "-b" ;Extract Binaries Only 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		StrCpy $INSTDIR $EXEDIR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Call ExtractBinaries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Quit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${ElseIf} $1 != "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		MessageBox MB_OK|MB_TOPMOST `${Installer} [-x|-b]$\r$\n$\r$\n  -x    Extract all files$\r$\n  -b    Extract binary files only` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Quit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	${EndIf} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+FunctionEnd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |