\hypertarget{ge_8h}{}\section{src/curve25519/ed25519/ge.h File Reference}
\label{ge_8h}\index{src/curve25519/ed25519/ge.\+h@{src/curve25519/ed25519/ge.\+h}}
{\ttfamily \#include \char`\"{}fe.\+h\char`\"{}}\newline
Include dependency graph for ge.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=225pt]{ge_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{ge_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structge__p2}{ge\+\_\+p2}
\item 
struct \hyperlink{structge__p3}{ge\+\_\+p3}
\item 
struct \hyperlink{structge__p1p1}{ge\+\_\+p1p1}
\item 
struct \hyperlink{structge__precomp}{ge\+\_\+precomp}
\item 
struct \hyperlink{structge__cached}{ge\+\_\+cached}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{ge_8h_a6147cf97f16576ddee66a1692b4f2dc8}{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+frombytes\+\_\+negate\+\_\+vartime
\item 
\#define \hyperlink{ge_8h_ae207a7329fab5ee10f230bf91190cf3e}{ge\+\_\+tobytes}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+tobytes
\item 
\#define \hyperlink{ge_8h_a66fac8809dcfa1ecfb70c36fba2c8649}{ge\+\_\+p3\+\_\+tobytes}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+tobytes
\item 
\#define \hyperlink{ge_8h_a28504968b42cbe77e594371f6f286305}{ge\+\_\+p2\+\_\+0}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p2\+\_\+0
\item 
\#define \hyperlink{ge_8h_a7708fc577d329386dd12eeb0f191b054}{ge\+\_\+p3\+\_\+0}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+0
\item 
\#define \hyperlink{ge_8h_a1c148354547e14ef6cb76e3377750144}{ge\+\_\+precomp\+\_\+0}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+precomp\+\_\+0
\item 
\#define \hyperlink{ge_8h_aa0b692427a95ce219069637f40aa8d98}{ge\+\_\+p3\+\_\+to\+\_\+p2}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+to\+\_\+p2
\item 
\#define \hyperlink{ge_8h_a737868b19cffb6cc09c7adb73d0f5eec}{ge\+\_\+p3\+\_\+to\+\_\+cached}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+to\+\_\+cached
\item 
\#define \hyperlink{ge_8h_a3d6b6a4ba45cfc9efd5e342c3c8f2274}{ge\+\_\+p1p1\+\_\+to\+\_\+p2}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p1p1\+\_\+to\+\_\+p2
\item 
\#define \hyperlink{ge_8h_a4b828de28062850addeddabbf2a8822c}{ge\+\_\+p1p1\+\_\+to\+\_\+p3}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p1p1\+\_\+to\+\_\+p3
\item 
\#define \hyperlink{ge_8h_ad28d803212c6bc5b084217cc3f48d894}{ge\+\_\+p2\+\_\+dbl}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p2\+\_\+dbl
\item 
\#define \hyperlink{ge_8h_ad07e92ae6f2b9e2ca6d540dd1ff83c98}{ge\+\_\+p3\+\_\+dbl}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+dbl
\item 
\#define \hyperlink{ge_8h_adea6e7a829a83a3c908794142847fe1f}{ge\+\_\+madd}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+madd
\item 
\#define \hyperlink{ge_8h_a125bdf8d2a4516fd5b0db870a48e149b}{ge\+\_\+msub}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+msub
\item 
\#define \hyperlink{ge_8h_a9138994553d449c897a167ab21a335a7}{ge\+\_\+add}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+add
\item 
\#define \hyperlink{ge_8h_a01434f412b708c3034a5dfe1ad4ec84e}{ge\+\_\+sub}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+sub
\item 
\#define \hyperlink{ge_8h_a36fcd5250ba03551318ff9f2237b4ce2}{ge\+\_\+scalarmult\+\_\+base}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+scalarmult\+\_\+base
\item 
\#define \hyperlink{ge_8h_af3a5997c36fb57581a1c5342bc1f8662}{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime}~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+double\+\_\+scalarmult\+\_\+vartime
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{ge_8h_a866c763ee7043cc39f92fc82cdc4a966}{ge\+\_\+tobytes} (unsigned char $\ast$, const \hyperlink{structge__p2}{ge\+\_\+p2} $\ast$)
\item 
void \hyperlink{ge_8h_af5042f3509748817a3d6faf25f7a2129}{ge\+\_\+p3\+\_\+tobytes} (unsigned char $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$)
\item 
int \hyperlink{ge_8h_a3760d9354223a5a5b49771900cf77888}{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime} (\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const unsigned char $\ast$)
\item 
void \hyperlink{ge_8h_a3a62f76f0668f4a4d547806f8d20a8ff}{ge\+\_\+p2\+\_\+0} (\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$)
\item 
void \hyperlink{ge_8h_a7ed5935bb482a965cc6963fb41bd2500}{ge\+\_\+p3\+\_\+0} (\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$)
\item 
void \hyperlink{ge_8h_a2fc5e50eb714d6866150288f9275832a}{ge\+\_\+precomp\+\_\+0} (\hyperlink{structge__precomp}{ge\+\_\+precomp} $\ast$)
\item 
void \hyperlink{ge_8h_aa4049f9ad6c53fc487a3396710760278}{ge\+\_\+p3\+\_\+to\+\_\+p2} (\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$)
\item 
void \hyperlink{ge_8h_a67e4175a86b3653c53613aa708f1497f}{ge\+\_\+p3\+\_\+to\+\_\+cached} (\hyperlink{structge__cached}{ge\+\_\+cached} $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$)
\item 
void \hyperlink{ge_8h_a5d26e139d32b03c3b8ae37e81368abd9}{ge\+\_\+p1p1\+\_\+to\+\_\+p2} (\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$, const \hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$)
\item 
void \hyperlink{ge_8h_aa61ddf461d72f476255ae16be48c31b3}{ge\+\_\+p1p1\+\_\+to\+\_\+p3} (\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const \hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$)
\item 
void \hyperlink{ge_8h_a90817aae2764fc622579f8e856b26cca}{ge\+\_\+p2\+\_\+dbl} (\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$, const \hyperlink{structge__p2}{ge\+\_\+p2} $\ast$)
\item 
void \hyperlink{ge_8h_a6689b95218cfa19d60ede322eb740f7e}{ge\+\_\+p3\+\_\+dbl} (\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$)
\item 
void \hyperlink{ge_8h_a4f4991d7995e7222fcf0a83110d3a256}{ge\+\_\+madd} (\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const \hyperlink{structge__precomp}{ge\+\_\+precomp} $\ast$)
\item 
void \hyperlink{ge_8h_ad213a764006bf7f98cf6cb460c2d8bbb}{ge\+\_\+msub} (\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const \hyperlink{structge__precomp}{ge\+\_\+precomp} $\ast$)
\item 
void \hyperlink{ge_8h_a1957f0085ec944bca5987d9c5701b739}{ge\+\_\+add} (\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const \hyperlink{structge__cached}{ge\+\_\+cached} $\ast$)
\item 
void \hyperlink{ge_8h_ae6b945b48ee7bae22803ab23a6cd6555}{ge\+\_\+sub} (\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const \hyperlink{structge__cached}{ge\+\_\+cached} $\ast$)
\item 
void \hyperlink{ge_8h_a39743f4a02c802d5046735802ae804b0}{ge\+\_\+scalarmult\+\_\+base} (\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const unsigned char $\ast$)
\item 
void \hyperlink{ge_8h_abbe7bd92a027df602534ac9fd252400e}{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime} (\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$, const unsigned char $\ast$, const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$, const unsigned char $\ast$)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{ge_8h_a9138994553d449c897a167ab21a335a7}\label{ge_8h_a9138994553d449c897a167ab21a335a7}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+add@{ge\+\_\+add}}
\index{ge\+\_\+add@{ge\+\_\+add}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+add}{ge\_add}}
{\footnotesize\ttfamily \#define ge\+\_\+add~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+add}



Definition at line 69 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_af3a5997c36fb57581a1c5342bc1f8662}\label{ge_8h_af3a5997c36fb57581a1c5342bc1f8662}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+double\+\_\+scalarmult\+\_\+vartime@{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime}}
\index{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime@{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime}{ge\_double\_scalarmult\_vartime}}
{\footnotesize\ttfamily \#define ge\+\_\+double\+\_\+scalarmult\+\_\+vartime~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+double\+\_\+scalarmult\+\_\+vartime}



Definition at line 72 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a6147cf97f16576ddee66a1692b4f2dc8}\label{ge_8h_a6147cf97f16576ddee66a1692b4f2dc8}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+frombytes\+\_\+negate\+\_\+vartime@{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime}}
\index{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime@{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime}{ge\_frombytes\_negate\_vartime}}
{\footnotesize\ttfamily \#define ge\+\_\+frombytes\+\_\+negate\+\_\+vartime~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+frombytes\+\_\+negate\+\_\+vartime}



Definition at line 53 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_adea6e7a829a83a3c908794142847fe1f}\label{ge_8h_adea6e7a829a83a3c908794142847fe1f}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+madd@{ge\+\_\+madd}}
\index{ge\+\_\+madd@{ge\+\_\+madd}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+madd}{ge\_madd}}
{\footnotesize\ttfamily \#define ge\+\_\+madd~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+madd}



Definition at line 67 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a125bdf8d2a4516fd5b0db870a48e149b}\label{ge_8h_a125bdf8d2a4516fd5b0db870a48e149b}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+msub@{ge\+\_\+msub}}
\index{ge\+\_\+msub@{ge\+\_\+msub}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+msub}{ge\_msub}}
{\footnotesize\ttfamily \#define ge\+\_\+msub~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+msub}



Definition at line 68 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a3d6b6a4ba45cfc9efd5e342c3c8f2274}\label{ge_8h_a3d6b6a4ba45cfc9efd5e342c3c8f2274}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p1p1\+\_\+to\+\_\+p2@{ge\+\_\+p1p1\+\_\+to\+\_\+p2}}
\index{ge\+\_\+p1p1\+\_\+to\+\_\+p2@{ge\+\_\+p1p1\+\_\+to\+\_\+p2}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p1p1\+\_\+to\+\_\+p2}{ge\_p1p1\_to\_p2}}
{\footnotesize\ttfamily \#define ge\+\_\+p1p1\+\_\+to\+\_\+p2~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p1p1\+\_\+to\+\_\+p2}



Definition at line 62 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a4b828de28062850addeddabbf2a8822c}\label{ge_8h_a4b828de28062850addeddabbf2a8822c}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p1p1\+\_\+to\+\_\+p3@{ge\+\_\+p1p1\+\_\+to\+\_\+p3}}
\index{ge\+\_\+p1p1\+\_\+to\+\_\+p3@{ge\+\_\+p1p1\+\_\+to\+\_\+p3}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p1p1\+\_\+to\+\_\+p3}{ge\_p1p1\_to\_p3}}
{\footnotesize\ttfamily \#define ge\+\_\+p1p1\+\_\+to\+\_\+p3~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p1p1\+\_\+to\+\_\+p3}



Definition at line 63 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a28504968b42cbe77e594371f6f286305}\label{ge_8h_a28504968b42cbe77e594371f6f286305}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p2\+\_\+0@{ge\+\_\+p2\+\_\+0}}
\index{ge\+\_\+p2\+\_\+0@{ge\+\_\+p2\+\_\+0}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p2\+\_\+0}{ge\_p2\_0}}
{\footnotesize\ttfamily \#define ge\+\_\+p2\+\_\+0~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p2\+\_\+0}



Definition at line 57 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_ad28d803212c6bc5b084217cc3f48d894}\label{ge_8h_ad28d803212c6bc5b084217cc3f48d894}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p2\+\_\+dbl@{ge\+\_\+p2\+\_\+dbl}}
\index{ge\+\_\+p2\+\_\+dbl@{ge\+\_\+p2\+\_\+dbl}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p2\+\_\+dbl}{ge\_p2\_dbl}}
{\footnotesize\ttfamily \#define ge\+\_\+p2\+\_\+dbl~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p2\+\_\+dbl}



Definition at line 64 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a7708fc577d329386dd12eeb0f191b054}\label{ge_8h_a7708fc577d329386dd12eeb0f191b054}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+0@{ge\+\_\+p3\+\_\+0}}
\index{ge\+\_\+p3\+\_\+0@{ge\+\_\+p3\+\_\+0}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+0}{ge\_p3\_0}}
{\footnotesize\ttfamily \#define ge\+\_\+p3\+\_\+0~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+0}



Definition at line 58 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_ad07e92ae6f2b9e2ca6d540dd1ff83c98}\label{ge_8h_ad07e92ae6f2b9e2ca6d540dd1ff83c98}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+dbl@{ge\+\_\+p3\+\_\+dbl}}
\index{ge\+\_\+p3\+\_\+dbl@{ge\+\_\+p3\+\_\+dbl}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+dbl}{ge\_p3\_dbl}}
{\footnotesize\ttfamily \#define ge\+\_\+p3\+\_\+dbl~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+dbl}



Definition at line 65 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a737868b19cffb6cc09c7adb73d0f5eec}\label{ge_8h_a737868b19cffb6cc09c7adb73d0f5eec}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+to\+\_\+cached@{ge\+\_\+p3\+\_\+to\+\_\+cached}}
\index{ge\+\_\+p3\+\_\+to\+\_\+cached@{ge\+\_\+p3\+\_\+to\+\_\+cached}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+to\+\_\+cached}{ge\_p3\_to\_cached}}
{\footnotesize\ttfamily \#define ge\+\_\+p3\+\_\+to\+\_\+cached~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+to\+\_\+cached}



Definition at line 61 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_aa0b692427a95ce219069637f40aa8d98}\label{ge_8h_aa0b692427a95ce219069637f40aa8d98}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+to\+\_\+p2@{ge\+\_\+p3\+\_\+to\+\_\+p2}}
\index{ge\+\_\+p3\+\_\+to\+\_\+p2@{ge\+\_\+p3\+\_\+to\+\_\+p2}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+to\+\_\+p2}{ge\_p3\_to\_p2}}
{\footnotesize\ttfamily \#define ge\+\_\+p3\+\_\+to\+\_\+p2~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+to\+\_\+p2}



Definition at line 60 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a66fac8809dcfa1ecfb70c36fba2c8649}\label{ge_8h_a66fac8809dcfa1ecfb70c36fba2c8649}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+tobytes@{ge\+\_\+p3\+\_\+tobytes}}
\index{ge\+\_\+p3\+\_\+tobytes@{ge\+\_\+p3\+\_\+tobytes}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+tobytes}{ge\_p3\_tobytes}}
{\footnotesize\ttfamily \#define ge\+\_\+p3\+\_\+tobytes~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+p3\+\_\+tobytes}



Definition at line 55 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a1c148354547e14ef6cb76e3377750144}\label{ge_8h_a1c148354547e14ef6cb76e3377750144}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+precomp\+\_\+0@{ge\+\_\+precomp\+\_\+0}}
\index{ge\+\_\+precomp\+\_\+0@{ge\+\_\+precomp\+\_\+0}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+precomp\+\_\+0}{ge\_precomp\_0}}
{\footnotesize\ttfamily \#define ge\+\_\+precomp\+\_\+0~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+precomp\+\_\+0}



Definition at line 59 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a36fcd5250ba03551318ff9f2237b4ce2}\label{ge_8h_a36fcd5250ba03551318ff9f2237b4ce2}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+scalarmult\+\_\+base@{ge\+\_\+scalarmult\+\_\+base}}
\index{ge\+\_\+scalarmult\+\_\+base@{ge\+\_\+scalarmult\+\_\+base}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+scalarmult\+\_\+base}{ge\_scalarmult\_base}}
{\footnotesize\ttfamily \#define ge\+\_\+scalarmult\+\_\+base~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+scalarmult\+\_\+base}



Definition at line 71 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_a01434f412b708c3034a5dfe1ad4ec84e}\label{ge_8h_a01434f412b708c3034a5dfe1ad4ec84e}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+sub@{ge\+\_\+sub}}
\index{ge\+\_\+sub@{ge\+\_\+sub}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+sub}{ge\_sub}}
{\footnotesize\ttfamily \#define ge\+\_\+sub~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+sub}



Definition at line 70 of file ge.\+h.

\mbox{\Hypertarget{ge_8h_ae207a7329fab5ee10f230bf91190cf3e}\label{ge_8h_ae207a7329fab5ee10f230bf91190cf3e}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+tobytes@{ge\+\_\+tobytes}}
\index{ge\+\_\+tobytes@{ge\+\_\+tobytes}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+tobytes}{ge\_tobytes}}
{\footnotesize\ttfamily \#define ge\+\_\+tobytes~crypto\+\_\+sign\+\_\+ed25519\+\_\+ref10\+\_\+ge\+\_\+tobytes}



Definition at line 54 of file ge.\+h.



\subsection{Function Documentation}
\mbox{\Hypertarget{ge_8h_a1957f0085ec944bca5987d9c5701b739}\label{ge_8h_a1957f0085ec944bca5987d9c5701b739}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+add@{ge\+\_\+add}}
\index{ge\+\_\+add@{ge\+\_\+add}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+add()}{ge\_add()}}
{\footnotesize\ttfamily void ge\+\_\+add (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const \hyperlink{structge__cached}{ge\+\_\+cached} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_abbe7bd92a027df602534ac9fd252400e}\label{ge_8h_abbe7bd92a027df602534ac9fd252400e}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+double\+\_\+scalarmult\+\_\+vartime@{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime}}
\index{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime@{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+double\+\_\+scalarmult\+\_\+vartime()}{ge\_double\_scalarmult\_vartime()}}
{\footnotesize\ttfamily void ge\+\_\+double\+\_\+scalarmult\+\_\+vartime (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$}]{,  }\item[{const unsigned char $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const unsigned char $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a3760d9354223a5a5b49771900cf77888}\label{ge_8h_a3760d9354223a5a5b49771900cf77888}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+frombytes\+\_\+negate\+\_\+vartime@{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime}}
\index{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime@{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+frombytes\+\_\+negate\+\_\+vartime()}{ge\_frombytes\_negate\_vartime()}}
{\footnotesize\ttfamily int ge\+\_\+frombytes\+\_\+negate\+\_\+vartime (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const unsigned char $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a4f4991d7995e7222fcf0a83110d3a256}\label{ge_8h_a4f4991d7995e7222fcf0a83110d3a256}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+madd@{ge\+\_\+madd}}
\index{ge\+\_\+madd@{ge\+\_\+madd}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+madd()}{ge\_madd()}}
{\footnotesize\ttfamily void ge\+\_\+madd (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const \hyperlink{structge__precomp}{ge\+\_\+precomp} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_ad213a764006bf7f98cf6cb460c2d8bbb}\label{ge_8h_ad213a764006bf7f98cf6cb460c2d8bbb}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+msub@{ge\+\_\+msub}}
\index{ge\+\_\+msub@{ge\+\_\+msub}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+msub()}{ge\_msub()}}
{\footnotesize\ttfamily void ge\+\_\+msub (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const \hyperlink{structge__precomp}{ge\+\_\+precomp} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a5d26e139d32b03c3b8ae37e81368abd9}\label{ge_8h_a5d26e139d32b03c3b8ae37e81368abd9}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p1p1\+\_\+to\+\_\+p2@{ge\+\_\+p1p1\+\_\+to\+\_\+p2}}
\index{ge\+\_\+p1p1\+\_\+to\+\_\+p2@{ge\+\_\+p1p1\+\_\+to\+\_\+p2}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p1p1\+\_\+to\+\_\+p2()}{ge\_p1p1\_to\_p2()}}
{\footnotesize\ttfamily void ge\+\_\+p1p1\+\_\+to\+\_\+p2 (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$}]{,  }\item[{const \hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_aa61ddf461d72f476255ae16be48c31b3}\label{ge_8h_aa61ddf461d72f476255ae16be48c31b3}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p1p1\+\_\+to\+\_\+p3@{ge\+\_\+p1p1\+\_\+to\+\_\+p3}}
\index{ge\+\_\+p1p1\+\_\+to\+\_\+p3@{ge\+\_\+p1p1\+\_\+to\+\_\+p3}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p1p1\+\_\+to\+\_\+p3()}{ge\_p1p1\_to\_p3()}}
{\footnotesize\ttfamily void ge\+\_\+p1p1\+\_\+to\+\_\+p3 (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const \hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a3a62f76f0668f4a4d547806f8d20a8ff}\label{ge_8h_a3a62f76f0668f4a4d547806f8d20a8ff}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p2\+\_\+0@{ge\+\_\+p2\+\_\+0}}
\index{ge\+\_\+p2\+\_\+0@{ge\+\_\+p2\+\_\+0}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p2\+\_\+0()}{ge\_p2\_0()}}
{\footnotesize\ttfamily void ge\+\_\+p2\+\_\+0 (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a90817aae2764fc622579f8e856b26cca}\label{ge_8h_a90817aae2764fc622579f8e856b26cca}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p2\+\_\+dbl@{ge\+\_\+p2\+\_\+dbl}}
\index{ge\+\_\+p2\+\_\+dbl@{ge\+\_\+p2\+\_\+dbl}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p2\+\_\+dbl()}{ge\_p2\_dbl()}}
{\footnotesize\ttfamily void ge\+\_\+p2\+\_\+dbl (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{,  }\item[{const \hyperlink{structge__p2}{ge\+\_\+p2} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a7ed5935bb482a965cc6963fb41bd2500}\label{ge_8h_a7ed5935bb482a965cc6963fb41bd2500}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+0@{ge\+\_\+p3\+\_\+0}}
\index{ge\+\_\+p3\+\_\+0@{ge\+\_\+p3\+\_\+0}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+0()}{ge\_p3\_0()}}
{\footnotesize\ttfamily void ge\+\_\+p3\+\_\+0 (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a6689b95218cfa19d60ede322eb740f7e}\label{ge_8h_a6689b95218cfa19d60ede322eb740f7e}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+dbl@{ge\+\_\+p3\+\_\+dbl}}
\index{ge\+\_\+p3\+\_\+dbl@{ge\+\_\+p3\+\_\+dbl}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+dbl()}{ge\_p3\_dbl()}}
{\footnotesize\ttfamily void ge\+\_\+p3\+\_\+dbl (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a67e4175a86b3653c53613aa708f1497f}\label{ge_8h_a67e4175a86b3653c53613aa708f1497f}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+to\+\_\+cached@{ge\+\_\+p3\+\_\+to\+\_\+cached}}
\index{ge\+\_\+p3\+\_\+to\+\_\+cached@{ge\+\_\+p3\+\_\+to\+\_\+cached}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+to\+\_\+cached()}{ge\_p3\_to\_cached()}}
{\footnotesize\ttfamily void ge\+\_\+p3\+\_\+to\+\_\+cached (\begin{DoxyParamCaption}\item[{\hyperlink{structge__cached}{ge\+\_\+cached} $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_aa4049f9ad6c53fc487a3396710760278}\label{ge_8h_aa4049f9ad6c53fc487a3396710760278}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+to\+\_\+p2@{ge\+\_\+p3\+\_\+to\+\_\+p2}}
\index{ge\+\_\+p3\+\_\+to\+\_\+p2@{ge\+\_\+p3\+\_\+to\+\_\+p2}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+to\+\_\+p2()}{ge\_p3\_to\_p2()}}
{\footnotesize\ttfamily void ge\+\_\+p3\+\_\+to\+\_\+p2 (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p2}{ge\+\_\+p2} $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_af5042f3509748817a3d6faf25f7a2129}\label{ge_8h_af5042f3509748817a3d6faf25f7a2129}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+p3\+\_\+tobytes@{ge\+\_\+p3\+\_\+tobytes}}
\index{ge\+\_\+p3\+\_\+tobytes@{ge\+\_\+p3\+\_\+tobytes}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+p3\+\_\+tobytes()}{ge\_p3\_tobytes()}}
{\footnotesize\ttfamily void ge\+\_\+p3\+\_\+tobytes (\begin{DoxyParamCaption}\item[{unsigned char $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a2fc5e50eb714d6866150288f9275832a}\label{ge_8h_a2fc5e50eb714d6866150288f9275832a}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+precomp\+\_\+0@{ge\+\_\+precomp\+\_\+0}}
\index{ge\+\_\+precomp\+\_\+0@{ge\+\_\+precomp\+\_\+0}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+precomp\+\_\+0()}{ge\_precomp\_0()}}
{\footnotesize\ttfamily void ge\+\_\+precomp\+\_\+0 (\begin{DoxyParamCaption}\item[{\hyperlink{structge__precomp}{ge\+\_\+precomp} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a39743f4a02c802d5046735802ae804b0}\label{ge_8h_a39743f4a02c802d5046735802ae804b0}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+scalarmult\+\_\+base@{ge\+\_\+scalarmult\+\_\+base}}
\index{ge\+\_\+scalarmult\+\_\+base@{ge\+\_\+scalarmult\+\_\+base}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+scalarmult\+\_\+base()}{ge\_scalarmult\_base()}}
{\footnotesize\ttfamily void ge\+\_\+scalarmult\+\_\+base (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const unsigned char $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_ae6b945b48ee7bae22803ab23a6cd6555}\label{ge_8h_ae6b945b48ee7bae22803ab23a6cd6555}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+sub@{ge\+\_\+sub}}
\index{ge\+\_\+sub@{ge\+\_\+sub}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+sub()}{ge\_sub()}}
{\footnotesize\ttfamily void ge\+\_\+sub (\begin{DoxyParamCaption}\item[{\hyperlink{structge__p1p1}{ge\+\_\+p1p1} $\ast$}]{,  }\item[{const \hyperlink{structge__p3}{ge\+\_\+p3} $\ast$}]{,  }\item[{const \hyperlink{structge__cached}{ge\+\_\+cached} $\ast$}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{ge_8h_a866c763ee7043cc39f92fc82cdc4a966}\label{ge_8h_a866c763ee7043cc39f92fc82cdc4a966}} 
\index{ge.\+h@{ge.\+h}!ge\+\_\+tobytes@{ge\+\_\+tobytes}}
\index{ge\+\_\+tobytes@{ge\+\_\+tobytes}!ge.\+h@{ge.\+h}}
\subsubsection{\texorpdfstring{ge\+\_\+tobytes()}{ge\_tobytes()}}
{\footnotesize\ttfamily void ge\+\_\+tobytes (\begin{DoxyParamCaption}\item[{unsigned char $\ast$}]{,  }\item[{const \hyperlink{structge__p2}{ge\+\_\+p2} $\ast$}]{ }\end{DoxyParamCaption})}

