aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/asn1
Commit message (Collapse)AuthorAgeFilesLines
* Fix #2237 forcing OID::to_string to use C locale, avoiding thousand ↵Leonardo Backes Vargas2021-04-271-0/+1
| | | | separators from the process locale.
* Merge X.509 header filesJack Lloyd2020-10-312-102/+0
|
* Merge some of the ASN.1 headersJack Lloyd2020-10-3113-343/+323
| | | | | Deprecate asn1_str.h asn1_time.h asn1_oid.h and alg_id.h with all contents moved to existing asn1_obj.h
* replace c++20 deprecated std::is_pod with std::is_standard_layout && ↵Nuno Goncalves2020-10-231-1/+1
| | | | | | std::is_trivial Signed-off-by: Nuno Goncalves <[email protected]>
* Check that X.509 SignatureAlgorithm parameters are as expectedJack Lloyd2020-06-092-16/+17
| | | | | | | | | | | | | | For modes where the parameters should be either NULL or empty, we previously accepted anything at all. We can't enforce strictly empty or strictly NULL for most cases because practice has changed over time and there are certs using empty params with RSA and NULL params with ECSDA and etc. We do attempt to enforce the strict RFC requirement for XMSS and Ed25519 since they are new algorithms and hopefully everyone just followed the spec. Issue reported by Mario Korth of Ruhr-Universität Bochum.
* Deprecate DER_Encoder::get_contents_unlockedJack Lloyd2019-10-281-1/+8
| | | | | | | It's better to use the version taking the vector in the constructor as otherwise we store to locked memory then copy out at the end. Convert all library uses.
* Add support for XMSS X.509 certificatesRené Korthaus2019-10-211-3/+5
|
* Walk back on deprecating theseJack Lloyd2019-09-061-2/+8
|
* Avoid spurious throw/catchJack Lloyd2019-08-161-5/+5
|
* FixJack Lloyd2019-08-051-2/+2
|
* FixesJack Lloyd2019-08-041-3/+3
|
* Remove unnecessary functionsJack Lloyd2019-08-043-25/+12
|
* Reduce usage of oids.h with the addition of some helpers on OIDJack Lloyd2019-08-044-8/+20
|
* OID cleanupsJack Lloyd2019-08-042-79/+117
|
* Deprecate and replace OIDS::lookupJack Lloyd2019-08-045-36/+69
|
* Update GOST to use 2012 OIDs/paramsJack Lloyd2019-08-031-5/+7
|
* Updates for GOST 2012 supportJack Lloyd2019-08-011-2/+27
| | | | | | | GOST uses IEEE style formatting for signatures rather than DER struct. Confirmed using 2012 test certs from CryptoPro GH #1860 #1897
* Change XMSS OIDs and feature macro nameJack Lloyd2019-06-231-3/+5
| | | | Since draft6 and final RFC are not compatible ...
* Add reminder comments re enum classJack Lloyd2019-05-241-0/+1
|
* Increase ASN1_Time maximum allowed year to 3100Jack Lloyd2019-05-131-1/+2
| | | | See #1931
* Fix X509_DN comparisonJack Lloyd2019-05-083-2/+5
| | | | | | An issue in #1936 indicated that X509_DN operator< was not behaving correctly. Indeed, DNs could compare in such a way that DN1 < DN2 && DN2 < DN1. STL containers do not like this.
* s/as_string/to_string/Jack Lloyd2019-03-014-7/+10
| | | | | A few older APIs use as_string where everywhere else uses to_string. Add to_string's where missing, and deprecate X::as_string.
* Revamp BigInt encoding and decoding.Jack Lloyd2019-01-241-1/+1
| | | | Deprecate some crufty functions. Optimize binary encoding/decoding.
* Fix some warnings from PVS-StudioJack Lloyd2019-01-171-1/+1
| | | | No real bugs, but pointed out some odd constructs and duplicated logic
* Remove trailing whitespaceJack Lloyd2019-01-131-1/+1
|
* Make ctz and high_bit faster and const-time-ishJack Lloyd2018-12-221-1/+1
| | | | | | | They get compiled as const-time on x86-64 with GCC but I don't think this can be totally relied on. But it is anyway an improvement. And, faster, because we compute it recursively
* Remove support for Visual C++ 2013Jack Lloyd2018-10-011-2/+0
| | | | Closes GH #1557
* Add OIDs for SIV and OCB mode ciphersJack Lloyd2018-08-231-0/+26
|
* Add PBES2 as alias for PBE-PKCS5v20Jack Lloyd2018-08-231-1/+2
| | | | Easier to remember and type.
* Cleanup of BigInt encoding/decoding functionsJack Lloyd2018-08-141-1/+1
| | | | | | | | | | | | | Instigated by finding a bug where BigInt::encode with decimal output would often have a leading '0' char. Which is papered over in the IO operator, but was exposed by botan_mp_to_str which called BigInt::encode directly. Split BigInt::encode/decode into two versions, one taking the Base argument and the other using the (previously default) binary base. With a view of eventually deprecating the versions taking a base. Add BigInt::to_dec_string() and BigInt::to_hex_string()
* Add path validation to FFIJack Lloyd2018-08-132-0/+9
|
* Add some final annotationsJack Lloyd2018-08-131-1/+1
|
* Combine SM2 key types for signatures and encryptionJack Lloyd2018-08-011-1/+2
| | | | | | It seems in practice the same key may be end up used for both operations, so maintaining a distinction at the type level just complicates things.
* Add OID for HMAC with SHA-512/256Jack Lloyd2018-08-011-1/+3
|
* Add OID for SM2 with SM3 signaturesJack Lloyd2018-07-241-1/+3
|
* Remove RC2 related OIDsJack Lloyd2018-07-131-5/+1
| | | | Since RC2 has been removed since 1c0bc3cc6b no reason to have these around.
* Add a couple of OIDs commonly seen in certificatesJack Lloyd2018-07-041-1/+5
|
* Add OID for ChaCha20Poly1305Jack Lloyd2018-07-011-1/+3
| | | | From RFC 8103
* Add missing statementJack Lloyd2018-06-081-0/+1
|
* Attempt at MSVC 2013 workaroundJack Lloyd2018-06-081-2/+4
|
* Expose BER_Decoder constructor taking BER_Object&&Jack Lloyd2018-06-081-2/+8
|
* Reduce copying/allocations when BER decodingJack Lloyd2018-06-082-81/+194
| | | | | | | We are constrained in how far we can go because BER_Object must mandatorily copy its value (due to the public member variable exposting the bytes). But this reduces the number of allocations when parsing a sample X.509 certificate by about 15%
* Allow passing a writer function callback to DER_EncoderJack Lloyd2018-06-082-10/+18
|
* Declare copy and move constructors on BER_ObjectJack Lloyd2018-06-081-0/+8
|
* Improve error reporting on unexpected EOF when decoding ASNJack Lloyd2018-06-081-4/+17
|
* Improve error message on BER decoding errorJack Lloyd2018-05-242-6/+50
|
* Add OIDS for Camellia and SM4 in GCM and CBC modesJack Lloyd2018-05-221-1/+17
| | | | Making them usable for private key encryption
* DER improvementsJack Lloyd2018-05-225-36/+103
| | | | | | | | | | | Let DER_Encoder write to a user specified vector instead of only to an internal vector. This allows encoding to a std::vector without having to first write to a locked vector and then copying out the result. Add ASN1_Object::BER_encode convenience method. Replaces X509_Object::BER_encode which had the same logic but was restricted to a subtype. This replaces many cases where DER_Encoder was just used to encode a single object (X509_DN, AlgorithmIdentifier, etc).
* Merge GH #1571 DER_Encoder optimizationsJack Lloyd2018-05-212-83/+123
|\
| * Make MSVC happyJack Lloyd2018-05-211-0/+13
| |