mirror of https://git.zx2c4.com/WireGuard
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
/* Copyright 2015-2016 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. */
|
|
|
|
#include "wireguard.h"
|
|
#include "device.h"
|
|
#include "crypto/chacha20poly1305.h"
|
|
#include "crypto/blake2s.h"
|
|
#include "crypto/siphash24.h"
|
|
#include "crypto/curve25519.h"
|
|
#include "noise.h"
|
|
#include "packets.h"
|
|
#include <linux/init.h>
|
|
#include <linux/module.h>
|
|
#include <net/rtnetlink.h>
|
|
|
|
static int __init mod_init(void)
|
|
{
|
|
int ret = 0;
|
|
|
|
#ifdef DEBUG
|
|
routing_table_selftest();
|
|
packet_counter_selftest();
|
|
curve25519_selftest();
|
|
chacha20poly1305_selftest();
|
|
blake2s_selftest();
|
|
siphash24_selftest();
|
|
#endif
|
|
chacha20poly1305_init();
|
|
noise_init();
|
|
|
|
ret = device_init();
|
|
if (ret < 0)
|
|
return ret;
|
|
|
|
pr_info("WireGuard loaded. See www.wireguard.io for information.\n");
|
|
pr_info("(C) Copyright 2015-2016 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.\n");
|
|
return ret;
|
|
}
|
|
|
|
static void __exit mod_exit(void)
|
|
{
|
|
device_uninit();
|
|
pr_debug("Wireguard has been unloaded\n");
|
|
}
|
|
|
|
module_init(mod_init);
|
|
module_exit(mod_exit);
|
|
MODULE_LICENSE("GPL v2");
|
|
MODULE_DESCRIPTION("Simple, secure, and speedy VPN tunnel");
|
|
MODULE_AUTHOR("Jason A. Donenfeld <Jason@zx2c4.com>");
|
|
MODULE_ALIAS_RTNL_LINK(KBUILD_MODNAME);
|