\hypertarget{group__wickr__ec__curve}{}\doxysection{wickr\+\_\+ec\+\_\+curve\+\_\+t}
\label{group__wickr__ec__curve}\index{wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structwickr__ec__curve}{wickr\+\_\+ec\+\_\+curve}}
\begin{DoxyCompactList}\small\item\em Metadata about curve types to help with key generation, and signatures. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key}}
\begin{DoxyCompactList}\small\item\em Representation of public and private Elliptic Curve Keypair information as buffers. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__ec__curve_ga912f46bc12a39f57d8d1b87a639f7cdf}{wickr\+\_\+ec\+\_\+key\+\_\+create}} (\mbox{\hyperlink{structwickr__ec__curve}{wickr\+\_\+ec\+\_\+curve\+\_\+t}} curve, \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$pub\+\_\+data, \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$pri\+\_\+data)
\item 
\mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__ec__curve_gaf12eff11d78b2ce9ff32710406d58d4f}{wickr\+\_\+ec\+\_\+key\+\_\+copy}} (const \mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}} $\ast$source)
\item 
void \mbox{\hyperlink{group__wickr__ec__curve_gac18ac86b270f540bf5a55ad271ab0568}{wickr\+\_\+ec\+\_\+key\+\_\+destroy}} (\mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}} $\ast$$\ast$key)
\item 
const \mbox{\hyperlink{structwickr__ec__curve}{wickr\+\_\+ec\+\_\+curve\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__ec__curve_ga35d0968431b69993b7a6e3351d503d72}{wickr\+\_\+ec\+\_\+curve\+\_\+find}} (uint8\+\_\+t identifier)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__wickr__ec__curve_ga35d0968431b69993b7a6e3351d503d72}\label{group__wickr__ec__curve_ga35d0968431b69993b7a6e3351d503d72}} 
\index{wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}!wickr\_ec\_curve\_find@{wickr\_ec\_curve\_find}}
\index{wickr\_ec\_curve\_find@{wickr\_ec\_curve\_find}!wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_ec\_curve\_find()}{wickr\_ec\_curve\_find()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{structwickr__ec__curve}{wickr\+\_\+ec\+\_\+curve\+\_\+t}}$\ast$ wickr\+\_\+ec\+\_\+curve\+\_\+find (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{identifier }\end{DoxyParamCaption})}

Find an EC key by numerical identifier


\begin{DoxyParams}{Parameters}
{\em identifier} & the identifier in which to return the curve information for \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the requested curve information, or NULL if no matching information can be found 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__ec__curve_gaf12eff11d78b2ce9ff32710406d58d4f}\label{group__wickr__ec__curve_gaf12eff11d78b2ce9ff32710406d58d4f}} 
\index{wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}!wickr\_ec\_key\_copy@{wickr\_ec\_key\_copy}}
\index{wickr\_ec\_key\_copy@{wickr\_ec\_key\_copy}!wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_ec\_key\_copy()}{wickr\_ec\_key\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}}$\ast$ wickr\+\_\+ec\+\_\+key\+\_\+copy (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}} $\ast$}]{source }\end{DoxyParamCaption})}

Copy an EC Key


\begin{DoxyParams}{Parameters}
{\em source} & the EC key to copy \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a newly allocated EC key holding a deep copy of the properties of \textquotesingle{}source\textquotesingle{} 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__ec__curve_ga912f46bc12a39f57d8d1b87a639f7cdf}\label{group__wickr__ec__curve_ga912f46bc12a39f57d8d1b87a639f7cdf}} 
\index{wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}!wickr\_ec\_key\_create@{wickr\_ec\_key\_create}}
\index{wickr\_ec\_key\_create@{wickr\_ec\_key\_create}!wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_ec\_key\_create()}{wickr\_ec\_key\_create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}}$\ast$ wickr\+\_\+ec\+\_\+key\+\_\+create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__ec__curve}{wickr\+\_\+ec\+\_\+curve\+\_\+t}}}]{curve,  }\item[{\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{pub\+\_\+data,  }\item[{\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{pri\+\_\+data }\end{DoxyParamCaption})}

Create an Elliptic Curve Keypair from components

NOTE\+: This function does not have the capability to generate key pair information, it simply constructs the data structure using pre-\/generated components. A crypto engine is required to generate random keypairs


\begin{DoxyParams}{Parameters}
{\em curve} & see \textquotesingle{}\mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key}}\textquotesingle{} property documentation \\
\hline
{\em pub\+\_\+data} & see \textquotesingle{}\mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key}}\textquotesingle{} property documentation \\
\hline
{\em pri\+\_\+data} & see \textquotesingle{}\mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key}}\textquotesingle{} property documentation. May be NULL to represent a public key \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a newly allocated elliptic curve key representing either a public or private key. Takes ownership of the passed inputs 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__ec__curve_gac18ac86b270f540bf5a55ad271ab0568}\label{group__wickr__ec__curve_gac18ac86b270f540bf5a55ad271ab0568}} 
\index{wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}!wickr\_ec\_key\_destroy@{wickr\_ec\_key\_destroy}}
\index{wickr\_ec\_key\_destroy@{wickr\_ec\_key\_destroy}!wickr\_ec\_curve\_t@{wickr\_ec\_curve\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_ec\_key\_destroy()}{wickr\_ec\_key\_destroy()}}
{\footnotesize\ttfamily void wickr\+\_\+ec\+\_\+key\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__ec__key}{wickr\+\_\+ec\+\_\+key\+\_\+t}} $\ast$$\ast$}]{key }\end{DoxyParamCaption})}

Destroy an EC Key


\begin{DoxyParams}{Parameters}
{\em key} & a pointer to the key to destroy. All properties of \textquotesingle{}$\ast$key\textquotesingle{} will also be destroyed \\
\hline
\end{DoxyParams}
