\doxysection{bgpsec.\+h}
\hypertarget{bgpsec_8h_source}{}\label{bgpsec_8h_source}\index{rtrlib/bgpsec/bgpsec.h@{rtrlib/bgpsec/bgpsec.h}}
\mbox{\hyperlink{bgpsec_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\_H}}
\DoxyCodeLine{00018\ \textcolor{preprocessor}{\#define\ RTR\_BGPSEC\_H}}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{ip_8h}{rtrlib/lib/ip.h}}"{}}}
\DoxyCodeLine{00021\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{spkitable_8h}{rtrlib/spki/spkitable.h}}"{}}}
\DoxyCodeLine{00022\ }
\DoxyCodeLine{00023\ \textcolor{preprocessor}{\#include\ <stdint.h>}}
\DoxyCodeLine{00024\ }
\DoxyCodeLine{00025\ \textcolor{preprocessor}{\#define\ BGPSEC\_IPV4\ 1}}
\DoxyCodeLine{00026\ \textcolor{preprocessor}{\#define\ BGPSEC\_IPV6\ 2}}
\DoxyCodeLine{00027\ }
\DoxyCodeLine{00031\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga02fc9657b1a370e44d40cf158a895fee}{rtr\_bgpsec\_algorithm\_suites}}\ \{}
\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga02fc9657b1a370e44d40cf158a895feea810d0ce8d5538e90ae797516fce0403a}{RTR\_BGPSEC\_ALGORITHM\_SUITE\_1}}\ =\ 1,}
\DoxyCodeLine{00034\ \};}
\DoxyCodeLine{00035\ }
\DoxyCodeLine{00039\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga68db4b8982e72512221963390473920d}{rtr\_bgpsec\_rtvals}}\ \{}
\DoxyCodeLine{00041\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920dac4afb6c9d62f7348067da39406a30936}{RTR\_BGPSEC\_NOT\_VALID}}\ =\ 2,}
\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920da5bc92f4a86ecb254e085ee565c630425}{RTR\_BGPSEC\_VALID}}\ =\ 1,}
\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920da4b2d522b407118280d4e3145d2d7771d}{RTR\_BGPSEC\_SUCCESS}}\ =\ 0,}
\DoxyCodeLine{00047\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920da9da7ad6b6a05205d1df1221c44ede237}{RTR\_BGPSEC\_ERROR}}\ =\ -\/1,}
\DoxyCodeLine{00049\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920dacc4a12cda298e7f76be8bfd90560a463}{RTR\_BGPSEC\_LOAD\_PUB\_KEY\_ERROR}}\ =\ -\/2,}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920daba10f86e6916f030c8623fecd6ac4a80}{RTR\_BGPSEC\_LOAD\_PRIV\_KEY\_ERROR}}\ =\ -\/3,}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920da5d838e1e0070f6a0483056d84e5c793e}{RTR\_BGPSEC\_ROUTER\_KEY\_NOT\_FOUND}}\ =\ -\/4,}
\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920dac2bde30da1e8aedefa74eaeee64f47bf}{RTR\_BGPSEC\_SIGNING\_ERROR}}\ =\ -\/5,}
\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920dab96170b4b62053fb2c250dc3c5d50ab8}{RTR\_BGPSEC\_UNSUPPORTED\_ALGORITHM\_SUITE}}\ =\ -\/6,}
\DoxyCodeLine{00059\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920da7841ed69cb20185924ab0190f6b3775e}{RTR\_BGPSEC\_UNSUPPORTED\_AFI}}\ =\ -\/7,}
\DoxyCodeLine{00061\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920da2525e9bf30080965199c54116769e711}{RTR\_BGPSEC\_WRONG\_SEGMENT\_COUNT}}\ =\ -\/8,}
\DoxyCodeLine{00063\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__bgpsec__h_gga68db4b8982e72512221963390473920dab0b4eec01c7a160dddc36a927479c7c1}{RTR\_BGPSEC\_INVALID\_ARGUMENTS}}\ =\ -\/9,}
\DoxyCodeLine{00064\ \};}
\DoxyCodeLine{00065\ }
\DoxyCodeLine{00073\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ \{}
\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaacb2a93cf30e6cbef1124f8479978bee}{next}};}
\DoxyCodeLine{00076\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gae382b67d56735b6edfa721ba591f1175}{pcount}};}
\DoxyCodeLine{00077\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga047031904be7f4da731d07b2e7bb26e7}{flags}};}
\DoxyCodeLine{00078\ \ \ \ \ \ \ \ \ uint32\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga2f429bf09b57b43aa63ad9b6a3ecdb69}{asn}};}
\DoxyCodeLine{00079\ \};}
\DoxyCodeLine{00080\ }
\DoxyCodeLine{00088\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ \{}
\DoxyCodeLine{00089\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaa59d57a58627423fc3121b4aebed3814}{next}};}
\DoxyCodeLine{00090\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga8e248012e7dbae61f22c3cd5c1c1b12a}{ski}}[\mbox{\hyperlink{group__mod__spki__h_gab4e5fd509ba36700c4b28bb56dea86a1}{SKI\_SIZE}}];}
\DoxyCodeLine{00091\ \ \ \ \ \ \ \ \ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gae416f3a1f81da3b5f3df9b1d186bd1a9}{sig\_len}};}
\DoxyCodeLine{00093\ \ \ \ \ \ \ \ \ uint8\_t\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaed4b28efa853473e1c780a35292b2285}{signature}};}
\DoxyCodeLine{00094\ \};}
\DoxyCodeLine{00095\ }
\DoxyCodeLine{00105\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ \{}
\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga8fdf7a52fdd3292161b9b0a211377417}{afi}};}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga814cbd22dd2c801137b9a9a7f0a70bb6}{safi}};}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gacb97c8e9530cb198806774905ca03e54}{nlri\_len}};}
\DoxyCodeLine{00109\ \ \ \ \ \ \ \ \ uint8\_t\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaeb1c62458cc35831b9ce13c00b7dd011}{nlri}};}
\DoxyCodeLine{00110\ \};}
\DoxyCodeLine{00111\ }
\DoxyCodeLine{00125\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ \{}
\DoxyCodeLine{00126\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gad95c036d25ce114cca924480585b0e97}{alg}};}
\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga6a5f2e8fce661744a358244a54aad944}{safi}};}
\DoxyCodeLine{00128\ \ \ \ \ \ \ \ \ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gab7dc6b6ed0af13dd11ff846d0fcb42b9}{afi}};}
\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ uint32\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga4dd9f495b6b7d774b275d6e599918b24}{my\_as}};}
\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ uint32\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gac8c9ef46ad63dfb79de8a4d45bf04e51}{target\_as}};}
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gac0558d937e2a8b152bf910538ebb5cd5}{sigs\_len}};}
\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gaedca6831731b38f3a900b5d261991afe}{path\_len}};}
\DoxyCodeLine{00135\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga1d80cf9fda81ed3c92cd6df3331c083e}{nlri}};}
\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga9ac4281b75fa0e3b0f33d5eb7ca26d56}{sigs}};}
\DoxyCodeLine{00139\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga70c566ac333d38b555585a204f6fdb86}{path}};}
\DoxyCodeLine{00140\ \};}
\DoxyCodeLine{00141\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00142\ \textcolor{comment}{/*\ @\}\ */}}

\end{DoxyCode}
