open-vault/sdk/helper
Alexander Scheel cd213f5fca
Restrict ECDSA/NIST P-Curve hash function sizes for cert signing (#12872)
* Restrict ECDSA signatures with NIST P-Curve hashes

When using an ECDSA signature with a NIST P-Curve, we should follow
recommendations from BIS (Section 4.2) and Mozilla's root store policy
(section 5.1.2) to ensure that arbitrary selection of signature_bits
does not exceed what the curve is capable of signing.

Related: #11245

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Switch to certutil.ValidateKeyTypeSignatureLength(...)

Replaces previous calls to certutil.ValidateKeyTypeLength(...) and
certutil.ValidateSignatureLength(...) with a single call, allowing for
curve<->hash validation.

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Switch to autodetection of signature_bits

This enables detection of whether the caller manually specified a value
for signature_bits or not; when not manually specified, we can provision
a value that complies with new NIST P-Curve policy.

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Select hash function length automatically

Due to our change in behavior (to default to -1 as the value to
signature_bits to allow for automatic hash selection), switch
ValidateKeyTypeSignatureLength(...) to accept a pointer to hashBits and
provision it with valid default values.

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Prevent invalid Curve size lookups

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Switch from -1 to 0 as default SignatureBits

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Add changelog entry

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>
2021-11-12 12:18:38 -05:00
..
authmetadata Migrate to sdk/internalshared libs in go-secure-stdlib (#12090) 2021-07-15 20:17:31 -04:00
base62 Swap out sdk/helper libs with implementations in go-secure-stdlib (#12088) 2021-07-15 01:56:37 -04:00
certutil Restrict ECDSA/NIST P-Curve hash function sizes for cert signing (#12872) 2021-11-12 12:18:38 -05:00
cidrutil Migrate to sdk/internalshared libs in go-secure-stdlib (#12090) 2021-07-15 20:17:31 -04:00
compressutil Run a more strict formatter over the code (#11312) 2021-04-08 09:43:39 -07:00
consts backport error changes from ent PR (#12926) 2021-10-26 10:11:24 -06:00
cryptoutil Create sdk/ and api/ submodules (#6583) 2019-04-12 17:54:35 -04:00
dbtxn Run a more strict formatter over the code (#11312) 2021-04-08 09:43:39 -07:00
errutil Create sdk/ and api/ submodules (#6583) 2019-04-12 17:54:35 -04:00
hclutil Create sdk/ and api/ submodules (#6583) 2019-04-12 17:54:35 -04:00
identitytpl Add Custom metadata field to alias (#12502) 2021-09-17 11:03:47 -07:00
jsonutil Run a more strict formatter over the code (#11312) 2021-04-08 09:43:39 -07:00
kdf Run a more strict formatter over the code (#11312) 2021-04-08 09:43:39 -07:00
keysutil Enforce minimum cache size for transit backend (#12418) 2021-09-13 16:44:56 -05:00
ldaputil ensure errors are checked (#12989) 2021-11-01 13:34:51 -05:00
license Create sdk/ and api/ submodules (#6583) 2019-04-12 17:54:35 -04:00
locksutil Create sdk/ and api/ submodules (#6583) 2019-04-12 17:54:35 -04:00
logging Run a more strict formatter over the code (#11312) 2021-04-08 09:43:39 -07:00
mlock Swap out sdk/helper libs with implementations in go-secure-stdlib (#12088) 2021-07-15 01:56:37 -04:00
parseutil Swap out sdk/helper libs with implementations in go-secure-stdlib (#12088) 2021-07-15 01:56:37 -04:00
password Swap out sdk/helper libs with implementations in go-secure-stdlib (#12088) 2021-07-15 01:56:37 -04:00
pathmanager oss port (#12755) 2021-10-07 11:25:16 -06:00
pluginutil Migrate to sdk/internalshared libs in go-secure-stdlib (#12090) 2021-07-15 20:17:31 -04:00
pointerutil Add int64 pointerutil (#7973) 2019-12-05 14:02:36 -08:00
policyutil Migrate to sdk/internalshared libs in go-secure-stdlib (#12090) 2021-07-15 20:17:31 -04:00
salt Send a test message before committing a new audit device. (#10520) 2020-12-16 16:00:32 -06:00
strutil Swap out sdk/helper libs with implementations in go-secure-stdlib (#12088) 2021-07-15 01:56:37 -04:00
template Migrate to sdk/internalshared libs in go-secure-stdlib (#12090) 2021-07-15 20:17:31 -04:00
tlsutil Swap out sdk/helper libs with implementations in go-secure-stdlib (#12088) 2021-07-15 01:56:37 -04:00
tokenutil Migrate to sdk/internalshared libs in go-secure-stdlib (#12090) 2021-07-15 20:17:31 -04:00
useragent Move useragent to sdk 2019-04-12 18:17:49 -04:00
wrapping Expose secret_id_accessor as WrappedAccessor when wrapping secret-id creation. (#12425) 2021-09-16 10:47:49 -07:00