kaa_error_t kaa_init(kaa_context_t **kaa_context_p) { KAA_RETURN_IF_NIL(kaa_context_p, KAA_ERR_BADPARAM); // Initialize logger kaa_logger_t *logger = NULL; FILE *logfile = fopen("run.log", "w"); kaa_error_t error = kaa_log_create(&logger, KAA_MAX_LOG_MESSAGE_LENGTH, KAA_MAX_LOG_LEVEL, logfile); // TODO: make log destination configurable if (error) return error; KAA_LOG_INFO(logger, KAA_ERR_NONE, "Kaa SDK version %s, commit hash %s", BUILD_VERSION, BUILD_COMMIT_HASH); // Initialize general Kaa context error = kaa_context_create(kaa_context_p, logger); if (error) { KAA_LOG_FATAL(logger, error, "Failed to create Kaa context"); kaa_log_destroy(logger); *kaa_context_p = NULL; return error; } // Initialize endpoint identity char *pub_key_buffer = NULL; size_t pub_key_buffer_size = 0; bool need_deallocation = false; ext_get_endpoint_public_key(&pub_key_buffer, &pub_key_buffer_size, &need_deallocation); kaa_digest pub_key_hash; error = ext_calculate_sha_hash(pub_key_buffer, pub_key_buffer_size, pub_key_hash); if (need_deallocation && pub_key_buffer_size > 0) { KAA_FREE(pub_key_buffer); } if (error) { KAA_LOG_FATAL(logger, error, "Failed to calculate EP ID"); kaa_context_destroy(*kaa_context_p); *kaa_context_p = NULL; kaa_log_destroy(logger); return error; } error = ext_copy_sha_hash((*kaa_context_p)->status->status_instance->endpoint_public_key_hash, pub_key_hash); if (error) { KAA_LOG_FATAL(logger, error, "Failed to set Endpoint public key"); kaa_context_destroy(*kaa_context_p); *kaa_context_p = NULL; kaa_log_destroy(logger); return error; } return KAA_ERR_NONE; }
kaa_error_t kaa_init(kaa_context_t **kaa_context_p) { KAA_RETURN_IF_NIL(kaa_context_p, KAA_ERR_BADPARAM); // Initialize logger kaa_logger_t *logger = NULL; kaa_error_t error = kaa_log_create(&logger, KAA_MAX_LOG_MESSAGE_LENGTH, KAA_MAX_LOG_LEVEL, NULL); // TODO: make log destination configurable if (error) { return error; } KAA_LOG_INFO(logger, KAA_ERR_NONE, "Kaa SDK version %s, commit hash %s", KAA_BUILD_VERSION, KAA_BUILD_COMMIT_HASH); // Initialize general Kaa context error = kaa_context_create(kaa_context_p, logger); if (error) { KAA_LOG_FATAL(logger, error, "Failed to create Kaa context"); *kaa_context_p = NULL; return error; } // Initialize endpoint identity uint8_t *sha1 = NULL; size_t sha1_size = 0; error = kaa_init_keys(); if (error) { KAA_LOG_ERROR(logger, error, "Failed to initialize keys"); return error; } ext_get_sha1_public(&sha1, &sha1_size); ext_copy_sha_hash((*kaa_context_p)->status->status_instance->endpoint_public_key_hash, sha1); return kaa_status_set_updated((*kaa_context_p)->status->status_instance, true); }