diff options
Diffstat (limited to 'firmware/2lib/2common.c')
-rw-r--r-- | firmware/2lib/2common.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/firmware/2lib/2common.c b/firmware/2lib/2common.c index 09379cc2..782ea635 100644 --- a/firmware/2lib/2common.c +++ b/firmware/2lib/2common.c @@ -164,6 +164,23 @@ vb2_error_t vb2_verify_digest(const struct vb2_public_key *key, return VB2_ERROR_VDATA_SIG_SIZE; } + if (key->allow_hwcrypto) { + vb2_error_t rv = + vb2ex_hwcrypto_rsa_verify_digest(key, sig_data, digest); + + if (rv != VB2_ERROR_EX_HWCRYPTO_UNSUPPORTED) { + VB2_DEBUG("Using HW RSA engine for sig_alg %d %s\n", + key->sig_alg, + rv ? "failed" : "succeeded"); + return rv; + } + + VB2_DEBUG("HW RSA for sig_alg %d not supported, using SW\n", + key->sig_alg); + } else { + VB2_DEBUG("HW RSA forbidden, using SW\n"); + } + return vb2_rsa_verify_digest(key, sig_data, digest, wb); } |