\doxysection{bgpsec\+\_\+private.\+h}
\hypertarget{bgpsec__private_8h_source}{}\label{bgpsec__private_8h_source}\index{rtrlib/bgpsec/bgpsec\_private.h@{rtrlib/bgpsec/bgpsec\_private.h}}
\mbox{\hyperlink{bgpsec__private_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{00002\ \textcolor{comment}{\ *\ This\ file\ is\ part\ of\ RTRlib.}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00004\ \textcolor{comment}{\ *\ This\ file\ is\ subject\ to\ the\ terms\ and\ conditions\ of\ the\ MIT\ license.}}
\DoxyCodeLine{00005\ \textcolor{comment}{\ *\ See\ the\ file\ LICENSE\ in\ the\ top\ level\ directory\ for\ more\ details.}}
\DoxyCodeLine{00006\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00007\ \textcolor{comment}{\ *\ Website:\ http://rtrlib.realmv6.org/}}
\DoxyCodeLine{00008\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#ifndef\ RTR\_BGPSEC\_PRIVATE\_H}}
\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#define\ RTR\_BGPSEC\_PRIVATE\_H}}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{bgpsec__utils__private_8h}{rtrlib/bgpsec/bgpsec\_utils\_private.h}}"{}}}
\DoxyCodeLine{00021\ }
\DoxyCodeLine{00031\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_gaf4f652ef6e5930e5af320b5f2fac4904}{rtr\_bgpsec\_validate\_as\_path}}(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *data,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structspki__table}{spki\_table}}\ *table);}
\DoxyCodeLine{00032\ }
\DoxyCodeLine{00043\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga82d1a1fe7220367ddfc14b2f0b41a186}{rtr\_bgpsec\_generate\_signature}}(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *data,\ uint8\_t\ *private\_key,}
\DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ **new\_signature);}
\DoxyCodeLine{00045\ }
\DoxyCodeLine{00050\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga452fbfb5fe2ed8b57638a1153b3a316c}{rtr\_bgpsec\_get\_version}}(\textcolor{keywordtype}{void});}
\DoxyCodeLine{00051\ }
\DoxyCodeLine{00058\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga1f05eb1ca57d57ae97d018863dc3d126}{rtr\_bgpsec\_has\_algorithm\_suite}}(uint8\_t\ alg\_suite);}
\DoxyCodeLine{00059\ }
\DoxyCodeLine{00065\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_gab73b95f5128846e114e4c865ae7f81cf}{rtr\_bgpsec\_get\_algorithm\_suites}}(\textcolor{keyword}{const}\ uint8\_t\ **algs\_arr);}
\DoxyCodeLine{00066\ }
\DoxyCodeLine{00071\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga06ccc1acd1a385735aa6b5c82027aad4}{rtr\_bgpsec\_free\_signatures}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *seg);}
\DoxyCodeLine{00072\ }
\DoxyCodeLine{00082\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga9315b7fd791d37dfdd4c8ecd1f900112}{rtr\_bgpsec\_new\_secure\_path\_seg}}(uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gae382b67d56735b6edfa721ba591f1175}{pcount}},\ uint8\_t\ \mbox{\hyperlink{rtr__pdus_8h_aa2585d779da0ab21273a8d92de9a0ebe}{flags}},\ uint32\_t\ \mbox{\hyperlink{rtr__pdus_8h_af54a4e57359d5c0dc5935878531a9e58}{asn}});}
\DoxyCodeLine{00083\ }
\DoxyCodeLine{00089\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga2d4bd0a47d34c79c34c1aa011d9f474f}{rtr\_bgpsec\_prepend\_sec\_path\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *new\_seg);}
\DoxyCodeLine{00090\ }
\DoxyCodeLine{00100\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga3c7a099f5bea442916ac5e8077611388}{rtr\_bgpsec\_new\_signature\_seg}}(uint8\_t\ *\mbox{\hyperlink{rtr__pdus_8h_a12038882b8c1e8109c0e4b1ea6f8cb5c}{ski}},\ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gae416f3a1f81da3b5f3df9b1d186bd1a9}{sig\_len}},\ uint8\_t\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaed4b28efa853473e1c780a35292b2285}{signature}});}
\DoxyCodeLine{00101\ }
\DoxyCodeLine{00111\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga785406619b2c36285bcaba7e5bc70153}{rtr\_bgpsec\_prepend\_sig\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *new\_seg);}
\DoxyCodeLine{00112\ }
\DoxyCodeLine{00123\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga784213173402e6a0e7e445378e1c7914}{rtr\_bgpsec\_new}}(uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gad95c036d25ce114cca924480585b0e97}{alg}},\ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga6a5f2e8fce661744a358244a54aad944}{safi}},\ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gab7dc6b6ed0af13dd11ff846d0fcb42b9}{afi}},\ uint32\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga4dd9f495b6b7d774b275d6e599918b24}{my\_as}},\ uint32\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gac8c9ef46ad63dfb79de8a4d45bf04e51}{target\_as}},}
\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga1d80cf9fda81ed3c92cd6df3331c083e}{nlri}});}
\DoxyCodeLine{00125\ }
\DoxyCodeLine{00131\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gab9e9157e6a9346340532f9bd61d572f3}{rtr\_bgpsec\_nlri\_new}}(\textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_gacb97c8e9530cb198806774905ca03e54}{nlri\_len}});}
\DoxyCodeLine{00132\ }
\DoxyCodeLine{00137\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga7341c1f304638573b90f9577d6c7b2e7}{rtr\_bgpsec\_nlri\_free}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaeb1c62458cc35831b9ce13c00b7dd011}{nlri}});}
\DoxyCodeLine{00138\ }
\DoxyCodeLine{00144\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga83280be031a6dc6662ae4d1b6c29150f}{rtr\_bgpsec\_free}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec);}
\DoxyCodeLine{00145\ }
\DoxyCodeLine{00151\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_gac2aa2ab380a95a3ce510f410055f9077}{rtr\_bgpsec\_free\_secure\_path}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *seg);}
\DoxyCodeLine{00152\ }
\DoxyCodeLine{00160\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga6faeb7d092e87b550f1abe39450e6fcc}{rtr\_bgpsec\_pop\_signature\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec);}
\DoxyCodeLine{00161\ }
\DoxyCodeLine{00169\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaf4f16784026638c9edd45f1a02d2c230}{rtr\_bgpsec\_pop\_secure\_path\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec);}
\DoxyCodeLine{00170\ }
\DoxyCodeLine{00180\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga90937970469024def59c46ba1e356bc4}{rtr\_bgpsec\_append\_sig\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *new\_seg);}
\DoxyCodeLine{00181\ }
\DoxyCodeLine{00189\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga24ecff08ba0976138ab9be55a74c8445}{rtr\_bgpsec\_append\_sec\_path\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *new\_seg);}
\DoxyCodeLine{00190\ }
\DoxyCodeLine{00196\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_gafee29d5b9fa5efc3828dbd5ff354b41f}{rtr\_bgpsec\_add\_spki\_record}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structspki__table}{spki\_table}}\ *table,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structspki__record}{spki\_record}}\ *record);}
\DoxyCodeLine{00197\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00198\ \textcolor{comment}{/*\ @\}\ */}}

\end{DoxyCode}
