| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
separators from the process locale.
|
| |
|
|
|
|
|
| |
Deprecate asn1_str.h asn1_time.h asn1_oid.h and alg_id.h with all
contents moved to existing asn1_obj.h
|
|
|
|
|
|
| |
std::is_trivial
Signed-off-by: Nuno Goncalves <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
GOST uses IEEE style formatting for signatures rather than DER struct.
Confirmed using 2012 test certs from CryptoPro
GH #1860 #1897
|
|
|
|
| |
Since draft6 and final RFC are not compatible ...
|
| |
|
|
|
|
| |
See #1931
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
A few older APIs use as_string where everywhere else uses to_string.
Add to_string's where missing, and deprecate X::as_string.
|
|
|
|
| |
Deprecate some crufty functions. Optimize binary encoding/decoding.
|
|
|
|
| |
No real bugs, but pointed out some odd constructs and duplicated logic
|
| |
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Closes GH #1557
|
| |
|
|
|
|
| |
Easier to remember and type.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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()
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Since RC2 has been removed since 1c0bc3cc6b no reason to have these around.
|
| |
|
|
|
|
| |
From RFC 8103
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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%
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Making them usable for private key encryption
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|\ |
|
| | |
|