aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Internal header cleanupsJack Lloyd2015-09-1980-289/+213
| | | | Only user-visible change is the removal of get_byte.h
* Handle dependencies re static linking. GH #279Jack Lloyd2015-09-1735-192/+291
| | | | | | | | | | | | | | Previously we were hanging on the type destructors to pull in the relevant objects. However that fails in many simple cases where the object is never deleted. For every type involved in the algo registry add static create and providers functions to access the algo registry. Modify lookup.h to be inline and call those functions, and move a few to sub-headers (eg, get_pbkdf going to pbkdf.h). So accessing the registry involves going through the same file that handles the initialization, so there is no way to end up with missing objs.
* Fix for minimized buildsJack Lloyd2015-09-111-1/+4
|
* Fix pbkdf, pk padding and ECDH registration for static linking.Jack Lloyd2015-09-1126-116/+155
| | | | | | | | 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.
* Same treatment for cipher modesJack Lloyd2015-09-1013-51/+118
|
* Fix static lib registration for block, hash, mac, stream, kdfJack Lloyd2015-09-1080-218/+685
| | | | | | | | | | | The support problems from having static libraries not work in the obvious way will be endless trouble. Instead have each set of registrations tag along in a source file for the basic type, at the cost of some extra ifdefs. On shared libs this is harmless - everything is going into the shared object anyway. With static libs, this means pulling in a single block cipher pulls in the text of all the them. But that's still strictly better than the amalgamation (which is really pulling in everything), and it works (unlike status quo).
* Prevent users from building static non-amalgamations on MinGW and CygwinSimon Warta2015-09-092-6/+2
| | | | | | | | * Rename variable to avoid confusion of build_shared and options.build_shared_lib * Don't automatically change shared -> static. Force user to do that Fixes #211
* .PHONY must be a rule, not a variableSimon Warta2015-09-091-1/+1
| | | | Found by JOM on MinGW.
* Update travis configuration for iOS buildSimon Warta2015-09-026-55/+74
| | | | Closes #188
* Add missing compression overridesSimon Warta2015-09-013-2/+3
|
* Move Credentials_Manager to TLSJack Lloyd2015-08-294-6/+1
|
* Remove alloc module; move secmem.h to base and locking_allocator to utilsJack Lloyd2015-08-2915-21/+1
|
* Fix OpenSSL RSA to better handle no padding mode.Jack Lloyd2015-08-293-10/+45
| | | | | | In raw mode pad out plaintext inputs with zeros as needed as otherwise OpenSSL rejects the input as too small. And when decrypting, strip leading zeros to match the behavior of the base implementation.
* Reverse the algorithm priority orderingJack Lloyd2015-08-2914-25/+50
| | | | | | Previously 0 was the highest priority and 255 was the lowest. But this is really quite confusing, instead treat 0 as lowest and 255 as highest so normal integer intuitions apply.
* Remove unneeded includes and clean up socket feature testJack Lloyd2015-08-294-12/+8
|
* Fix minimized builds and amalgamation buildsJack Lloyd2015-08-294-21/+35
| | | | | | | | No need to include the pk_utils.h header until we know ECDSA is enabled in the build. Move OpenSSL_Error to an internal header, was previously defined twice when all sources were combined.
* Merge pull request #236 from bogiord/add-alloc-constructorJack Lloyd2015-08-291-4/+7
|\ | | | | | | | | Make secure_allocator conforming with C++11 allocator concept. Add a template constructor and make the equality operators standard-compliant. Missing this broke iterator debugging with MSVC 2015.
| * Make the equality operators standard-compliant.bogdan2015-08-291-4/+4
| | | | | | The equality operators need to support different specializations as well; this is also part of the standard allocator requirements.
| * Add template constructor to secure_allocatorbogdan2015-08-051-0/+3
| | | | | | This is required by the Standard for an allocator. As far as I can tell, not having it breaks compilation in MSVC 2015, at least when iterator debugging is enabled. More details here: http://stackoverflow.com/q/31802806/4326278.
* | Avoid a crash in the TLS server if the client sends ALPN but no nextJack Lloyd2015-08-281-1/+1
| | | | | | | | protocol handler was specified to the Server constructor. GH #252
* | Add ECDSA provider using OpenSSLJack Lloyd2015-08-281-0/+217
| | | | | | | | | | Unfortunately the signer cannot be tested in current framework because OpenSSL does not use RFC 6979 deterministic signatures.
* | Remove unused variableJack Lloyd2015-08-281-3/+0
| |
* | Fix pk signature test framework bug.Jack Lloyd2015-08-281-5/+5
| | | | | | | | | | | | | | | | Was attempting to test that the all-zero signature is invalid, then tested some mutated signatures. Unfortunately it zeroed out the signature before doing the mutation tests, so the mutated signatures were all very-low Hamming weight strings instead of being close to the original valid signature.
* | PK speed reporting improvements.Jack Lloyd2015-08-281-4/+9
| | | | | | | | | | | | | | | | | | | | Increment the input message so each value is different rather than repeatedly hashing the same message until we regen a new random one. In ECDSA speed test be explicit about what group is being used. Remove 160 bit groups from ECC benchmarking; 80 bits is not enough anymore so doesn't much matter.
* | Move GF(p) side channel countermeasure toggles to build.hJack Lloyd2015-08-283-28/+59
| | | | | | | | Some tweaks for point multiplication using fixed windows.
* | Use 16 byte alignment for all allocations in the mlock allocatorJack Lloyd2015-08-281-7/+1
| |
* | Add override specifiers to zlib.hJack Lloyd2015-08-281-6/+6
| |
* | Gzip_Decompression should be a subclass of Stream_DecompressionJack Lloyd2015-08-281-1/+1
| | | | | | | | GH #264
* | Merge pull request #265 from tiwoc/compress-empty-bufferJack Lloyd2015-08-282-7/+22
|\ \ | | | | | | Fix zlib error when compressing an empty buffer
| * | Compression: Fix zlib failure on compression of empty inputDaniel Seither2015-08-281-0/+8
| | | | | | | | | | | | | | | zlib treats a nullptr output buffer as an error. This commit fixes the failing compression tests.
| * | Compression: Prevent undefined behavior when feeding empty inputDaniel Seither2015-08-281-7/+7
| | | | | | | | | | | | | | | | | | &emptyVector[n] triggers undefined behavior because it is an out-of- bounds access, even if n == 0. emptyVector.data() does not (but may return nullptr).
| * | Add test for compression of an empty bufferDaniel Seither2015-08-281-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This test currently fails: $ ./botan-test compression Failure testing zlib - zlib deflate error -2 Failure testing deflate - zlib deflate error -2 Failure testing gzip - zlib deflate error -2 Compression 3 tests 3 FAILs =============== Tests 3 FAILs
* | | Merge pull request #247 from mouse07410/masterJack Lloyd2015-08-281-69/+174
|\ \ \ | | | | | | | | Improve readability and usability of test-output of botan.py GH #247
| * | | Changed tabs to 4 spacesMouse2015-08-141-5/+5
| | | |
| * | | Merge pull request #1 from randombit/masterMouse2015-08-1418-66/+15
| |\ \ \ | | | | | | | | | | Merging mainstream updates
| * | | | Restored Darwin compatibilityUri Blumenthal2015-08-141-1/+4
| | | | |
| * | | | Ported python demo script to python-3Uri Blumenthal2015-08-141-61/+129
| | | | |
| * | | | Fixing platform independence that previous patch brokeMouse2015-08-121-1/+1
| | | | |
| * | | | Made output prettier and more understandableUri Blumenthal2015-08-111-31/+65
| | | | |
* | | | | Merge pull request #163 from cordney/add-pkcs8-cmdJack Lloyd2015-08-281-0/+77
|\ \ \ \ \ | |_|_|/ / |/| | | | Add PKCS#8 private/public key processing tool GH #163
| * | | | Don't register PKCS8 cmdline app when build without pubkey moduleRené Korthaus2015-07-171-0/+4
| | | | |
| * | | | Check minimum arguments and print helpRené Korthaus2015-07-151-1/+7
| | | | |
| * | | | Return !=0 on errorRené Korthaus2015-07-151-0/+1
| | | | |
| * | | | Add PKCS#8 private/public key processing toolRené Korthaus2015-07-011-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This tool works similar to 'openssl pkey' in that it allows to read a private key from file and output the private or corresponding public key to file. It also allows changing a private key passphrase this way. This tool comes in handy when replacing use of openssl in scripts. The syntax is: botan pkcs8 --in=private.pem --out=key_out.pem [--pubout] [--passin=] [--passout=] [--pbe=]
* | | | | Add soname_patternSimon Warta2015-08-2415-49/+57
| | | | | | | | | | | | | | | | | | | | Fixes #241
* | | | | Guard rlimit reset with a defined check for RLIMIT_MEMLOCK as it isJack Lloyd2015-08-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | missing on Solaris at least. On such systems it's probably safe to assume that no amount of memory can be mlock'ed from userspace, so just return zero to disable the allocator entirely. GH #262
* | | | | Remove high bit set char from comment as it broke amalgamation generationJack Lloyd2015-08-221-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | under Python3. Ironically there doesn't seem to be any way to portably handle non-ASCII in a way that is compatible with Python 2.7 and 3 at the same time.
* | | | | Fix for minimized buildsJack Lloyd2015-08-211-0/+1
| | | | |
* | | | | Missing addJack Lloyd2015-08-211-0/+1
| | | | |
* | | | | In RSA, check that the input is less than the modulus n before blindingJack Lloyd2015-08-211-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rather than after. After blinding the value is always reduced mod n so the condition is never met. This may be the cause of RSA test failures described in GH #174 The scenario was that during randomized corruption tests we occasionally provide an input which was greater than the modulus. When that happened the value was effectively reduced mod n, so the self-check would later fail, because the decrypted result (reduced mod n) would be compared with the original (larger than n) input.