Skip to content

Commit 5238e2b

Browse files
Merge pull request #35 from Easton97-Jens/codex/fix-runtime-validation-in-sha1.h
Handle mbedtls errors and use unsigned buffer for digest in SHA1 utils
2 parents 5ff7dd2 + 7330fb2 commit 5238e2b

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/utils/sha1.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#define SRC_UTILS_SHA1_H_
1818

1919
#include <string>
20-
#include <cassert>
2120

2221
#include "src/utils/string.h"
2322
#include "mbedtls/md.h"
@@ -52,16 +51,21 @@ class DigestImpl {
5251
template<typename ConvertOp>
5352
static auto digestHelper(const std::string &input,
5453
ConvertOp convertOp) -> auto {
55-
char digest[DigestSize];
54+
unsigned char digest[DigestSize] = {};
5655
const auto *mdInfo = mbedtls_md_info_from_type(DigestType);
57-
assert(mdInfo != nullptr);
56+
if (mdInfo == nullptr) {
57+
return convertOp(std::string_view());
58+
}
5859

5960
const auto ret = mbedtls_md(mdInfo,
60-
reinterpret_cast<const unsigned char *>(input.c_str()),
61-
input.size(), reinterpret_cast<unsigned char *>(digest));
62-
assert(ret == 0);
63-
64-
return convertOp(std::string_view(digest, DigestSize));
61+
reinterpret_cast<const unsigned char *>(input.data()),
62+
input.size(), digest);
63+
if (ret != 0) {
64+
return convertOp(std::string_view());
65+
}
66+
67+
return convertOp(std::string_view(
68+
reinterpret_cast<const char *>(digest), DigestSize));
6569
}
6670
};
6771

0 commit comments

Comments
 (0)