aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/pubkey
Commit message (Collapse)AuthorAgeFilesLines
* NewHope cleanupJack Lloyd2016-11-091-63/+300
| | | | Remove old style casts, wrap some very long lines.
* Correct comment [ci skip]Jack Lloyd2016-11-081-1/+1
|
* Remove Key_Type typedefsJack Lloyd2016-11-0811-23/+0
| | | | Also part of Algo_Registry and not needed after #668
* Remove Spec typedef from pk_opsJack Lloyd2016-11-081-35/+0
| | | | Was used by Algo_Registry lookups, no longer needed after #668
* Update Doxygen comment [ci skip]Jack Lloyd2016-11-061-1/+0
|
* Merge GH #710 Allow custom EC curve to be specified at build timeJack Lloyd2016-11-041-0/+5
|\
| * Add an in-house EC curve for TLS at compile-timeRené Korthaus2016-11-031-0/+5
| | | | | | | | | | | | One additional, application-specific curve can be added at compile time, using the new configure.py --house-curve=curve.pem,funky311,1.2.3.4,FEFF.
* | Merge GH #714 Use pk_ops_fwd headerJack Lloyd2016-11-041-12/+1
|\ \
| * | use "forward declare header" pk_ops_fwd.h instead of self forward declaring themDaniel Neus2016-11-041-12/+1
| |/
* / Fix PKCS11 test errorJack Lloyd2016-11-042-12/+51
|/ | | | | | | | | | | | | | Previously PKCS11_ECDSA_PrivateKey::check_key failed because no verification is possible using this key type (does not derive from public key). Split keypair consistency to allow two key arguments. ECDSA keypair consistency disabled in the tests still, because SoftHSMv2 gives mechanism invalid errors. I think this is a SoftHSMv2 issue with the signature mechanism. Remove no longer used Key_Type typedefs (need to be removed everywhere). GH #712
* Simplify some code by using T::create_or_throwJack Lloyd2016-11-032-21/+7
|
* Merge GH #706 Remove ability to add OIDs at runtime. Remove OID lockJack Lloyd2016-11-033-3/+0
|\
| * Remove ability to add OIDS at runtime. Remove global OID lock.Jack Lloyd2016-11-033-3/+0
| | | | | | | | | | | | | | | | | | | | | | OID map is now generated from an input file on an as needed basis. Just uses a sequence of ifs - simple, fast, and small code size. Merges oid_lookup sub-module which was already required by asn1 anyway, so completely non-optional. Removes @neusdan's nice OID tests since without any runtime adds the tests are moot.
* | Remove automatic self-testing of public and private keysJack Lloyd2016-11-0316-131/+36
|/ | | | | | | | | | | | | Rarely expected and often causes performance problems, especially for private keys. Instead applications should call check_key explicitly to validate keys when necessary. Note this removal doesn't apply to tests like ECDH on-the-curve tests, where a check on the public key is required for security of our own key. Updates most APIs to remove RNG calls, where they are no longer required. Exception is PKCS8 interface, pending further work there (see GH #685) it just ignores the RNG argument now.
* Move cert/x509 to top level and pem and pbes2 to pubkey.Jack Lloyd2016-11-036-0/+504
| | | | | | | | | The `cert` dir was just an artifact of having previously supported CVC (smartcard cert format), removed a long time ago. The pem and pbes2 code is directly related to the pubkey code, in fact the only caller of pbes2 (likely anywhere, not just in the library) is in pkcs8.cpp
* Fix ECKCDSA verification problemNever2016-11-011-1/+1
|
* ECKCDSA improved verification (Shamirs Trick for speed and calculate length ↵Never2016-10-311-10/+8
| | | | of r)
* Fix hardcoded SHA-1 in eckcdsa consistency checkRené Korthaus2016-10-241-1/+1
|
* Fix hardcoded SHA-1 in elgamal consistency checkRené Korthaus2016-10-241-1/+1
|
* Merge GH #673 X25519 TLS key exchangeJack Lloyd2016-10-242-6/+16
|\
| * X25519 key exchange for TLSJack Lloyd2016-10-212-6/+16
| | | | | | | | | | Client interops with google.com, server not tested against an independent client yet.
* | Use correct macro for ECC in create_private_keyJack Lloyd2016-10-221-1/+1
|/
* Add create_private_key, expose key loading functions in pk_algs.hJack Lloyd2016-10-205-67/+189
|
* Merge GH #669 Add SHA-3, SHAKE-128, and BoringSSL-mode NewHopeJack Lloyd2016-10-203-117/+90
|\
| * Add SHAKE-128 as stream cipherJack Lloyd2016-10-193-105/+91
| | | | | | | | | | Updates NewHope to use that instead of the hard-coded SHAKE-128, and adds toggle for BoringSSL compat mode using AES-128/CTR + SHA-256.
| * Add proper SHA-3Jack Lloyd2016-10-193-24/+11
| | | | | | | | | | | | | | | | | | | | Kind of a copy and paste of Keccak, but only a single copy of the permutation at least. Keccak depends on SHA-3 instead of the reverse, so that SHA-3 can be enabled without also bringing in an unapproved hash function. Updates newhope code and removes API function newhope_hash which was an unofficial SHA-3-256.
* | Reorganize anon namespace code to fix last doxygen warn [ci skip]René Korthaus2016-10-201-8/+8
| |
* | Fix doxygen warnings [ci skip]René Korthaus2016-10-198-6/+33
| |
* | Improve pubkey doxygen [ci skip]René Korthaus2016-10-1915-17/+251
|/
* Indent include so amalgamation works correctlyJack Lloyd2016-10-171-2/+1
| | | | | Otherwise <future> is thrown into the top of botan_all.h which causes problems on IncludeOS
* Abstract out mutex type. Make threads optional.Jack Lloyd2016-10-122-2/+24
|
* Add IncludeOS target. Make filesystem support optional.Jack Lloyd2016-10-104-0/+9
|
* Fix Clang warningsJack Lloyd2016-10-091-2/+2
|
* OpenSSL EC: Correctly handle OpenSSL not supporting the curveJack Lloyd2016-10-092-6/+6
| | | | GH #656
* This happening is actually a user error (eg, wrong key type)Jack Lloyd2016-10-091-7/+14
|
* Make pk_ops.h internalJack Lloyd2016-10-088-31/+107
| | | | Some fixes for missing system_rng in ECIES and tests.
* Add missing try/catch blocks.Jack Lloyd2016-10-071-1/+27
| | | | Document that create_*_op is public but not for public consumption.
* Revert PK_Verifier change (don't require RNG there).Jack Lloyd2016-10-0722-119/+173
| | | | | | | 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-0737-184/+785
| | | | | | | | 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.
* Merge GH #645 TLS compressed pointsJack Lloyd2016-10-071-1/+10
|\
| * Support encoding of supported point formats extensionRené Korthaus2016-10-031-1/+10
| |
* | 2nd review roundseu2016-10-023-0/+32
|/
* Maintainer mode fixes.Jack Lloyd2016-09-211-2/+2
| | | | | | Mostly unused args and missing override notations. Fix DH - load_check calls were commented out for debugging.
* Change T::provider to return std::stringJack Lloyd2016-09-151-2/+2
|
* Merge GH #613 NewHope R-LWE key exchangeJack Lloyd2016-09-053-0/+652
|\
| * Fix tests on things that are not little endianJack Lloyd2016-08-301-12/+6
| |
| * Avoid requiring alignment (think this was just for the AVX2 version)Jack Lloyd2016-08-302-37/+35
| | | | | | | | Change to standard int types
| * Fix header guard, macro tidyJack Lloyd2016-08-302-5/+7
| |
| * Add NEWHOPE KEM schemeJack Lloyd2016-08-303-0/+658
| | | | | | | | | | | | | | | | | | | | Provides conjectured 200-bit security against a quantum attacker. Based on the public domain reference implementation at https://github.com/tpoeppelmann/newhope and bit-for-bit compatible with that version. Test vectors generated by the reference testvector.c
* | Remove IF_Scheme_{Public,Private}KeyJack Lloyd2016-09-026-283/+186
| | | | | | | | | | | | With the removal of Rabin-Williams, RSA is the only remaining subclass, And it's very unlikely any new integer factorization based scheme would be added in the future.