aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/pubkey/ecdh
Commit message (Collapse)AuthorAgeFilesLines
* Add function to return the size of a key agreement outputJack Lloyd2018-08-121-0/+2
| | | | Very useful when using "Raw" DH/ECDH via the FFI API.
* Add EC_Group::inverse_mod_orderJack Lloyd2018-04-171-1/+1
| | | | | | | Centralizing this logic allows curve specific implementations such as using a precomputed ladder for exponentiating by p - 2 GH #1479
* Add PointGFp::encode as replacement for EC2OSPJack Lloyd2018-03-101-3/+3
| | | | | | Literally every single call to EC2OSP is converting the returned secure_vector to a std::vector. Which makes sense since private points are not really a thing in any protocol I know of.
* Add mixed (J+A) point addition, new scalar mul for base pointsJack Lloyd2018-03-081-3/+2
| | | | | | | | | Adds PointGFp::force_affine(), ::add_affine(), and ::is_affine() Use a (very simple) technique for base point precomputations. Stick with fixed window for variable point inputs. Scalar blinding is now always enabled
* New API for blinded ECC point multiplicationJack Lloyd2018-02-211-10/+14
| | | | No shared state
* Use shared representation of EC_GroupJack Lloyd2018-01-311-11/+7
| | | | Hide CurveGFp with an eye for eventual removal
* Apply final annotations to the library alsoJack Lloyd2017-09-222-2/+2
| | | | | Done by a perl script which converted all classes to final, followed by selective reversion where it caused compilation failures.
* Header file cleanupsJack Lloyd2017-09-211-0/+1
| | | | Some help from include-what-you-use
* Change header guard format to BOTAN_FOO_H_Jack Lloyd2017-09-201-2/+2
| | | | | | ISO C++ reserves names with double underscores in them Closes #512
* Add API stability annotations.Jack Lloyd2017-09-191-2/+2
| | | | | Defined in build.h, all equal to BOTAN_DLL so ties into existing system for exporting symbols.
* Fix various MSVC warningsJack Lloyd2017-08-311-1/+1
| | | | Based on VC2017 output
* Content:Tomasz Frydrych2017-04-032-3/+1
| | | | | | | | | * fixes for deprecated constructions in c++11 and later (explicit rule of 3/5 or implicit rule of 0 and other violations) * `default` specifier instead of `{}` in some places(probably all) * removal of unreachable code (for example `return` after `throw`) * removal of compilation unit only visible, but not used functions * fix for `throw()` specifier - used instead `BOTAN_NOEXCEPT` * removed not needed semicolons
* Remove "Dirty hack" for multiple defines in lex_me_harder()Simon Warta2017-04-021-1/+3
|
* Fix private key ctors API docs [ci skip]René Korthaus2017-01-271-2/+2
|
* Merge GH #779 Add ECDH/ECIES blinding and DH small subgroup checkingJack Lloyd2016-12-211-7/+13
|\
| * Blind the ECDH/ECIES agree operation.Never2016-12-191-7/+13
| |
* | Convert to using standard uintN_t integer typesJack Lloyd2016-12-182-7/+7
|/ | | | | | Renames a couple of functions for somewhat better name consistency, eg make_u32bit becomes make_uint32. The old typedefs remain for now since probably lots of application code uses them.
* Public_Key derived class ctors take an std::vector<byte>René Korthaus2016-12-111-1/+1
| | | | | | | Changes all the Public_Key derived classes ctors to take a std::vector instead of a secure_vector for the DER encoded public key bits. There is no point in transporting a public key in secure storage. (GH #768)
* Pubkey cleanupsJack Lloyd2016-11-121-9/+0
| | | | | | | | | | Add Public_Key::key_length usable for policy checking (as in TLS::Policy::check_peer_key_acceptable) Remove Public_Key::max_input_bits because it didn't make much sense for most algorithms actually. Remove message_parts and message_part_size from PK_Ops
* Remove Key_Type typedefsJack Lloyd2016-11-081-1/+0
| | | | Also part of Algo_Registry and not needed after #668
* Improve pubkey doxygen [ci skip]René Korthaus2016-10-191-1/+10
|
* OpenSSL EC: Correctly handle OpenSSL not supporting the curveJack Lloyd2016-10-091-2/+2
| | | | GH #656
* Revert PK_Verifier change (don't require RNG there).Jack Lloyd2016-10-071-5/+15
| | | | | | | Verification is deterministic and public, so really no RNG is ever needed. Change provider handling - accepts "base", "openssl", or empty, otherwise throws a Provider_Not_Found exception.
* Remove Algo_Registry usage from public key code.Jack Lloyd2016-10-072-2/+27
| | | | | | | | Instead the key types exposes operations like `create_encryption_op` which will return the relevant operation if the algorithm supports it. Changes pubkey.h interface, now RNG is passed at init time. Blinder previous created its own RNG, now it takes it from app.
* Support encoding of supported point formats extensionRené Korthaus2016-10-031-1/+10
|
* Mass-prefix member vars with m_René Korthaus2016-01-081-9/+9
|
* Fix pbkdf, pk padding and ECDH registration for static linking.Jack Lloyd2015-09-112-1/+3
| | | | | | | | With this change the tests pass when linked against a static library built in the normal (non-amalgamation) fashion. Remove the restriction in configure.py, and have circleci build the clang static build as a non-amalg.
* Remove alloc module; move secmem.h to base and locking_allocator to utilsJack Lloyd2015-08-291-1/+0
|
* pubkey: Add missing overridesDaniel Seither2015-07-302-4/+5
|
* In PK encrypt/decrypt move pad calls to the operation. This allows anlloyd2015-03-141-16/+10
| | | | | | | | | op to use a padding scheme outside of our knowledge or control, for instance an OpenSSL RSA op which uses OpenSSL's padding code. Similar change for key agreement and KDFs for the same reason. Add an EME_Raw type; previously this operation was implicit in the code in pubkey.cpp
* Remove algo factory, engines, global RNG, global state, etc.lloyd2015-02-041-1/+0
| | | | | | | | | | | | | | | Convert all uses of Algorithm_Factory and the engines to using Algo_Registry The shared pool of entropy sources remains but is moved to EntropySource. With that and few remaining initializations (default OIDs and aliases) moved elsewhere, the global state is empty and init and shutdown are no-ops. Remove almost all of the headers and code for handling the global state, except LibraryInitializer which remains as a compatability stub. Update seeding for blinding so only one hacky almost-global RNG instance needs to be setup instead of across all pubkey uses (it uses either the system RNG or an AutoSeeded_RNG if the system RNG is not available).
* Convert PK operations to using Algo_Registry instead of Engine.lloyd2015-02-032-22/+27
| | | | Remove global PRNG.
* Ensure all files have copyright and license info.lloyd2015-01-102-2/+2
| | | | | Update license header line to specify the terms and refer to the file, neither of which it included before.
* Move lib into srclloyd2014-01-103-0/+152