aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Pass a RNG reference to load_check and gen_check functionslloyd2008-05-247-28/+26
|
* Avoid using the global RNG in check_key, instead pass a reference.lloyd2008-05-2426-59/+73
| | | | Update the examples
* Avoid using global rng in DL_Group::generate_dsa_primeslloyd2008-05-243-10/+14
|
* Previously random_integer and friends used the global PRNG object to getlloyd2008-05-2430-108/+166
| | | | | | | | | | | | | random bits. Now they take a reference to a RandomNumberGenerator object. This was applied several times out, so now the constructors to private key objects also take a RandomNumberGenerator& argument. This is also true for a number of randomized algorithms (Miller-Rabin, for instance). You can get a reference to the global PRNG with global_state().prng_reference() This is a provisional thing: and warning: it is not thread safe! If this is a problem instead keep per-thread PRNGs and pass them were needed.
* Policy change: No RSA key generation smaller than 1024 bits. Had been 128lloyd2008-05-241-1/+1
|
* Remove both default arguments to the constructor of ANSI_X931_RNG.lloyd2008-05-243-8/+8
| | | | | | | | | | | | | | | | | | If the second argument was NULL, it would default to a new Randpool. But this introduces an annoying dependency: really it is the caller who is relying on Randpool. Make this explicit by passing a new Randpool pointer to the constructor in Library_State. This will break all callers using ANSI_X931_RNG's constructors with default arguments. To regain the previous behavior, change: ANSI_X931_RNG rng; ANSI_X931_RNG rng("/*cipher name*/"); to ANSI_X931_RNG rng(/*cipher name, default was AES-256 */, new Randpool); You are free to pass another PRNG object if you like. This make require inclusion of <botan/randpool.h>
* Print the class tag type(s) on constructed formslloyd2008-05-081-0/+9
|
* The BER decoder assumed that all constructed types would be tagged aslloyd2008-05-082-5/+7
| | | | | | | | | | | | universal: this prevented it from decoding application, context-specific, or private-class constructions. Add a new parameter to BER_Decoder::start_cons which specifies the expected class type (default universal). The decoder still verifies that the constructed bit is set in the class tag. This provides parity with the interface to the DER encoder. Problem was found and reported by Falko Strenzke
* The log notes for 1.6.4 got lost when the logs were consolidated to a single ↵lloyd2008-05-051-0/+3
| | | | file
* Update notes and readme for 1.7.6 release1.7.6lloyd2008-05-052-2/+4
|
* Update to not use Global_RNGlloyd2008-05-051-2/+2
|
* Remove unused headerslloyd2008-05-041-6/+5
|
* Remove Config::option_as_time, instead call timespec_to_u32bit inlloyd2008-05-025-27/+21
| | | | each caller.
* Add a new function timespec_to_u32bit that handles a very simplisticlloyd2008-05-013-27/+34
| | | | | | time format and converts it to a duration in seconds represented as a u32bit. This is from Config::option_as_time, which is now implemented simply as: return timespec_to_u32bit(option(key))
* The ability to load ini-style files was removed almost 6 monthslloyd2008-04-301-2/+0
| | | | | ago, but the Config class still contained the declaration for load_inifile() - remove it.
* Remove unused include of <vector>lloyd2008-04-291-2/+1
|
* Instead of reading from the Config object every time to get the slack welloyd2008-04-292-15/+20
| | | | | | should allow when checking timestamps, just call it once and store the value in the X509_Store object, passing it to validity_check with a new argument for the allowed time slack.
* Move validity_check() into an anonymous namespace inside x509stor.cpp,lloyd2008-04-293-32/+29
| | | | as that was the only place it was called from.
* Document changes from remove-libstatelloyd2008-04-291-1/+6
|
* Bump version to 1.7.6 in configure.pllloyd2008-04-291-1/+1
|
* Move Signature_Format enum to pubkey.hlloyd2008-04-2911-40/+34
| | | | | | | | Including enums.h in needed places since asn1_int.h doesn't pull it in anymore. Remove Config::choose_sig_format, and move its logic into its only caller, the (global!) choose_sig_format in x509_ca.cpp
* propagate from branch 'net.randombit.botan.remove-libstate' (head ↵lloyd2008-04-2944-711/+250
|\ | | | | | | | | | | d4d75cf4f682ec63e316b853617e7cf9ba093272) to branch 'net.randombit.botan' (head 2fac918f1a1cb77d155cf434177e443d41e9e517)
| * Move ASN1_Tag from enums.h to asn1_int.h. The enums.h header is a totallloyd2008-04-242-38/+37
| | | | | | | | | | | | grab back of stuff, most of which are not used outside of very specific contexts, and some only internally. I am thinking to remove it and put each individual enum in an appropriate header.
| * Remove stray character introduced during mergelloyd2008-04-241-1/+1
| |
| * Remove unused Pulse_Type enumlloyd2008-04-241-15/+0
| |
| * Remove section on pulses - removedlloyd2008-04-241-44/+0
| |
| * merge of '0bd31c0935789c0b8280f297b711d935192280f1'lloyd2008-04-243-3/+3
| |\ | | | | | | | | | and '6f5dcbc7a639a21e1e41ad092a36933f87f81b91'
| | * Add BOTAN_DLL to Timer class declarationlloyd2008-04-211-1/+1
| | |
| | * propagate from branch 'net.randombit.botan' (head ↵lloyd2008-04-2141-615/+214
| | |\ | | | | | | | | | | | | | | | | | | | | 51f9ee5180a5cacdfff31504266e883b7bb0eb00) to branch 'net.randombit.botan.remove-libstate' (head 636b767b9686261418b1cb45a6271edeef87501b)
| * | \ propagate from branch 'net.randombit.botan' (head ↵lloyd2008-04-2141-615/+214
| |\ \ \ | | |/ / | |/| / | | |/ | | | | | | 51f9ee5180a5cacdfff31504266e883b7bb0eb00) to branch 'net.randombit.botan.remove-libstate' (head 636b767b9686261418b1cb45a6271edeef87501b)
| | * propagate from branch 'net.randombit.botan' (head ↵lloyd2008-04-1741-614/+213
| | |\ | | | | | | | | | | | | | | | | | | | | 85596a0b1fbee6696261d36def7dad742375f7d9) to branch 'net.randombit.botan.remove-libstate' (head faf75eec422a3eb6108748315724fb6ac217dede)
| | | * propagate from branch 'net.randombit.botan' (head ↵lloyd2008-04-1341-614/+213
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | 4b88c5d653d997e87cc333064ca1624636fc2186) to branch 'net.randombit.botan.remove-libstate' (head 58c8bf4a26a93475d86418d899d7f7202263d4ae)
| | | | * propagate from branch 'net.randombit.botan' (head ↵lloyd2008-04-1241-614/+213
| | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bcae6a19d8d96ebde33c832c76a130ea02bc923a) to branch 'net.randombit.botan.remove-libstate' (head f640991b6e433a264f5d22a08338cfc9c24c82da)
| | | | | * propagate from branch 'net.randombit.botan' (head ↵lloyd2008-04-1041-614/+213
| | | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6afe2db1f710f75bc27e189bb8bdb23613ce1ca3) to branch 'net.randombit.botan.remove-libstate' (head e40f0dbdfd847024c30fa0092c2acefc19a550b8)
| | | | | | * Remove the Global_RNG namespace, along with rng.h and rng.cpp. This waslloyd2008-04-0721-141/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | essentially a facade for the RNG object living in the global library state. Rewrite all callers to directly invoke the global state object: this makes it more clear what functions are actually accessing mutable state outside of the normal reference graph (and thus, which functions will have to be altered in order to remove this dependency). Other facades remain in place for the configuration object and the memory allocator factory.
| | | | | | * Remove X509_GlobalState in favor of static function Extensions::get_extensionlloyd2008-04-076-144/+25
| | | | | | |
| | | | | | * propagate from branch 'net.randombit.botan' (head ↵lloyd2008-04-072-19/+25
| | | | | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | db3791f6bba4b57dd8aed17893565dc5bcd68f02) to branch 'net.randombit.botan.remove-libstate' (head 627d12447b2bb32aa08ff5daa499ac9580a77a05)
| | | | | | * | Remove Charset_Transcoder; hardwire UTF-8/Latin-1 conversions into charset.cpplloyd2008-04-078-202/+101
| | | | | | | |
| | | | | | * | In Botan, the Timer base class provides access to a high-resolutionlloyd2008-04-0711-59/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | timer with an unspecified update rate and epoch. It is only used inside the entropy sources to provide some timing-dependent randomness. However, it is easier and basically 'as good' to treat the timers as entropy sources in their own right and feed their output directly into an entropy pool. This commit removes Library_State::system_clock and all calls to that function.
| | | | | | * | Library_State::set_timer is never called from within Botan, low hanginglloyd2008-04-072-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fruit for removal.
| | | | | | * | The intent of this branch is to remove the global library state objectlloyd2008-04-076-58/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Library_State, in libstate.{h,cpp}). It causes numerous 'interesting' problems with threads, etc, and the best solution here is to move to more or less an object-capability model, where the only objects that a piece of code can access are those which can be referenced through its arguments. First things first, remove the UI 'pulse' code. It is neither necessary nor sufficient for writing proper GUI/event driven code using Botan, has likely never been used in real code, and, given that, causes a distressing amount of overhead in terms of function calls made.
* | | | | | | | The add_algorithm functions also need to be tagged with BOTAN_DLL inlloyd2008-04-251-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the source file (this seems to be the case for all global functions that we want to export from the library...)
* | | | | | | | The PRIMES[] array (an array of small prime numbers) must be declaredlloyd2008-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with BOTAN_DLL, since it is a public value (used by the factor example, perhaps others)
* | | | | | | | Credit Joel Low for DLL symbol visibility patcheslloyd2008-04-221-0/+3
|/ / / / / / /
* | | | | | | Add BOTAN_DLL macro in all needed spots for working DLL export. Basedlloyd2008-04-21153-491/+571
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on a patch from Joel Low for MSVC, modified and tested with GCC using -fvisibility=hidden and the visibility attribute. Getting this working completely requires making the shared object and static lib builds completely distinct (which is also a win since it allows avoiding -fPIC usage, etc in the static lib). Currently too many things are being exported, though it is an improvement as internal-only code like the bigint_* functions are hidden.
* | | | | | | Update Fixed_Output_RNG (used for testing) to implement is_seededlloyd2008-04-211-0/+2
| | | | | | |
* | | | | | | Make RandomNumberGenerator::is_seeded pure virtuallloyd2008-04-211-1/+1
| | | | | | |
* | | | | | | Convert date format in log.txt to YYYY-MM-DD for easier grepping and statisticslloyd2008-04-171-100/+100
|/ / / / / /
* | | | | | Add first change notes about the upcoming 1.7.6lloyd2008-04-172-1/+5
| | | | | |
* | | | | | Always set the position to the start of the block when generating a newlloyd2008-04-151-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | block of data in the X9.31 PRNG (previously, adding entropy would cause a new block to be computed but the read pointer would be the same as it had been in the old block). Nominally this is very slightly faster (we don't throw away bytes we just computed) but the change is more to make the code more obvious/explicit; I was surprised by its old behavior, which seems bad. In theory it could introduce additional weaknesses, if gaining advantage to this partial block that was being thrown away assisted in an attack (I do not know of any attacks against the X9.31 PRNG that work that way, however).