core/cmd_interface/session_manager_null.c (114 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
#include <string.h>
#include "session_manager.h"
#include "session_manager_null.h"
#include "common/unused.h"
int session_manager_null_add_session (struct session_manager *session, uint8_t eid,
const uint8_t *device_nonce, const uint8_t *cerberus_nonce)
{
UNUSED (eid);
UNUSED (device_nonce);
UNUSED (cerberus_nonce);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return SESSION_MANAGER_OPERATION_UNSUPPORTED;
}
int session_manager_null_establish_session (struct session_manager *session,
struct cmd_interface_msg *request)
{
UNUSED (request);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return SESSION_MANAGER_OPERATION_UNSUPPORTED;
}
int session_manager_null_is_session_established (struct session_manager *session, uint8_t eid)
{
UNUSED (eid);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return false;
}
int session_manager_null_get_pairing_state (struct session_manager *session, uint8_t eid)
{
UNUSED (eid);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return SESSION_PAIRING_STATE_NOT_SUPPORTED;
}
int session_manager_null_decrypt_message (struct session_manager *session,
struct cmd_interface_msg *request)
{
UNUSED (request);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return SESSION_MANAGER_OPERATION_UNSUPPORTED;
}
int session_manager_null_encrypt_message (struct session_manager *session,
struct cmd_interface_msg *request)
{
UNUSED (request);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return 0;
}
int session_manager_null_reset_session (struct session_manager *session, uint8_t eid, uint8_t *hmac,
size_t hmac_len)
{
UNUSED (eid);
UNUSED (hmac);
UNUSED (hmac_len);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return SESSION_MANAGER_OPERATION_UNSUPPORTED;
}
int session_manager_null_setup_paired_session (struct session_manager *session, uint8_t eid,
size_t pairing_key_len, uint8_t *pairing_key_hmac, size_t pairing_key_hmac_len)
{
UNUSED (eid);
UNUSED (pairing_key_len);
UNUSED (pairing_key_hmac);
UNUSED (pairing_key_hmac_len);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return SESSION_MANAGER_OPERATION_UNSUPPORTED;
}
int session_manager_null_session_sync (struct session_manager *session, uint8_t eid,
uint32_t rn_req, uint8_t *hmac, size_t hmac_len)
{
UNUSED (eid);
UNUSED (rn_req);
UNUSED (hmac);
UNUSED (hmac_len);
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
return SESSION_MANAGER_OPERATION_UNSUPPORTED;
}
/**
* Initialize null session manager instance
*
* @param session Session manager instance to initialize.
*
* @return Initialization status, 0 if success or an error code.
*/
int session_manager_null_init (struct session_manager_null *session)
{
if (session == NULL) {
return SESSION_MANAGER_INVALID_ARGUMENT;
}
memset (session, 0, sizeof (struct session_manager));
session->base.add_session = session_manager_null_add_session;
session->base.establish_session = session_manager_null_establish_session;
session->base.is_session_established = session_manager_null_is_session_established;
session->base.get_pairing_state = session_manager_null_get_pairing_state;
session->base.decrypt_message = session_manager_null_decrypt_message;
session->base.encrypt_message = session_manager_null_encrypt_message;
session->base.reset_session = session_manager_null_reset_session;
session->base.setup_paired_session = session_manager_null_setup_paired_session;
session->base.session_sync = session_manager_null_session_sync;
return 0;
}
/**
* Release session manager
*
* @param session Session manager instance to release
*/
void session_manager_null_release (struct session_manager_null *session)
{
UNUSED (session);
}