Implement SHA-3
Categories
(NSS :: Libraries, enhancement, P5)
Tracking
(Not tracked)
People
(Reporter: jcj, Unassigned)
References
(Blocks 1 open bug, )
Details
(Whiteboard: [nss-nofx])
Updated•7 years ago
|
Comment 2•4 years ago
|
||
The meta keyword is there, the bug doesn't depend on other bugs and there is no activity for 12 months.
:kjacobs, maybe it's time to close this bug?
Updated•4 years ago
|
Updated•4 years ago
|
Comment 3•3 years ago
|
||
OpenSSL also can use SHA-3 in PKCS#12 files, both for MAC (since 1.1.1) and for PRF in PBKDF2 (also since 1.1.1 but the API is quite clunky, better support should happen in a release after 3.0.0).
Example generated files are in https://github.com/redhat-qe-security/keyfile-corpus
Comment 4•3 years ago
|
||
Hubert, does RedHat need this for something?
Otherwise, since we already have code for this in HACL*, I can add it to our backlog for later.
Comment 5•3 years ago
|
||
No, it isn't needed for anything in particular. Just providing information for completeness sake.
(creating file with SHA-3 MAC with OpenSSL is actually quite easy, you just need to specify -macalg sha3-256
to openssl pkcs12
, so technically users can create files like this, but if any of our customers encounter them we can always tell them to use openssl to re-encrypt with a MAC supported by NSS)
Comment 6•2 years ago
|
||
It would be helpful if we could migrate this HACL* code over. We need something indistinguishable from a RO for DAP and the natural choice would be SHAKE.
What would be the required steps and effort?
Comment 7•2 years ago
|
||
I've discussed this with ekr, please add support for SHA-3.
Comment 8•1 year ago
|
||
Many thanks to John Schanck for adding SHA3.
Comment 9•8 months ago
•
|
||
Reopening as this was only partially implemented by Bug 1753026 implementation of some of the SHA-3 family primitives.
The reporter requested implementation of the RSA and ECDSA digital signatures using SHA-3 family of hash functions.
Currently NSS secoidt.h has defined:
- less than half of the CSOR registered SHA-3 family hash OIDs,
- All of the CSOR registered SHA-3 family HMAC OIDs, and
- None of the DSA, RSA or ECDSA CSOR registered SHA-3 family digital signature OIDs requested by the reporter.
As mentioned by Simon in Comment #6, apart from the 4 SHA-3 hash algorithms the SHA-3 family does also include the 2 SHAKE hash algorithms.
The 2 SHAKE algorithms have been standardised in 2019 by IETF as part of PKIX under the RFC 8692.
Without these implemented, when Firefox currently encounters a website with an OpenSSL generated certificate signed using ecdsa_with_SHA3-384
algorithm, it fails with SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED
"The certificate is not trusted because it was signed using a signature algorithm that was disabled because that algorithm is not secure" error because the NSS sec_DecodeSigAlg and CERT_VerifySignedDataWithPublicKey functions don't recognise the signature algorithm.
With SHA-3 primitives already implemented by Bug 1753026, I'm guessing implementing SHA-3 digital signatures and certificate validation support should be easier?
Updated•8 months ago
|
Description
•