[ipxe-devel] SHA-384
Michael Brown
mcb30 at ipxe.org
Tue May 19 20:13:27 UTC 2015
On 19/05/15 19:47, Tufan Karadere wrote:
> I've been trying to enable HTTPS support and I noticed that it wasn't
> working for the certificates with sha384WithRSAEncryption until I added
> the object identifiers (attached the diff).
>
> Documentation (http://ipxe.org/crypto) doesn't list it as supported but
> git logs looked like otherwise.
>
> So I wanted to ask about the 'official' status for SHA-384, SHA-512 and
> SHA-224 support.
The underlying digest algorithms were implemented recently as part of a
project to add BranchCache support, so the crypto code is there.
They're not linked in by default for reasons of code size. We should
probably have settings in config/crypto.h to select the algorithms to be
supported. This is made slightly more complex by the way that
cryptographic algorithm identifiers tend to be conflated at the protocol
level in subtly differing ways (c.f. ASN1_OID_SHA384WITHRSAENCRYPTION vs
TLS_RSA_WITH_AES_128_CBC_SHA384, for example).
From the usability point of view we'd probably want something like:
#define CONFIG_PUBKEY_RSA
#define CONFIG_DIGEST_SHA384
#define CONFIG_CIPHER_AES
which would explicitly cause rsa.o, sha384.o and aes.o to be included,
and then have an as-yet-undefined simple but magic mechanism to ensure
that ASN1_OID_SHA384WITHRSAENCRYPTION et al get included (since both
sha384.o and rsa.o are present).
The alternative would be to require the user to manually coordinate
configuration options such as
#define CONFIG_ASN1_OID_SHA256WITHRSAENCRYPTION
#define CONFIG_ASN1_OID_SHA384WITHRSAENCRYPTION
#define CONFIG_ASN1_OID_SHA512WITHRSAENCRYPTION
#define CONFIG_TLS_RSA_WITH_AES_128_CBC_SHA256
#define CONFIG_TLS_RSA_WITH_AES_128_CBC_SHA384
#define CONFIG_TLS_RSA_WITH_AES_128_CBC_SHA512
#define CONFIG_TLS_RSA_WITH_AES_256_CBC_SHA256
#define CONFIG_TLS_RSA_WITH_AES_256_CBC_SHA384
#define CONFIG_TLS_RSA_WITH_AES_256_CBC_SHA512
but that looks really ugly.
Michael
More information about the ipxe-devel
mailing list