Skip to content
This repository has been archived by the owner on Sep 1, 2022. It is now read-only.

Merge branch 'development' into coverity_scan #181

Merged
merged 61 commits into from May 23, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
36af71d
CMake: revert 8eb187f (OSX brew OpenSSL fix).
anonimal Feb 17, 2016
d523405
Reseed: add zmx's SU3/TLS cert, update reseed list
anonimal Feb 17, 2016
63ecdbb
Merge pull request #138
anonimal Feb 17, 2016
9ba769b
License/Docs: update/cleanup documentation.
anonimal Feb 18, 2016
c1cf8d1
License/Docs: add Governance Process.
anonimal Feb 18, 2016
e959533
License/Docs: minor style update for BUILDING.md.
anonimal Feb 18, 2016
511215e
License/Docs: remove dangerous port-usage example.
anonimal Feb 18, 2016
013a025
License/Docs: link C4 to upstream in markup.
anonimal Feb 22, 2016
ee1d878
Merge pull request #135
anonimal Feb 22, 2016
ab35c35
CMake: remove erroneous addition to KOVRI_DATA_DIR
anonimal Feb 22, 2016
a4aa27a
Filesystem: move ./resources/* into KOVRI_DATA_DIR
anonimal Feb 22, 2016
c089b0e
Filesystem: tunnels.cfg is now tunnels.conf
anonimal Feb 22, 2016
a4567ee
CMake: update source directories for Doxygen.
anonimal Feb 22, 2016
b8a56ef
CMake: remove ghost client directory for Doxygen.
anonimal Feb 22, 2016
ce616d2
Doxygen: move output to doc/Doxygen + update docs.
anonimal Feb 22, 2016
d207188
Win32: remove Russian locale and codepage.
anonimal Feb 22, 2016
e350366
Documentation: add contact info to FAQ.md
anonimal Feb 23, 2016
a97fee0
Merge pull request #142
anonimal Feb 23, 2016
01c88db
GitHub: create issue/PR templates. Resolves #143.
anonimal Feb 25, 2016
828314e
Documentation: cleanup before Satoshi Roundtable.
anonimal Feb 25, 2016
6af88ab
Documentation: fix repeated step number in 828314e
anonimal Feb 25, 2016
e48fcff
GitHub: update issue/PR templates. Refs #143.
anonimal Feb 26, 2016
671d6db
Merge pull request #145
anonimal Feb 26, 2016
1a5af3a
Merge pull request #146
anonimal Feb 26, 2016
8c61f5d
Reseed: append null byte to compressed payloads.
anonimal Mar 1, 2016
df46814
updated readme to enhance attribution
fluffypony Mar 4, 2016
533a68b
Merge pull request #152
anonimal Mar 4, 2016
8d63e4d
Reseed: rewrite implementation. Resolves #149.
anonimal Apr 9, 2016
01a0e57
Merge pull request #162
fluffypony Apr 10, 2016
d649e8a
SSUSession: fill padding in SendSessionConfirmed.
anonimal Apr 10, 2016
0ee1d44
SSUSession: document SSU payload types. Refactor.
anonimal Apr 10, 2016
a2ab096
Doxygen: cleanup missing parameters, update CMake.
anonimal Apr 10, 2016
7d6a995
Documentation: cleanup style guide.
anonimal Apr 10, 2016
292ee95
Documentation: cleanup language and punctuation.
anonimal Apr 10, 2016
607e898
Version: bump to .25. Add pre-alpha. Closes #161.
anonimal Apr 10, 2016
90fcced
Cleanup: minor corrections to #162.
anonimal Apr 11, 2016
00a3c1c
Reseed: update server list + certs.
anonimal Apr 11, 2016
e39ed38
Reseed: add a TODO and revise another TODO.
anonimal Apr 11, 2016
3463dfe
Merge pull request #165
anonimal Apr 11, 2016
21a3fd0
Merge pull request #166
anonimal Apr 11, 2016
aa3124f
Merge pull request #167
anonimal Apr 11, 2016
5beae18
Crypto: rewrite preexisting refactor. Fixes #164.
anonimal Apr 14, 2016
09febe4
Crypto: add missing Ed25519 header. Fixes build.
anonimal Apr 14, 2016
bbbad58
Merge pull request #170
anonimal Apr 15, 2016
2408707
Crypto: finish pimpl refactor. Resolves #57.
anonimal Apr 20, 2016
6bf8b50
Merge pull request #171
anonimal Apr 21, 2016
637b9a9
Crypto: implement runtime AES-NI. Resolves #73.
anonimal Apr 30, 2016
5046b40
Merge pull request #172
anonimal May 1, 2016
243bb25
LogPrint: enhance reporting by prepending class.
anonimal May 7, 2016
4436f08
UPnP: fix typos that broke build.
anonimal May 7, 2016
2b9a369
ZIP: add missing header (I2PEndian.h)
anonimal May 7, 2016
4ed1af4
Build: update requirements/instructions.
anonimal May 8, 2016
48d2bb0
Docs: add notes about Clang/OSX/BSD support.
anonimal May 9, 2016
41347f0
Travis: attempt fix for GCC 5 installation.
anonimal May 9, 2016
ba92ee0
Travis: fix previously-made yaml error.
anonimal May 9, 2016
83c81d6
Merge pull request #174
anonimal May 9, 2016
eb4ff3f
Travis: update Coverity token/build command.
anonimal May 23, 2016
068ac04
README: Add Coverity status badge.
anonimal May 23, 2016
9b6c58a
README/FAQ: Update donation/FFS info. Resolves #43.
anonimal May 23, 2016
a7e8c0e
README: Add help options to quickstart.
anonimal May 23, 2016
87ab3bd
Merge branch 'development' into coverity_scan
anonimal May 23, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE.md
@@ -0,0 +1,12 @@
**By submitting this issue, I confirm the following:**

- I have read and understood the [contributor guide](https://github.com/monero-project/kovri/blob/master/doc/CONTRIBUTING.md).
- I have checked that the issue I am reporting can be replicated or that the feature I am suggesting is not present.
- I have checked opened or recently closed [pull requests](https://github.com/monero-project/kovri/pulls) for existing solutions/implementations to my issue/suggestion.

*Place an X inside the bracket to confirm*
- [ ] I confirm.

---

*Enter your issue here*
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,14 @@
**By submitting this pull request, I confirm the following:**

- I have read and understood the [contributor guide](https://github.com/monero-project/kovri/blob/master/doc/CONTRIBUTING.md).
- I have checked that another pull request for this purpose does not exist.
- I have considered and confirmed that this submission will be valuable to others.
- I accept that this submission may not be used and that this pull request may be closed by the will of the maintainer.
- I give this submission freely and claim no ownership to its content.

*Place an X inside the bracket to confirm*
- [ ] I confirm.

---

*Enter your pull request summary here*
4 changes: 3 additions & 1 deletion .gitignore
Expand Up @@ -5,7 +5,6 @@ build/CMakeCache.txt
build/CMakeFiles/*
build/Doxyfile
build/cmake_install.cmake
build/doc
build/kovri
build/kovri-benchmarks
build/kovri-tests
Expand All @@ -25,6 +24,9 @@ config.sub
# Monero-specific
github-merge.sh

# Doxygen
doc/Doxygen

#################
## Eclipse
#################
Expand Down
20 changes: 11 additions & 9 deletions .travis.yml
@@ -1,32 +1,34 @@
env:
global:
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
# via the "travis encrypt" command using the project repo's public key
#- secure: "Z3IXrEUCV/gada+XZ0mMTnIIlto/rutD3aDKZhrGzwNT19U41bLr75aXmQC5I8FtXW49J3UtxsYa51sb/sqwBdCeCpD8xhXFbW4ekTl+colIE43xv9A0xSU+LU9Cyi9kS5TtAxLii/OhNk2GV0c3mcxQBCkQGeZmu9m46OeOc44hl1Xa7ujlvSbFb9ITiUqYSsj0PQAM7aPhntXTvuDnXbfhqp/MMs/mObVjEDvahUjUxN2TxIBBBnljMX9XKiYEL/UjHe4vamlX0AlB+7sY6sYVLLTp1g5MDxFaPyc3+a6UVGE3dieQOKnGuMDPC2iZfOL29scAJ0BcxI4yFxxZS0Ozb46LMYEUcUHQlX8llLSiA9ELtVxwUrLCtsXxDz/lzgzxx6eomOzHnOvymi5oo/pY3QpGuoPq+ikgpUKxXyN89ppH0d7tuemCcGdAwv32UGyPL2Kus08bRU12+bF3dEroCmkQ/aYpF9wL9ZTES7pUQBZPnuVsT6v0bSJd3iQiopUIgPNjPlmOaGaLtue+KExj5cu/pynjtFGTGGD21hKLxO8yXOTFmhxytuPb4jjEPddng5h7FKqcUJShqCPpOqoA6zOvp2U/D5btaySb/WfyghGVO/BuIoIdKkwIHClPV7e4Q7s8eWIfYk9R93MdQCmcoCziPgc5UrZ4ZoJ9rss="
- GCC_VERSION=5
- secure: J4o/q57D7PAqV+hG5VUhwGJLH4ryFWy8YGVAlAOyrRVv9UxfbiihhyE5Yh68tjukdFqLt3WcHB3hoPz0VfbxWGdLQ9OR0r7xxYPetA0qVYcttpumcVSBra17CCRBYOcyRCfbgUY/LVRbKlr8zgkubRUW0skUcAgELyZJA6k/k+3pd1oDjdBLMLp+TeQvQnUtekw7eEzBl31bgpku3vHQEiYxMRY6FhBC0vojNJSjT56pqYzA/bOVrPNDATxHqDAxuEWfNiNQym4P2T+LmkC2utCWlwLBSqTauy54z4nKM6+0xEmRq2hmBWZeSv1tYuKJi8rmtAH5OozyVGSaXpuelcaWE4YrNCGEXOJZQvuD+IEuFVSkqXItoUIjlE1kP/zIDAZERMaISzXkp2xpPQFes8NLE3lNdcvMYYUjVfyUpYN0qE5/XX6Opii6Y8Sj6wQaz1Y5n3g1Lp5TMlQIVmmTUPAWoCq3U2BTPn+Ub8O8Z7Y/9Zr1xdz3gBEJaYv1CuxrSb3z3lQ9BjodBL1u+l5me+16dBe4RbpPwoWvLramJAvKEuDHMx93UnYU+PWs9B9UyIwEh/FxpvRyu8iyI6pfNWIsrc1jJ2nzf1YrnXOHb0C0CdwHH6p6Nzy/bOfaBOihiwc6o9r80AHq0RBbkH7euPOGFAo4iUgYTaS7R9Pw6Rk=
sudo: required
dist: trusty
language: cpp
compiler:
- gcc
# Uncomment when we can actually build with clang
#- clang
addons:
apt:
packages:
- gcc-5
- g++-5
- libboost-all-dev
- libcrypto++-dev
- libssl-dev
- libssl1.0.0
- libminiupnpc-dev
- doxygen
sources:
- ubuntu-toolchain-r-test
coverity_scan:
project:
name: "monero-project/kovri"
description: "The Kovri I2P Router Project"
name: monero-project/kovri
description: The Kovri I2P Router Project
notification_email: anonimal@i2pmail.org
build_command: "cd build && cmake -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DWITH_UPNP=ON -DWITH_DOXYGEN=ON ../ && make"
build_command: export CC=gcc-${GCC_VERSION} CXX=g++-${GCC_VERSION} && cd build && cmake -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DWITH_UPNP=ON -DWITH_DOXYGEN=ON ../ && make -j2
branch_pattern: coverity_scan
script: if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then cd build && cmake -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DWITH_UPNP=ON -DWITH_DOXYGEN=ON ../ && make doc && make ; fi
before_script: export CC=gcc-${GCC_VERSION} CXX=g++-${GCC_VERSION}
script: if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then cd build && cmake -DWITH_TESTS=ON -DWITH_BENCHMARKS=ON -DWITH_UPNP=ON -DWITH_DOXYGEN=ON ../ && make doc && make -j2 ; fi
notifications:
email: false
irc:
Expand Down
74 changes: 34 additions & 40 deletions CMakeLists.txt
Expand Up @@ -3,14 +3,15 @@ project("kovri")

# Configurable options
option(KOVRI_DATA_PATH "The path to the kovri data folder")
option(WITH_AESNI "Use AES-NI instructions set" OFF)
option(WITH_BENCHMARKS "Build with benchmarks" OFF)
option(WITH_BINARY "Build binary" ON)
option(WITH_CRYPTOPP "Build with Crypto++" ON) # Default ON unless we switch libraries
option(WITH_DOXYGEN "Enable support for Doxygen" OFF)
option(WITH_HARDENING "Use hardening compiler flags" OFF)
option(WITH_LIBRARY "Build library" ON)
option(WITH_OPTIMIZE "Optimization flags" OFF)
option(WITH_STATIC "Static build" OFF)
option(WITH_SUPERCOP "Build Ed25519 using the ref10 implementation from SUPERCOP" ON) # Default ON unless we switch implementations
option(WITH_TESTS "Build unit tests" OFF)
option(WITH_UPNP "Include support for UPnP client" OFF)

Expand All @@ -26,7 +27,7 @@ endif()

# Compiler flags customization (by vendor)
if(NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Winvalid-pch")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Winvalid-pch -maes")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -pedantic")
# TODO: The following is incompatible with static build and enabled hardening
# for OpenWRT.
Expand All @@ -37,16 +38,13 @@ if(NOT MSVC)
set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "-Wl,--gc-sections")
endif()

# Check for c++11 support
# Check for c++14 support
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" CXX11_SUPPORTED)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" CXX0X_SUPPORTED)
if(CXX11_SUPPORTED)
add_definitions("-std=c++11")
elseif(CXX0X_SUPPORTED) # gcc 4.6
add_definitions("-std=c++0x")
CHECK_CXX_COMPILER_FLAG("-std=c++14" CXX14_SUPPORTED)
if(CXX14_SUPPORTED)
add_definitions("-std=c++14")
elseif(NOT MSVC)
message(SEND_ERROR "C++11 standard not supported by compiler. Version too old?")
message(SEND_ERROR "C++14 standard not supported by compiler. See building instructions for minimum requirements.")
endif()

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
Expand All @@ -58,8 +56,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
"${CMAKE_CXX_FLAGS} -fstack-protector-strong -fPIE --param ssp-buffer-size=4 -z relro -z now")
endif()
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# Uncomment for verbose output
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -v")
message(SEND_ERROR "Clang is currently not supported. See building instructions for minimum requirements.")
endif()

# Compiler flags customization (by system)
Expand All @@ -68,21 +65,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
add_definitions("-D_GLIBCXX_USE_NANOSLEEP=1")
endif()

if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()

if(WITH_UPNP)
add_definitions(-DUSE_UPNP)
if(NOT MSVC)
set(DL_LIB ${CMAKE_DL_LIBS})
endif()
endif()

if(WITH_AESNI)
add_definitions("-maes -DAESNI")
endif()

if(WITH_OPTIMIZE AND (NOT MSVC))
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
endif()
Expand Down Expand Up @@ -131,28 +120,33 @@ if(NOT Boost_FOUND)
message(SEND_ERROR "Boost not found, or version below 1.46. Please download Boost!")
else()
add_definitions(-DBOOST_ALL_DYN_LINK)
include_directories(${Boost_INCLUDE_DIRS})
endif()

find_package(CryptoPP REQUIRED)
if(NOT DEFINED CRYPTO++_INCLUDE_DIR)
message(SEND_ERROR "Could not find Crypto++. Please download and install it first!")
endif()

find_package(OpenSSL REQUIRED)
if(NOT DEFINED OPENSSL_INCLUDE_DIR)
message(SEND_ERROR "Could not find OpenSSL. Please download and install it first!")
if(WITH_CRYPTOPP)
find_package(CryptoPP REQUIRED)
if(NOT DEFINED CRYPTO++_INCLUDE_DIR)
message(SEND_ERROR "Could not find Crypto++. Please download and install it first!")
endif()
include_directories(${CRYPTO++_INCLUDE_DIR})
endif()

if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
if(APPLE)
# If we're on OS X check for Homebrew's copy of OpenSSL instead of Apple's
if(NOT OpenSSL_DIR)
execute_process (
COMMAND brew --prefix openssl
if (NOT OpenSSL_DIR)
execute_process (COMMAND brew --prefix openssl
OUTPUT_VARIABLE OPENSSL_ROOT_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
endif()

find_package(OpenSSL REQUIRED)
if(NOT DEFINED OPENSSL_INCLUDE_DIR)
message(SEND_ERROR "Could not find OpenSSL. Please download and install it first!")
else()
include_directories(${OPENSSL_INCLUDE_DIR})
endif()

find_package(MiniUPnPc)
if(NOT ${MINIUPNPC_FOUND})
set(WITH_UPNP OFF)
Expand All @@ -163,8 +157,8 @@ if(WITH_DOXYGEN)
include(UseDoxygen)
endif()

# Load includes
include_directories(${CMAKE_SOURCE_DIR} ${Boost_INCLUDE_DIRS} ${CRYPTO++_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR})
# Load remaining includes
include_directories(${CMAKE_SOURCE_DIR})

# Set default path
if(KOVRI_DATA_PATH)
Expand All @@ -188,14 +182,15 @@ message(STATUS "Compiler path : ${CMAKE_CXX_COMPILER}")
message(STATUS "Install prefix: : ${CMAKE_INSTALL_PREFIX}")
message(STATUS "Kovri data directory: ${KOVRI_DATA_DIR}")
message(STATUS "Options:")
message(STATUS " AESNI : ${WITH_AESNI}")
message(STATUS " BENCHMARKS : ${WITH_BENCHMARKS}")
message(STATUS " BINARY : ${WITH_BINARY}")
message(STATUS " CRYPTOPP : ${WITH_CRYPTOPP}")
message(STATUS " DOXYGEN : ${WITH_DOXYGEN}")
message(STATUS " HARDENING : ${WITH_HARDENING}")
message(STATUS " LIBRARY : ${WITH_LIBRARY}")
message(STATUS " OPTIMIZATION : ${WITH_OPTIMIZE}")
message(STATUS " STATIC BUILD : ${WITH_STATIC}")
message(STATUS " SUPERCOP : ${WITH_SUPERCOP}")
message(STATUS " TESTS : ${WITH_TESTS}")
message(STATUS " UPnP : ${WITH_UPNP}")
message(STATUS "---------------------------------------")
Expand All @@ -210,12 +205,11 @@ set(TESTS_NAME "${PROJECT_NAME}-tests")
set(BENCHMARKS_NAME "${PROJECT_NAME}-benchmarks")
add_subdirectory(src)

# Copy resources
# Copy needed resources
if(WITH_BINARY)
file(MAKE_DIRECTORY "${KOVRI_DATA_DIR}/pkg/resources/certificates")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pkg/resources/certificates" DESTINATION "${KOVRI_DATA_DIR}/resources/")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pkg/resources/kovri.conf" DESTINATION "${KOVRI_DATA_DIR}/")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pkg/resources/tunnels.cfg" DESTINATION "${KOVRI_DATA_DIR}/")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pkg/certificates" DESTINATION "${KOVRI_DATA_DIR}/")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pkg/kovri.conf" DESTINATION "${KOVRI_DATA_DIR}/")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/pkg/tunnels.conf" DESTINATION "${KOVRI_DATA_DIR}/")
endif()

# vim: noai:ts=2:sw=2
53 changes: 32 additions & 21 deletions README.md
@@ -1,41 +1,52 @@
# **ˈKɔːvrɪ**

1. To cover, veil, wrap *[(Esperanto)](https://en.wikipedia.org/wiki/Esperanto)*
2. The secure, private, untraceable C++ router implementation of the [I2P](https://geti2p.net) anonymous network,
1. To cover, veil, wrap *[(Esperanto)](https://en.wikipedia.org/wiki/Esperanto)*.
2. A secure, private, untraceable C++ implementation of the [I2P](https://geti2p.net) anonymous network.

[![Build Status](https://travis-ci.org/monero-project/kovri.svg?branch=master)](https://travis-ci.org/monero-project/kovri)
[![Coverity status](https://scan.coverity.com/projects/7621/badge.svg)](https://scan.coverity.com/projects/7621/)
[![Documentation](https://codedocs.xyz/monero-project/kovri.svg)](https://codedocs.xyz/monero-project/kovri/)

## Disclaimer
- Currently pre-alpha software; under heavy overhaul and development! Stick to branch ```master``` for stability.
- See branch ```development``` for the meat of Kovri evolution.
- Currently pre-alpha software; under heavy development
- Use branch ```master``` for most stability
- See branch ```development``` for most recent activity

## Quickstart
1. Download/install the **latest** [CMake](https://cmake.org/), [Boost](http://www.boost.org/), [Crypto++](https://cryptopp.com/#download), and [OpenSSL](https://www.openssl.org/source/). If you use a package manager, check against [BUILDING.md](https://github.com/monero-project/kovri/blob/master/BUILDING.md) for minimum version requirements.
1. Choose a port between ```9111``` and ```30777```. For this example, we'll use port ```12345```. **Please, do not use this number outside of this example as it will effect your anonymity**.
2. Open port ```12345``` in your NAT/Firewall to allow incoming TCP/UDP connections.
3. Clone, build, and run Kovri with one line:
1. Read [Build Instructions](https://github.com/monero-project/kovri/blob/master/doc/BUILDING.md) for instructions and minimum version requirements
1. Choose a port between ```9111``` and ```30777```
2. Open your NAT/Firewall to allow incoming TCP/UDP connections to your chosen port (UPnP optional; see [Build Instructions](https://github.com/monero-project/kovri/blob/master/doc/BUILDING.md))
3. Clone, build, and run Kovri:
```bash
$ git clone https://github.com/monero-project/kovri && cd kovri/build && cmake ../ && make && ./kovri -p 12345
$ git clone https://github.com/monero-project/kovri
$ cd kovri/build && cmake ../ && make
$ ./kovri -p [your chosen port number]
```
- For quick help options: ```$ ./kovri --help```
- For a detailed listing of options: ```$ ./kovri --help-with all```

## Build. Contribute. Ask questions!
- See [BUILDING.md](https://github.com/monero-project/kovri/blob/master/doc/BUILDING.md) for more options and instructions for your favourite OS.
- See [CONTRIBUTING.md](https://github.com/monero-project/kovri/blob/master/doc/CONTRIBUTING.md) and send us a PR. All developers welcome!
- See [FAQ.md](https://github.com/monero-project/kovri/blob/master/doc/FAQ.md) or join us in ```#kovri``` or ```#kovri-dev``` on Irc2P or Freenode.
- All documentation is on our ./doc directory
## Documentation
- Read our [FAQ](https://github.com/monero-project/kovri/blob/master/doc/FAQ.md) or join us in ```#kovri``` or ```#kovri-dev``` on Freenode or Irc2P
- All other documentation is on our [doc](https://github.com/monero-project/kovri/tree/master/doc) directory

## Developers
- Visit our [Forum Funding System](https://forum.getmonero.org/8/funding-required) to get funded for your work
- Read our [Contributing Guide](https://github.com/monero-project/kovri/blob/master/doc/CONTRIBUTING.md) before sending PR

## Donations
- Visit our [Donations Page](https://getmonero.org/getting-started/donate/) help Kovri with your donations

## Vulnerability Response
- Please, submit a report via [HackerOne](https://hackerone.com/kovri)
- If you're having trouble using HackerOne, email us *(please, use PGP)*:
```
anonimal@mail.i2p (or @i2pmail.org if you're not on the I2P network)
PGP fingerprint: 1218 6272 CD48 E253 9E2D D29B 66A7 6ECF 9144 09F1
anonimal [anonimal @ mail.i2p] or [anonimal @ i2pmail.org]
Key fingerprint = 1218 6272 CD48 E253 9E2D D29B 66A7 6ECF 9144 09F1
```
Note: our future VRP will be inline with [I2P's VRP](https://trac.i2p2.de/ticket/1119).
Note: our future VRP will be inline with [I2P's VRP](https://trac.i2p2.de/ticket/1119)

## Acknowledgments
- **orion** and **EinMByte** for providing ```i2pcpp```: the [original](http://git.repo.i2p.xyz/w/i2pcpp.git) C++ implementation of I2P.
- **orignal** for providing ```i2pd```: an insecure and issue-ridden (but mostly-working) C++ implementation of I2P for [us to fork from](https://github.com/purplei2p/i2pd/commit/45d27f8ddc43e220a9eea42de41cb67d5627a7d3).
- **EinMByte** for improving *both* implementations.
- The ed25519/ folder is based on the [ref10 implementation from SUPERCOP](http://bench.cr.yp.to/supercop.html).
- **orignal** for providing ```i2pd```: the most feature-complete C++ implementation of I2P for [us to fork from](https://github.com/purplei2p/i2pd/commit/45d27f8ddc43e220a9eea42de41cb67d5627a7d3)
- **orion** for providing ```i2pcpp```: the [original](http://git.repo.i2p.xyz/w/i2pcpp.git) C++ implementation of I2P
- **EinMByte** for improving *both* implementations
- The ed25519/ folder is based on the [ref10 implementation from SUPERCOP](http://bench.cr.yp.to/supercop.html)
30 changes: 23 additions & 7 deletions build/cmake/UseDoxygen.cmake
Expand Up @@ -95,7 +95,7 @@ if(DOXYGEN_FOUND)
endif()

if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND)
usedoxygen_set_default(DOXYFILE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc"
usedoxygen_set_default(DOXYFILE_OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxygen"
PATH "Doxygen output directory")
usedoxygen_set_default(DOXYFILE_HTML_DIR "."
STRING "Doxygen HTML output directory")
Expand All @@ -106,17 +106,33 @@ if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND)
### See https://github.com/monero-project/kovri/issues/68
### TODO(anonimal): resolve this patch
usedoxygen_set_default(DOXYFILE_SOURCE_API
"${DOXYFILE_SOURCE_DIR}/api ${DOXYFILE_SOURCE_DIR}/api/I2PControl ${DOXYFILE_SOURCE_DIR}/api/I2PTunnel"
STRING "API source files")
"${DOXYFILE_SOURCE_DIR}/app ${DOXYFILE_SOURCE_DIR}/app/util"
STRING "Application source files")
usedoxygen_set_default(DOXYFILE_SOURCE_CLIENT
"${DOXYFILE_SOURCE_DIR}/client ${DOXYFILE_SOURCE_DIR}/client/util"
"${DOXYFILE_SOURCE_DIR}/client \
${DOXYFILE_SOURCE_DIR}/client/I2PControl \
${DOXYFILE_SOURCE_DIR}/client/I2PTunnel"
STRING "Client source files")
usedoxygen_set_default(DOXYFILE_SOURCE_CORE
"${DOXYFILE_SOURCE_DIR}/core ${DOXYFILE_SOURCE_DIR}/core/crypto ${DOXYFILE_SOURCE_DIR}/core/crypto/ed25519 ${DOXYFILE_SOURCE_DIR}/core/transport ${DOXYFILE_SOURCE_DIR}/core/tunnel ${DOXYFILE_SOURCE_DIR}/core/util"
"${DOXYFILE_SOURCE_DIR}/core \
${DOXYFILE_SOURCE_DIR}/core/crypto \
${DOXYFILE_SOURCE_DIR}/core/crypto/pimpl \
${DOXYFILE_SOURCE_DIR}/core/crypto/pimpl/cryptopp/ \
${DOXYFILE_SOURCE_DIR}/core/crypto/pimpl/cryptopp/util/ \
${DOXYFILE_SOURCE_DIR}/core/crypto/pimpl/supercop/ \
${DOXYFILE_SOURCE_DIR}/core/crypto/pimpl/supercop/ed25519 \
${DOXYFILE_SOURCE_DIR}/core/crypto/util \
${DOXYFILE_SOURCE_DIR}/core/transport \
${DOXYFILE_SOURCE_DIR}/core/tunnel \
${DOXYFILE_SOURCE_DIR}/core/util"
STRING "Core source files")
usedoxygen_set_default(DOXYFILE_SOURCE_CLIENT
"${DOXYFILE_SOURCE_DIR}/tests/benchmarks ${DOXYFILE_SOURCE_DIR}/tests/unit_tests"
STRING "Tests source files")
"${DOXYFILE_SOURCE_DIR}/tests/benchmarks \
${DOXYFILE_SOURCE_DIR}/tests/unit_tests \
${DOXYFILE_SOURCE_DIR}/tests/unit_tests/core \
${DOXYFILE_SOURCE_DIR}/tests/unit_tests/core/crypto \
${DOXYFILE_SOURCE_DIR}/tests/unit_tests/core/util"
STRING "Unit-tests/Benchmarks")
set(DOXYFILE_SOURCE_DIRS "\"${DOXYFILE_SOURCE_DIR}\" ${DOXYFILE_SOURCE_API} ${DOXYFILE_SOURCE_CLIENT} ${DOXYFILE_SOURCE_CORE} ${DOXYFILE_SOURCE_TESTS}")

usedoxygen_set_default(DOXYFILE_LATEX YES BOOL "Generate LaTeX API documentation" OFF)
Expand Down