aboutsummaryrefslogtreecommitdiffstats
path: root/src/cert/x509
Commit message (Collapse)AuthorAgeFilesLines
* Drop some deprecated functionslloyd2012-06-012-20/+0
|
* Support for the authority information access extension, limited tolloyd2012-05-274-1/+84
| | | | | | only grabbing type 6 (URL) values for OCSP which is likely the only thing it's ever used for. Expose the value with new function X509_Certificate::ocsp_responder
* Add an X509_Certificate::allowed_usage for extended constraints.lloyd2012-05-272-3/+19
| | | | | | Check that whatever certificate we got is allowed to sign OCSP responses. Add another helper function BER_Decoder to try to handle the ASN.1 mess.
* Derive X509_Object from ASN1_Object.lloyd2012-05-276-24/+46
| | | | | | | | In the path validator, pass singlular Certificate_Store args as const reference and const_cast them. It's not ideal but it seems to lead to the cleanest external API. Treat all v1 X.509 certs as implicit CAs.
* Have BER_Deocder::decode_list actually start the SEQUENCE. All callerslloyd2012-05-271-8/+2
| | | | | | | | | | | | did it and it would be silly for it not to. Update the two existing callers, who were both doing start_cons().decode_list().end_cons() to just call decode_list(). Add BER_Decoder::get_next so we can get arbitrarily weird types without having to break message chains. Add dummy tag arguments to the ASN1_Object decoder so it can be used from decode_optional.
* Remove the PRIVATE ASN.1 tag. Not being used outside of the prettylloyd2012-05-271-1/+1
| | | | | | | | | | | | | | printer example, and really is just CONSTRUCTED | CONTEXT_SPECIFIC. Extend the ASN.1 printer to recurse into OCTET STRINGS that contain DER, and to print enumeration values. BOTAN_DLL export some OID operators (+, !=, <) Add an OID entry for 1.3.6.1.5.5.7.48.1.1 OCSP basic response. Correct the Certificate_Policies code, it was dumping policy OIDs into the extended key usage!
* Several new hooks in X509_Certificate to get raw (from the certlloyd2012-05-272-9/+39
| | | | binary) values which we need for OCSP.
* Some post merge fixups.lloyd2012-05-255-15/+9
| | | | | Fix some bugs that triggered if DEFAULT_BUFFERSIZE was either too small or an odd size.
* propagate from branch 'net.randombit.botan.x509-path-validation' (head ↵lloyd2012-05-2520-219/+320
|\ | | | | | | | | | | 63b5a20eab129ca13287fda33d2d02eec329708f) to branch 'net.randombit.botan' (head 8b8150f09c55184f028f2929c4e7f7cd0d46d96e)
* | Kill off the quite vestigal pubkey_enums header. Move most of the codelloyd2012-03-287-8/+136
| | | | | | | | | | | | | | to key_constraints.{h,cpp} in cert/x509. Move the X509_Encoding enum to x509_key.h Constify argument to X509_Object::check_signature, accidental ommision
* | Pass a class to the validation function that represents anylloyd2012-03-282-73/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | restrictions on the validation process. Currently these are if revocation information (CRL or hypothetically OCSP) is required, and what hashes to trust. Default trusted hashes are SHA-1 and SHA-2. This will also be used for policy restrictions, likely other things. The result enum is now a member of Path_Validation_Result Remove the usage restrictions enum. It is easier, for applications that actually care about one of these, to just check the extended constraint attribute on the final result, if everything else validates.
* | All of the X509 modules were actually mutually dependent. Ideally thislloyd2012-02-0622-0/+4104
|/ | | | | would be fixed but it's quite hard to do, makes more sense for now to merge then back into one big x509 blog.
* Split up src/cert/x509 into a set of modules, though mostly mutuallylloyd2010-09-1724-4514/+0
| | | | dependent right now.
* Update all uses of MemoryRegion::append to use either push_back or operator+=lloyd2010-09-151-5/+5
|
* Remove more uses of vector to pointer implicit conversionslloyd2010-09-131-1/+1
|
* Define X509_Object::encode in terms of BER_encode and PEM_encodelloyd2010-06-211-22/+12
|
* Doxygenlloyd2010-06-211-2/+34
|
* Replace "@return a blah" and "@return the blah" with just "@return blah"lloyd2010-06-167-37/+37
|
* More Doxygen updates/fixeslloyd2010-06-154-34/+55
|
* Fix a few hundred Doxygen warningslloyd2010-06-153-2/+9
|
* Use X509::BER_encode. Saves 12 lines. Nicelloyd2010-06-151-18/+6
|
* Remove config options to toggle if X.509 extensions are critical orlloyd2010-03-104-48/+47
| | | | | | | | not. Instead provide via Extensions::add(). No way to modify behavior currently, it just follows the previous default police. Remove the config options from Library_State entirely. Die, mutable singletons, die.
* Make cert decoding errors more verboselloyd2010-03-101-2/+2
|
* Modify pubkey classes to take names instead of object pointers.lloyd2010-03-084-12/+8
| | | | | Remove use of look_pk from the source and examples, instead instantiate classes directly.
* Remove the now no-op classes PK_Encrypting_Key,lloyd2010-03-084-42/+6
| | | | | PK_Decrypting_Key, PK_Signing_Key, PK_Verifying_with_MR_Key, and PK_Verifying_wo_MR_Key.
* The code in pk_codecs was actually entirely tied to the code inlloyd2010-03-041-1/+0
| | | | | | pubkey; you literally could not compile any pubkey code without it. Move it up to the pubkey dir, it wasn't at all useful to have it in its own dir.
* Add a new function to Public_Key, algorithm_identifier(), which justlloyd2010-03-041-7/+1
| | | | | returns the AlgorithmIdentifier representing this scheme (OID + domain params if any).
* Clean up exceptions. Remove some unused ones like Config_Error. Makelloyd2010-01-051-1/+1
| | | | | | | Invalid_Argument just a typedef for std::invalid_argument. Make Botan::Exception a typedef for std::runtime_error. Make Memory_Exhaustion a public exception, and use it in other places where memory allocations can fail.
* Time was saved to a u32bit. Would really bite me in 2106 :)lloyd2009-12-231-1/+1
|
* Avoid MSVC warning 4800 about implicit conversion from T to bool. Mostlylloyd2009-12-231-1/+1
| | | | because it makes the code slightly more explicit.
* Add FIXME note to Certificate_Policies::encode_innerlloyd2009-12-231-1/+4
|
* Make many more headers internal-only.lloyd2009-12-163-3/+3
| | | | | | | | | | | | | Fixes for the amalgamation generator for internal headers. Remove BOTAN_DLL exporting macros from all internal-only headers; the classes/functions there don't need to be exported, and avoiding the PIC/GOT indirection can be a big win. Add missing BOTAN_DLLs where necessary, mostly gfpmath and cvc For GCC, use -fvisibility=hidden and set BOTAN_DLL to the visibility __attribute__ to export those classes/functions.
* Full working amalgamation build, plus internal-only headers concept.lloyd2009-12-161-12/+15
|
* Consolidate the non-canonical epoch timers, like cpuid and Win32'slloyd2009-12-014-4/+4
| | | | | | | | | | | | | | QueryPerformanceCounter, into an entropy source hres_timer. Its results, if any, do not count as contributing entropy to the poll. Convert the other (monotonic/fixed epoch) timers to a single function get_nanoseconds_clock(), living in time.h, which statically chooses the 'best' timer type (clock_gettime, gettimeofday, std::clock, in that order depending on what is available). Add feature test macros for clock_gettime and gettimeofday. Remove the Timer class and timer.h. Remove the Timer& argument to the algorithm benchmark function.
* Much cleaning up in ECDSA, though it's still rather a mess (and 50x slowerlloyd2009-11-181-15/+3
| | | | than OpenSSL... that's a problem for another branch though).
* In creating X.509 certificates and PKCS #10 requests, let (actually: require)lloyd2009-11-094-31/+75
| | | | | | | the user to specify the hash function to use, instead of always using SHA-1. This was a sensible default a few years ago, when there wasn't a ~2^60 attack on SHA-1 and support for SHA-2 was pretty much nil, but using something else makes a lot more sense these days.
* Remove the 'realname' attribute on all modules and cc/cpu/os info files.lloyd2009-10-291-2/+0
| | | | | Pretty much useless and unused, except for listing the module names in build.h and the short versions totally suffice for that.
* The get_tm function was duplicated. Move single version to timer.{h,cpp}lloyd2009-09-171-1/+0
|
* Split up util.h into 3 fileslloyd2009-09-174-5/+5
| | | | | | | - rounding.h (round_up, round_down) - workfactor.h (dl_work_factor) - timer.h (system_time) And update all users of the previous util.h
* Move some files around to break up dependencies between directorieslloyd2009-07-161-0/+1
|
* Add a script that reads the output of print_deps.py and rewriteslloyd2009-07-151-7/+13
| | | | | | the info.txt files with the right module dependencies. Apply it across the codebase.
* Move the contents of pubkey/pubkey (which was kind of a catch-all tolloyd2009-07-151-1/+1
| | | | | | | just toplevel pubkey). This was a convention I realized made sense sometime on when I was first doing the modularization changes. Move pkcs8.* and x509_key.* to pk_codecs
* Thomas Moschny passed along a request from the Fedora packagers which camelloyd2009-03-3023-677/+723
| | | | | | | | | | | | | | | up during the Fedora submission review, that each source file include some text about the license. One handy Perl script later and each file now has the line Distributed under the terms of the Botan license after the copyright notices. While I was in there modifying every file anyway, I also stripped out the remainder of the block comments (lots of astericks before and after the text); this is stylistic thing I picked up when I was first learning C++ but in retrospect it is not a good style as the structure makes it harder to modify comments (with the result that comments become fewer, shorter and are less likely to be updated, which are not good things).
* Add Doxygen comment for Timer::clock. Fix @return in benchmark.h and x509_ca.hlloyd2008-11-251-1/+1
|
* Make X509_Store::CRL_Info public for IBM XLC 0.9 for Celllloyd2008-11-241-10/+14
|
* Remove pk_lookup - half of it (look_pk.{cpp,h}) depended on libstate directly,lloyd2008-11-111-1/+0
| | | | | the other half was relied upon by pubkey. Move the contents into those two modules. Update deps.
* Remove lookup.h use from DLIES, PK key agreement, DSA param gen, get_enc.cpplloyd2008-11-112-4/+3
|
* Split the last parts of the 'core' modulelloyd2008-11-083-3/+3
| | | | Add some missing info.txts
* Wrap lines to 80 columnslloyd2008-10-281-2/+2
|
* Add some Doxygen comments from InSiTo written for config.h (now gone/split up)lloyd2008-10-131-5/+9
|