実はIPsec実装もできるんじゃないか企画

IPsecは、鍵の交換と暗号化そのものが明確に分離されているアーキテクチャで、IKEは既存の実装を流用しつつ、暗号化(とIP)だけ自前で実装するという方向性が行けそうな気もする。
IPsec的には暗号化キーと、各エンドポイントのアドレスをSA(Security Association)としてIPスタック側に持たせている。IPスタックにSAを突っ込むためにはPF_KEYを使う。

PF_KEYそのものはSOCK_RAWなソケットで、それをユーザモードから横取りするのはあまり容易でないので、racoon2を元にrcpfkを置き換えるという方向性が良いように思える。

これがエクスポートしているものを全部置き換えれば。。