This repository has been archived by the owner on Sep 1, 2022. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reseed: rewrite implementation. Resolves #149.
* C++11 (minimum) refactor * Create/rewrite appropriate classes - Improve class Reseed - Create classes SU3, ZIP, X509, and HTTP - Refactoring: move the mess of local variables into a POD type - Use spec-identifiable constants instead of raw numbers - Move class ZIP to core/util/ZIP.{h,cpp} - Move class X509 to core/crypto/X509.{h,cpp} * Design rewrite - Create better reseed abstraction - See constructors, design, and interface of class Reseed/SU3/ZIP/X509 - Separate parsing: - Class SU3 parsing from X.509/signature parsing and from class ZIP parsing - Rewrite/refactor related class NetDb code - Refactor: get rid of -1 return values, use bool and adjust related code * Create/implement stream abstraction - Stream wrapper for strongly-typed classes * Abstract CryptoPP from class ZIP and class X509 - Pimpl ZIP decompression - Pimpl X.509 and separate cert processing from decoding - Ensure uncaught exceptions are caught - Cleanup pimpl-related directory structure * Feature: manual reseed: create/implement an overloaded --reseed-from run-time switch - Handles reseeding from file - Handles reseeding from specified URL * Feature: create/implement --reseed-skip-ssl-check run-time switch - Allows connecting to servers with certificates not shipped with Kovri (such as a local server) - Users can still put their self-signed cert in KOVRI_DATA_DIR/certificates/su3 and skip this switch if desired * HTTP: minor design refactor to accommodate new class Reseed design - Download function stores results in member stream, returns bool - HTTP response is stored in member variable - Logic design refactor to fix erroneous error response and help with debugging * Spec review - Ensure that SU3 implementation meets requirements and provides a minimal interface to implement future content-types and/or specifications (ex. for auto-update or news feed) - Ensure that ZIP meets minimum requirements for our use-case * Create secure sanity checks * Create unit tests (referencing #7) - Tests for class SU3, ZIP, and X509 - Cleanup unit-test directory structure and rename appropriate files - Adjust CMake accordingly * Document code - Extensive documentation where possible * Resolve any preexisting TODO's * General improvements and rewrites
- Loading branch information
Showing
38 changed files
with
2,423 additions
and
618 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.