static bool InitializeX509Certificate()

in roscpp_azure_iothub/src/ros_azure_iothub_cpp_node.cpp [558:598]


static bool InitializeX509Certificate(IOTHUB_DEVICE_CLIENT_HANDLE deviceHandle, ros::NodeHandle nh)
{
    std::string x509certificateFile;
    std::string x509certificate;
    nh.getParam("public_key_file", x509certificateFile);
    ROS_INFO("public_key_file: %s", x509certificateFile.c_str());
    if (!ReadKeyFromFile(x509certificateFile, x509certificate))
    {
        ROS_ERROR("Could not read x509 certificate/public key file, aborting.");
        return false;
    }

    std::string x509privatekeyFile;
    std::string x509privatekey;
    nh.getParam("private_key_file", x509privatekeyFile);
    if (!ReadKeyFromFile(x509privatekeyFile, x509privatekey))
    {
        ROS_ERROR("Could not read x509 private key file, aborting.");
        return false;
    }

    // Set the X509 certificates in the SDK
    IOTHUB_CLIENT_RESULT status;
    status = IoTHubDeviceClient_SetOption(deviceHandle, OPTION_X509_CERT, x509certificate.c_str());
    if (status != IOTHUB_CLIENT_OK)
    {
        ROS_ERROR("Failed to set option for x509 certificate: %s", IOTHUB_CLIENT_RESULTStrings(status));
        return false;
    }

    status = IoTHubDeviceClient_SetOption(deviceHandle, OPTION_X509_PRIVATE_KEY, x509privatekey.c_str());
    if (status != IOTHUB_CLIENT_OK)
    {
        ROS_ERROR("Failed to set option for x509 private key: %s", IOTHUB_CLIENT_RESULTStrings(status));
        return false;
    }

    ROS_INFO("x509 certificate Succeeded.");

    return true;
}