Skip to content

Commit

Permalink
[common,cryptoprovider] Convert oid numeric string to hex
Browse files Browse the repository at this point in the history
Signed-off-by: Mykola Solianko <[email protected]>
  • Loading branch information
Mykola Solianko authored and al1img committed Feb 12, 2024
1 parent ab9a9e9 commit 00be1a5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
13 changes: 10 additions & 3 deletions src/common/crypto/mbedtls/cryptoprovider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -750,12 +750,19 @@ Error MbedTLSCryptoProvider::SetCSRAlternativeNames(mbedtls_x509write_csr& csr,
Error MbedTLSCryptoProvider::SetCSRExtraExtensions(mbedtls_x509write_csr& csr, const x509::CSR& templ)
{
for (const auto& extension : templ.mExtraExtensions) {
const char* oid = extension.mID.CStr();
mbedtls_asn1_buf resOID = {};

auto ret = mbedtls_oid_from_numeric_string(&resOID, extension.mID.Get(), extension.mID.Size());
if (ret != 0) {
return AOS_ERROR_WRAP(ret);
}

const unsigned char* value = extension.mValue.Get();
size_t oidLen = extension.mID.Size();
size_t valueLen = extension.mValue.Size();

int ret = mbedtls_x509write_csr_set_extension(&csr, oid, oidLen, 0, value, valueLen);
ret = mbedtls_x509write_csr_set_extension(
&csr, reinterpret_cast<const char*>(resOID.p), resOID.len, 0, value, valueLen);
mbedtls_free(resOID.p);
if (ret != 0) {
return AOS_ERROR_WRAP(ret);
}
Expand Down
4 changes: 2 additions & 2 deletions tests/common/src/crypto_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ TEST(CryptoTest, CreateCSR)

templ.mExtraExtensions.Resize(1);

templ.mExtraExtensions[0].mID = MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER;
templ.mExtraExtensions[0].mID = "2.5.29.37";
templ.mExtraExtensions[0].mValue = aos::Array<uint8_t>(subject_key_identifier_val, val_len);

aos::StaticString<4096> pemCSR;
Expand Down Expand Up @@ -642,7 +642,7 @@ TEST(CryptoTest, CreateCSRUsingECKey)

templ.mExtraExtensions.Resize(1);

templ.mExtraExtensions[0].mID = MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER;
templ.mExtraExtensions[0].mID = "2.5.29.37";
templ.mExtraExtensions[0].mValue = aos::Array<uint8_t>(subject_key_identifier_val, val_len);

aos::StaticString<4096> pemCSR;
Expand Down

0 comments on commit 00be1a5

Please sign in to comment.