Fix EVP_get_digestbyobj for NID-less ASN1_OBJECTs.
The recent rewrite didn't account for the OID being missing but the NID
present.
Change-Id: I335e52324c62ee3ba849c0c385aaf86123a8ffbb
Reviewed-on: https://boringssl-review.googlesource.com/13660
Commit-Queue: David Benjamin <davidben@google.com>
Commit-Queue: Adam Langley <agl@google.com>
Reviewed-by: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/digest/digests.c b/crypto/digest/digests.c
index 9656027..fd2a939 100644
--- a/crypto/digest/digests.c
+++ b/crypto/digest/digests.c
@@ -329,6 +329,11 @@
};
const EVP_MD *EVP_get_digestbyobj(const ASN1_OBJECT *obj) {
+ /* Handle objects with no corresponding OID. */
+ if (obj->nid != NID_undef) {
+ return EVP_get_digestbynid(obj->nid);
+ }
+
for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(kMDOIDs); i++) {
if (obj->length == kMDOIDs[i].oid_len &&
memcmp(obj->data, kMDOIDs[i].oid, obj->length) == 0) {