| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Don't include it where it is not needed, included it where it is used.
|
|
|
|
| |
Based on VC2017 output
|
| |
|
|
|
|
| |
Caught with Sonar
|
| |
|
|
|
|
|
| |
It's not so obvious to a user at which end of the chain
the end entity certificate must be placed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes GH #991
The problem with the current implementation of the chain validation code is that is runs from the end certificate to the trust cert.
@securitykernel and me tried to fix the pathLenConstraint validation within this reverse loop but we were not sure if we missed some edge cases.
So we felt safer to use the algorithm listed in RFC 5280 which executes from the top to the bottom. It's probably best to rewrite the code to use the whole algorithm from RFC 5280, i.e. validating the chain from the trust to the end cert.
Additionally, we wrote some tests including the one that raised this issue initially.
|
|\ |
|
| |
| |
| |
| | |
Signed-off-by: Nuno Goncalves <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Nuno Goncalves <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Nuno Goncalves <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Nuno Goncalves <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Nuno Goncalves <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Nuno Goncalves <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Nuno Goncalves <[email protected]>
|
|/
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A OCSP request doesn't need the full subject certificate.
This extends the API to require instead of the subject certificate:
* OCSP::Request: subject serial.
* OCSP::online_check: subject serial AND ocsp responder url.
API breaking change:
* removal of OCSP::Request::subject() as OCSP::Request doesn't need to hold
the certificate, but only the serial.
Signed-off-by: Nuno Goncalves <[email protected]>
|
|
|
|
|
|
|
| |
BER_Decoder::end_cons() allready assures the verify_end()
function, so it is redundant.
Signed-off-by: Nuno Goncalves <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on build output sent by @noloader.
If RLIMIT_MEMLOCK is not defined, assume regular user is not able to
call mlock. This probably also affected Clang/GCC on Solaris.
Work around resolution issue in SIMD_4x32 where it finds ambiguity
between arg taking uint32_t and __m128i. This is probably some
artifact of how SunCC represents vector types, and seems highly bogus
in general but is easy to work around here. Change constructor taking
a single value to instead be `SIMD_4x32::splat` function. The SIMD
class is internal, so no API implications.
Fix various warnings about lambda functions that were missing return
types and which were not a single return statement. AIUI C++11 doesn't
guarantee that lambda return type will be deduced in that situation,
though in practice every compiler including SunCC seems to handle it.
Disable AVX2 usage, since SunCC's intrinsics seem to be broken - its
_mm_loadu_si256 takes non-const pointer.
Rename a few variables in the tests to avoid shadowed var warnings.
|
|
|
|
|
| |
It is not a general purpose util or something we want applications to use.
It is only used by x509 and hopefully will be removed from there soon enough.
|
|
|
|
|
| |
Effectively disables 1024 bit RSA as well as SHA-1.
Edit the tests where required to enable it again.
|
| |
|
|
|
|
| |
Little easier to read perhaps, and helps prevent some astyle confusion.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Allow custom extensions in CA-signed cert requests
Add templated getter for extensions
|
| |
|
|
|
|
| |
Create empty CRLs so that revocation information is available.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Primarily doc updates but also expose some more logic in PKIX namespace,
overall_status and merge_revocation_status. This allows calling more or less all
of the logic used by the monolitic x509_path_validate in any way needed by an
application.
Add Certificate_Store_In_Memory::add_crl variant taking shared_ptr
Add optional Certificate_Store_In_Memory* pointer to check_crl_online,
valid CRLs are saved there.
|
| |
|
| |
|
|
|
|
| |
Tests touching network are gated by --run-online-tests flag.
|
|
|
|
|
|
| |
Nothing much but better than nothing.
Also add a useful arg check to OCSP::Request constructor.
|
| |
|
|
|
|
|
|
|
|
|
| |
Splits path building, path validation, CRL checks, and OCSP checks
into distinct functions in namespace PKIX. The previous path validation
APIs remain.
Fixes to OCSP to store more information and to handle modern OCSP setups
in at least some situations.
|
| |
|
|
|
|
|
| |
Using the SHA-1 of the public key to identify the signing cert is
hardcoded in OCSP and unlikely to change.
|
|
|
|
| |
Add a to_string function for this type.
|
|
|
|
| |
Add some try/catch blocks to the X.509 tests, and use create_private_key API
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
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
|