Skip to content
Snippets Groups Projects
Commit 95c55df3 authored by Dmitriy A. Gerasimov's avatar Dmitriy A. Gerasimov
Browse files

[+] Extract sign by number from event

parent 19410795
No related branches found
No related tags found
No related merge requests found
......@@ -24,6 +24,9 @@
#include "dap_common.h"
#include "dap_enc_key.h"
#include "dap_chain_sign.h"
#include "dap_chain_datum.h"
#include "dap_chain_cs_dag.h"
#include "dap_chain_cs_dag_event.h"
......@@ -88,3 +91,24 @@ dap_chain_datum_t* dap_chain_cs_dag_event_get_datum(dap_chain_cs_dag_event_t * a
return (dap_chain_datum_t*) l_signs+l_signs_offset;
}
/**
* @brief dap_chain_cs_dag_event_get_sign
* @param a_event
* @param a_sign_number
* @return
*/
dap_chain_sign_t * dap_chain_cs_dag_event_get_sign( dap_chain_cs_dag_event_t * a_event, uint16_t a_sign_number)
{
if (a_event->header.signs_count < a_sign_number ){
uint8_t * l_signs = a_event->hashes_n_signs_n_datum
+a_event->header.hash_count*sizeof(dap_chain_hash_fast_t);
uint16_t l_signs_offset = 0;
uint16_t l_signs_passed;
for ( l_signs_passed=0; l_signs_passed < a_sign_number; l_signs_passed++){
dap_chain_sign_t * l_sign = (dap_chain_sign_t *) l_signs+l_signs_offset;
l_signs_offset+=l_sign->header.sign_pkey_size+l_sign->header.sign_size+sizeof(l_sign->header);
}
return (dap_chain_sign_t*) l_signs + l_signs_offset;
}else
return NULL;
}
......@@ -23,9 +23,10 @@
*/
#pragma once
#include "dap_enc_key.h"
#include "dap_chain_common.h"
#include "dap_chain_datum.h"
#include "dap_chain_sign.h"
typedef struct dap_chain_cs_dag dap_chain_cs_dag_t;
......@@ -43,7 +44,8 @@ typedef struct dap_chain_cs_dag_event {
dap_chain_cs_dag_event_t * dap_chain_cs_dag_event_new(dap_chain_cs_dag_t * a_dag, dap_chain_datum_t * a_datum,
dap_enc_key_t * a_key,
dap_chain_hash_fast_t * a_hashes, size_t a_hashes_count);
void dap_chain_cs_dag_event_delete(dap_chain_cs_dag_t * a_dag, dap_chain_cs_dag_event_t * a_event);
dap_chain_datum_t* dap_chain_cs_dag_event_get_datum(dap_chain_cs_dag_event_t * a_event);
dap_chain_sign_t * dap_chain_cs_dag_event_get_sign( dap_chain_cs_dag_event_t * a_event, uint16_t a_sign_number);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment