#include "exception_translator.h"
#include "dcmserver.h"
-#include <mbedtls/error.h>
-#include <mbedtls/md.h>
-#include <mbedtls/pk.h>
#include <iostream>
#include <cassert>
#include <map>
!memcmp(sPEMHeader.c_str(), cert_chain.c_str(), sPEMHeader.size()) &&
cert_chain[cert_chain.size() - 1] != '\0')
{
- // Add missing 0 for mbedtls
+ // Add missing 0
cert_chain.push_back(0);
}
if(message.context_cookie() != fCookie) {
BOOST_LOG_SEV(dcm_logger::get(), log_severity::error) << "Received unknown context cookie";
- signingResponse->set_result(MBEDTLS_ERR_PK_BAD_INPUT_DATA);
+ signingResponse->set_result(-EINVAL);
reply(msg);
return;
}
if(!fBackendContext) {
BOOST_LOG_SEV(dcm_logger::get(), log_severity::error) << "Context not associated with connection";
- signingResponse->set_result(MBEDTLS_ERR_PK_BAD_INPUT_DATA);
+ signingResponse->set_result(-EINVAL);
reply(msg);
return;
}
if(message.data_to_sign().size() == 0) {
BOOST_LOG_SEV(dcm_logger::get(), log_severity::error) << "Data to sign is empty and hash type is NONE";
- signingResponse->set_result(MBEDTLS_ERR_PK_BAD_INPUT_DATA);
+ signingResponse->set_result(-EINVAL);
return;
}
- mbedtls_md_type_t mdType = static_cast<mbedtls_md_type_t>(message.digest_type());
-
- if(mdType != MBEDTLS_MD_NONE) {
- const mbedtls_md_info_t * md_info = mbedtls_md_info_from_type(mdType);
-
- if(!md_info) {
- BOOST_LOG_SEV(dcm_logger::get(), log_severity::error) << "Can't find MD algorithm specified by caller";
- signingResponse->set_result(MBEDTLS_ERR_PK_BAD_INPUT_DATA);
- reply(msg);
- return;
- }
-
- if(message.data_to_sign().size() != mbedtls_md_get_size(md_info)) {
- BOOST_LOG_SEV(dcm_logger::get(), log_severity::error) <<
- "Input hash length mismatch. It is " <<
- message.data_to_sign().size() << " but should be " <<
- mbedtls_md_get_size(md_info);
- signingResponse->set_result(MBEDTLS_ERR_PK_BAD_INPUT_DATA);
- reply(msg);
- return;
- }
- }
-
int error = 0;
bool loaded = fSoResolver->ensure_loaded();
if (loaded) {