-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Simon Levermann
committed
Feb 18, 2014
1 parent
a29a429
commit 4293725
Showing
4 changed files
with
356 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,3 +30,4 @@ | |
*.vrb | ||
*.xdy | ||
*.tdo | ||
tox.pdf |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,177 @@ | ||
\ProvidesClass{mybeamer} | ||
\LoadClass[hyperref={pdfpagelabels=true},compress]{beamer} | ||
|
||
\usepackage[utf8]{inputenc} | ||
\usepackage[ngerman]{varioref} | ||
\usepackage[ngerman]{babel} | ||
\usepackage{ngerman} | ||
\usepackage{ifthen} | ||
|
||
\usepackage[labelformat=empty]{caption} | ||
|
||
\usepackage{listings} | ||
\usepackage{MnSymbol} % Icons for Listing | ||
\definecolor{mygreen}{rgb}{0,0.6,0} | ||
\definecolor{mygray}{rgb}{0.5,0.5,0.5} | ||
\definecolor{mymauve}{rgb}{0.58,0,0.82} | ||
\usepackage{xcolor} | ||
\definecolor{toxred}{HTML}{FE0000} | ||
\definecolor{toxblue}{HTML}{0033FF} | ||
\definecolor{tox_grey}{RGB}{127,127,127} | ||
\definecolor{tox_lightgrey}{RGB}{220,220,220} | ||
\definecolor{tox_xlightgrey}{RGB}{240,240,240} | ||
|
||
\lstset{ % | ||
backgroundcolor=\color{tox_xlightgrey}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor} | ||
basicstyle=\scriptsize, % the size of the fonts that are used for the code | ||
breakatwhitespace=true, % sets if automatic breaks should only happen at whitespace | ||
breaklines=true, % sets automatic line breaking | ||
captionpos=b, % sets the caption-position to bottom | ||
commentstyle=\color{mygreen}, % comment style | ||
deletekeywords={...}, % if you want to delete keywords from the given language | ||
escapeinside={\%*}{*)}, % if you want to add LaTeX within your code | ||
extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 | ||
keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) | ||
keywordstyle=\color{blue}, % keyword style | ||
language=Java, % the language of the code | ||
morekeywords={*,...}, % if you want to add more keywords to the set | ||
numbers=none, % where to put the line-numbers; possible values are (none, left, right) | ||
numbersep=5pt, % how far the line-numbers are from the code | ||
numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers | ||
rulecolor=\color{white}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) | ||
showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' | ||
showstringspaces=false, % underline spaces within strings only | ||
showtabs=true, % show tabs within strings adding particular underscores | ||
stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered | ||
stringstyle=\color{mymauve}, % string literal style | ||
tabsize=2, % sets default tabsize to 2 spaces | ||
title=\lstname, % show the filename of files included with \lstinputlisting; also try caption instead of title | ||
prebreak=\raisebox{0ex}[0ex][0ex] | ||
{\ensuremath{\rhookswarrow}}, | ||
%postbreak=\raisebox{0ex}[0ex][0ex] | ||
% {\ensuremath{\rcurvearrowse\space}}, | ||
literate=% | ||
{Ö}{{\"O}}1 | ||
{Ä}{{\"A}}1 | ||
{Ü}{{\"U}}1 | ||
{ß}{{\ss}}2 | ||
{ü}{{\"u}}1 | ||
{ä}{{\"a}}1 | ||
{ö}{{\"o}}1 | ||
} | ||
|
||
|
||
|
||
\beamersetuncovermixins{\opaqueness<1>{25}}{\opaqueness<1->{15}} | ||
\beamertemplatetransparentcovereddynamicmedium | ||
\setbeamertemplate{caption}[numbered] | ||
|
||
\usenavigationsymbolstemplate{} | ||
\usepackage{beamerthemeBerlin} | ||
\usecolortheme{dove} | ||
\useoutertheme{miniframes} | ||
|
||
% Bullets | ||
\setbeamercolor{block title}{fg=toxblue,bg=tox_lightgrey} | ||
\setbeamercolor{block body}{fg=black, bg=tox_xlightgrey} | ||
\setbeamercolor{titlelike}{fg=toxblue, bg=white} | ||
\setbeamercolor{mini frame}{fg=toxblue, bg=tox_grey} | ||
\setbeamercolor{section title}{fg=toxblue, bg=tox_grey} | ||
|
||
\setbeamercolor{section in head/foot}{fg=toxblue} | ||
%\setbeamercolor{date}{fg=white} | ||
\setbeamercolor*{normal text}{fg=black,bg=white} | ||
\setbeamercolor*{alerted text}{fg=black} | ||
\setbeamercolor*{example text}{fg=black} | ||
\setbeamercolor*{structure}{fg=black} | ||
\setbeamercolor{navigation symbols}{fg=toxred} | ||
\setbeamercolor{navigation symbols}{fg=toxred} | ||
|
||
\setbeamertemplate{itemize item}{\color{toxblue}$\blacksquare$} | ||
\setbeamertemplate{itemize subitem}{\color{toxblue}$\blacktriangleright$} | ||
|
||
\providecommand\insertframetitle{} | ||
\defbeamertemplate*{headline}{myFooter}{\insertframetitle} | ||
|
||
|
||
\setbeamertemplate{headline}{ | ||
\begin{picture}(0,0) | ||
\color{toxblue}{ | ||
% 1px spacing | ||
\put(0.1,-3.835){\line(1,0){400}} | ||
|
||
% Logo | ||
\put(310, 0){\includegraphics[scale=0.15]{logo_large.png}} | ||
|
||
% Sectiontitle | ||
\put(10,5){\color{tox_lightgrey}{ | ||
\normalsize \textbf{\insertframetitle} | ||
} | ||
} | ||
\put(9.4,5.5){\color{tox_grey}{ | ||
\normalsize \textbf{\insertframetitle} | ||
} | ||
} | ||
|
||
} | ||
\end{picture} | ||
\begin{beamercolorbox}[wd=.850005\paperwidth, ht=9ex, dp=1ex, left]{} | ||
\hspace{2mm} | ||
\vspace{1.5mm} | ||
\end{beamercolorbox} | ||
\hfill | ||
} | ||
|
||
\newcommand{\setfooterfull}[1]{ | ||
\setbeamertemplate{footline}{ | ||
|
||
% On Agenda (TOC)-Page no sections | ||
\ifthenelse{\equal{#1}{true}}{}{ | ||
\setbeamercolor{mini frame}{fg=white, bg=white} | ||
\setbeamercolor{section in head/foot}{fg=white, bg=white} | ||
} | ||
|
||
\vskip-100pt | ||
\insertnavigation{0.985\paperwidth}{}{} | ||
\begin{picture}(0,0) | ||
\put(-1,9.6){\color{toxblue}{\line(1,0){2000}}} | ||
\end{picture} | ||
\leavevmode | ||
\hbox{% | ||
\begin{beamercolorbox}[wd=0.25\paperwidth,ht=4ex,dp=1ex,left]{} | ||
\color{tox_grey}{ | ||
\usebeamerfont{author in head/foot}\hspace{2mm}\insertdate | ||
\vspace{0.5mm} | ||
} | ||
\end{beamercolorbox} | ||
|
||
|
||
\begin{beamercolorbox}[wd=0.500003\paperwidth,ht=4ex,dp=1ex,center]{} | ||
\color{tox_grey}{ | ||
\usebeamerfont{author in head/foot}\hspace{2mm} \insertshortauthor: \insertshorttitle \hspace{2mm} | ||
\vspace{0.5mm} | ||
} | ||
\end{beamercolorbox} | ||
|
||
\begin{beamercolorbox}[wd=0.25\paperwidth,ht=4ex,dp=1ex,right]{} | ||
\color{tox_grey}{ | ||
\usebeamerfont{author in head/foot} \insertframenumber/\inserttotalframenumber \hspace{5mm} | ||
\vspace{0.5mm} | ||
} | ||
\end{beamercolorbox} | ||
} | ||
} | ||
} | ||
|
||
\newcommand{\setfooterempty}{ | ||
|
||
\setbeamertemplate{footline}{ | ||
\begin{picture} | ||
(0,0) | ||
\put(-1,12.3){\color{toxblue}{\line(1,0){2000}}} | ||
\end{picture} | ||
} | ||
} | ||
|
||
\setbeamertemplate{frametitle}{} | ||
\setbeamercovered{transparent} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,178 @@ | ||
\documentclass{mybeamer} | ||
\usepackage{tabularx} | ||
\usepackage{tikz} | ||
\usepackage{ulem} | ||
|
||
% Set title, date, etc. | ||
\title{Tox} | ||
\subtitle{Messaging on the GNU Internet} | ||
\author{Simon Levermann (sonOfRa)} | ||
\institute{The Tox Team} | ||
\date{28/12/2013} | ||
|
||
|
||
\begin{document} | ||
\setfooterempty | ||
\begin{frame} | ||
\titlepage | ||
\end{frame} | ||
|
||
\setfooterfull{false} | ||
\setcounter{framenumber}{0} | ||
\begin{frame} | ||
\frametitle{Outline} | ||
\tableofcontents | ||
\end{frame} | ||
|
||
\setfooterfull{true} | ||
\section{What is Tox?} | ||
\begin{frame} | ||
\frametitle{The what} | ||
\begin{block}{What is Tox?} | ||
\begin{itemize} | ||
\item FOSS Chat and A/V-Chat protocol (GPLv3) | ||
\item Decentralized architecture | ||
\item Configuration free | ||
\item Skype Replacement | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
|
||
\section{Why are we doing it?} | ||
\begin{frame} | ||
\frametitle{The why} | ||
\begin{block}{Why are we doing this?} | ||
\begin{itemize} | ||
\item We want a free(as in Freedom) and secure alternative for Skype | ||
\item \textit{''We don't want to be the next secure chatting program, we want to be the next secure chatting program that people actually use.''} - Someone on IRC | ||
\item Current secure chat programs aren't easy to use, at least not for \sout{our parents and grandparents} normal people | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
|
||
\section{Features} | ||
\subsection{} | ||
\begin{frame} | ||
\frametitle{Completed} | ||
\begin{block}{Completed} | ||
\begin{itemize} | ||
\item Text messaging | ||
\item Groupchats | ||
\item File sending | ||
\item Audio/Video (will be encrypted soon, almost ready to merge as of 23/12/2013) | ||
\item Several clients for GNU/Linux, OSX and Windows, Qt, GTK, ncurses | ||
\item PyTox, the Python binding for Tox | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
\subsection{} | ||
\begin{frame} | ||
\frametitle{Planned and in Progress} | ||
\begin{block}{Planned and in Progress} | ||
\begin{itemize} | ||
\item Better NAT support (sometimes symmetric NATs are problematic) | ||
\item Implement A/V in actual clients, not just as an API | ||
\item jToxcore, the Java binding for Tox | ||
\item Android client (depends on jToxcore) | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
\section{The technical stuff} | ||
|
||
\subsection{} | ||
\begin{frame} | ||
\frametitle{Architecture} | ||
\begin{block}{Architecture} | ||
\begin{itemize} | ||
\item Tox is only a library, everyone can make their own client | ||
\item GPLv3, so clients must also be licensed under the GPL | ||
\item Bindings to other languages are partially available (or you can make one yourself) | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
\subsection{} | ||
\begin{frame} | ||
\frametitle{Crypto} | ||
\begin{block}{Cryptography} | ||
\begin{itemize} | ||
\item We are building upon existing cryptography, not inventing our own | ||
\item We use libsodium, which is a portable fork of NaCl(Salt) | ||
\item Public/Private-Key based, public keys are UserIDs | ||
\item crypto\_box: \textit{curve25519xsalsa20poly1305} | ||
\begin{itemize} | ||
\item curve25519 for Key exchange | ||
\item xsalsa20 for encryption | ||
\item poly1305 for message authentication | ||
\end{itemize} | ||
|
||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
|
||
\subsection{} | ||
\begin{frame} | ||
\frametitle{Network} | ||
\begin{block}{Network Architecture} | ||
\begin{itemize} | ||
\item Peer-to-Peer chatting, no central servers | ||
\item Use UDP for connections | ||
\begin{itemize} | ||
\item UDP was the obvious choice for P2P | ||
\item 'Lossless UDP' for reliability in messaging | ||
\item UDP hole-punching for getting through NATs | ||
\end{itemize} | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
\begin{frame} | ||
\frametitle{DHT} | ||
\begin{block}{DHT Design} | ||
\begin{itemize} | ||
\item Use a DHT to store peer information | ||
\item Since public keys are IDs, map a public key to an IP-Address | ||
\item Every client stores the mathematically closest nodes by XORing public keys | ||
\item Since there are no trackers like in Bittorrent, use Bootstrap nodes for initial login | ||
\item Bootstrap nodes are clients that don't do messaging, only DHT work, but any client can serve as a bootstrap node | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
|
||
\subsection{} | ||
\begin{frame} | ||
\frametitle{Problems} | ||
\begin{block}{Problems} | ||
\begin{itemize} | ||
\item An attacker that controls a large portion of DHT nodes can easily log the social graph (solution is on the way, draft not done at time of writing) | ||
\item Friend request spam (solved) | ||
\end{itemize} | ||
\end{block} | ||
\begin{block}{Solution?} | ||
\begin{itemize} | ||
\item \url{https://github.com/irungentoo/ProjectTox-Core/blob/master/docs/Prevent_Tracking.txt} | ||
\item Problem: This is new, I have not read it yet! | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
|
||
\section{Contribute} | ||
\subsection{} | ||
\begin{frame} | ||
\frametitle{GitHub} | ||
\begin{block}{GitHub} | ||
\begin{itemize} | ||
\item We're on GitHub! | ||
\item The core is at \url{https://github.com/irungentoo/ProjectTox-Core/} | ||
\item The subprojects are hosted in the Tox Organization at \url{https://github.com/Tox/} | ||
\end{itemize} | ||
\end{block} | ||
\end{frame} | ||
|
||
\subsection{} | ||
\begin{frame} | ||
\frametitle{Questions?} | ||
\begin{block}{Getting in touch} | ||
Most of our communication happens in the channels \#tox-dev and \#tox on Freenode IRC | ||
\end{block} | ||
\end{frame} | ||
|
||
\end{document} |