diff --git a/include/dap_cert.h b/include/dap_cert.h index 16c43b9d80ae36a05a135327783e8c083e68923f..a793fd7ad309e6bc297906af1adf1ab6f69eb78c 100755 --- a/include/dap_cert.h +++ b/include/dap_cert.h @@ -39,6 +39,10 @@ typedef struct dap_cert { char * metadata; } dap_cert_t; +#ifdef __cplusplus +extern "C" { +#endif + int dap_cert_init(); @@ -62,7 +66,7 @@ dap_cert_t * dap_cert_find_by_name(const char * a_cert_name); dap_sign_t * dap_cert_sign(dap_cert_t * a_cert, const void * a_data, size_t a_data_size, size_t a_output_size_wished ); -int dap_cert_compare_with_sign (dap_cert_t * a_cert,dap_sign_t * a_sign); +int dap_cert_compare_with_sign (dap_cert_t * a_cert,const dap_sign_t * a_sign); size_t dap_cert_sign_output_size(dap_cert_t * a_cert, size_t a_size_wished); @@ -80,3 +84,7 @@ void dap_cert_deinit(); void dap_cert_delete(dap_cert_t * a_cert); void dap_cert_delete_by_name(const char * a_cert_name); + +#ifdef __cplusplus +} +#endif diff --git a/include/dap_cert_file.h b/include/dap_cert_file.h index 5ba7f1fbabe38e5b913cbbf277ae9cffc790b182..6ab2293a4343bdd14c28bfccb7d9eae2f636cdd5 100755 --- a/include/dap_cert_file.h +++ b/include/dap_cert_file.h @@ -53,8 +53,16 @@ typedef struct dap_cert_file{ uint8_t data[]; }DAP_ALIGN_PACKED dap_cert_file_t; +#ifdef __cplusplus +extern "C" { +#endif + int dap_cert_file_save(dap_cert_t * a_cert, const char * a_cert_file_path); uint8_t* dap_cert_mem_save(dap_cert_t * a_cert, uint32_t *a_cert_size_out); dap_cert_t* dap_cert_file_load(const char * a_cert_file_path); -dap_cert_t* dap_cert_mem_load(void * a_data, size_t a_data_size); +dap_cert_t* dap_cert_mem_load(const void * a_data, size_t a_data_size); + +#ifdef __cplusplus +} +#endif diff --git a/include/dap_enc_key.h b/include/dap_enc_key.h index 4598356890308ff25d0bfb1d3c3e3196b3d5a66e..064896d3cfadd7109fa932de816eb596686b19dd 100755 --- a/include/dap_enc_key.h +++ b/include/dap_enc_key.h @@ -30,9 +30,7 @@ #include <time.h> #include <stdint.h> -#ifdef __cplusplus -extern "C" { -#endif + typedef enum dap_enc_data_type{DAP_ENC_DATA_TYPE_RAW, @@ -216,6 +214,10 @@ typedef struct dap_enc_key_serealize { unsigned char inheritor[MAX_INHERITOR_SIZE]; } dap_enc_key_serealize_t; +#ifdef __cplusplus +extern "C" { +#endif + int dap_enc_key_init(void); void dap_enc_key_deinit(void); @@ -228,10 +230,10 @@ uint8_t* dap_enc_key_deserealize_sign(dap_enc_key_type_t a_key_type, uint8_t *a_ uint8_t* dap_enc_key_serealize_priv_key(dap_enc_key_t *a_key, size_t *a_buflen_out); uint8_t* dap_enc_key_serealize_pub_key(dap_enc_key_t *a_key, size_t *a_buflen_out); int dap_enc_key_deserealize_priv_key(dap_enc_key_t *a_key, uint8_t *a_buf, size_t a_buflen); -int dap_enc_key_deserealize_pub_key(dap_enc_key_t *a_key, uint8_t *a_buf, size_t a_buflen); +int dap_enc_key_deserealize_pub_key(dap_enc_key_t *a_key, const uint8_t *a_buf, size_t a_buflen); dap_enc_key_serealize_t* dap_enc_key_serealize(dap_enc_key_t * key); -dap_enc_key_t* dap_enc_key_deserealize(void *buf, size_t buf_size); +dap_enc_key_t* dap_enc_key_deserealize(const void *buf, size_t buf_size); // allocate memory for key struct dap_enc_key_t *dap_enc_key_new(dap_enc_key_type_t a_key_type); diff --git a/include/dap_sign.h b/include/dap_sign.h index 8a5542e6c9d4ca414246d2c6b8bc5c3df855f1d8..467b087da418bbd8b0a63ed2a107dc31bb705e42 100755 --- a/include/dap_sign.h +++ b/include/dap_sign.h @@ -61,6 +61,10 @@ typedef struct dap_sign uint8_t pkey_n_sign[]; /// @param sig @brief raw signature data } DAP_ALIGN_PACKED dap_sign_t; +#ifdef __cplusplus +extern "C" { +#endif + size_t dap_sign_get_size(dap_sign_t * a_chain_sign); int dap_sign_verify (dap_sign_t * a_chain_sign, const void * a_data, const size_t a_data_size); @@ -85,3 +89,6 @@ dap_enc_key_t *dap_sign_to_enc_key(dap_sign_t * a_chain_sign); const char * dap_sign_type_to_str(dap_sign_type_t a_chain_sign_type); dap_sign_type_t dap_sign_type_from_str(const char * a_type_str); +#ifdef __cplusplus +} +#endif diff --git a/libdap-crypto.pri b/libdap-crypto.pri index 6ca16ee9ab396c05d066747891444b552df9f5a2..6761178a2da9cc92b3a3d312ead49a816759fb1c 100755 --- a/libdap-crypto.pri +++ b/libdap-crypto.pri @@ -21,9 +21,16 @@ HEADERS += $$PWD/include/dap_enc.h \ $$PWD/include/dap_enc_picnic.h \ $$PWD/include/dap_enc_bliss.h \ $$PWD/include/dap_enc_tesla.h \ - $$PWD/include/dap_crypto_common.h \ $$PWD/include/dap_enc_base58.h \ $$PWD/include/dap_enc_dilithium.h \ + $$PWD/include/dap_crypto_common.h \ + $$PWD/include/dap_cert.h \ + $$PWD/include/dap_cert_file.h \ + $$PWD/include/dap_pkey.h \ + $$PWD/include/dap_sign.h \ + $$PWD/include/dap_hash.h \ + $$PWD/include/dap_hash_fusion.h \ + $$PWD/include/dap_hash_keccak.h \ $$PWD/src/XKCP/lib/high/Keccak/FIPS202/SimpleFIPS202.h \ $$PWD/src/XKCP/lib/high/Keccak/SP800-185/SP800-185.h \ $$PWD/src/XKCP/lib/high/common/Phases.h @@ -41,6 +48,13 @@ SOURCES += $$PWD/src/dap_enc.c \ $$PWD/src/dap_enc_base58.c \ $$PWD/src/dap_enc_dilithium.c \ $$PWD/src/dap_enc_ca.c \ + $$PWD/src/dap_cert.c \ + $$PWD/src/dap_cert_file.c \ + $$PWD/src/dap_pkey.c \ + $$PWD/src/dap_sign.c \ + $$PWD/src/dap_hash.c \ + $$PWD/src/dap_hash_fusion.c \ + $$PWD/src/dap_hash_keccak.c \ $$PWD/src/XKCP/lib/high/Keccak/FIPS202/SimpleFIPS202.c \ $$PWD/src/XKCP/lib/high/Keccak/SP800-185/SP800-185.c \ $$PWD/src/XKCP/lib/high/Keccak/SP800-185/SP800-185.inc diff --git a/src/dap_cert.c b/src/dap_cert.c index e82d29d395a34606da772837c5eeaaf3074d293a..14fd1a793076122ff516c3a37a73f287791c9520 100755 --- a/src/dap_cert.c +++ b/src/dap_cert.c @@ -389,7 +389,7 @@ dap_pkey_t * dap_cert_to_pkey(dap_cert_t * a_cert) * @param a_sign * @return */ -int dap_cert_compare_with_sign (dap_cert_t * a_cert,dap_sign_t * a_sign) +int dap_cert_compare_with_sign (dap_cert_t * a_cert,const dap_sign_t * a_sign) { dap_return_val_if_fail(a_cert && a_cert->enc_key && a_sign, -1); if ( dap_sign_type_from_key_type( a_cert->enc_key->type ).type == a_sign->header.type.type ){ diff --git a/src/dap_cert_file.c b/src/dap_cert_file.c index f41e05eac7242b450d9b78a9deb744114f1f1009..2958abaf6bd608e3231b415be74c364139d66542 100755 --- a/src/dap_cert_file.c +++ b/src/dap_cert_file.c @@ -179,11 +179,11 @@ lb_exit: * @param a_data_size * @return */ -dap_cert_t* dap_cert_mem_load(void * a_data, size_t a_data_size) +dap_cert_t* dap_cert_mem_load(const void * a_data, size_t a_data_size) { dap_cert_t * l_ret = NULL; dap_cert_file_hdr_t l_hdr={0}; - uint8_t * l_data = (uint8_t *) a_data; + const uint8_t * l_data = (const uint8_t *) a_data; uint32_t l_data_offset = 0; memcpy(&l_hdr,l_data, sizeof(l_hdr)); l_data_offset += sizeof(l_hdr); diff --git a/src/dap_enc_key.c b/src/dap_enc_key.c index 1d9ab6e03c4a155042b306c9acea58bff9659627..332eb6b4da96a7db425ab733abcd67db33e5ac68 100755 --- a/src/dap_enc_key.c +++ b/src/dap_enc_key.c @@ -410,7 +410,7 @@ int dap_enc_key_deserealize_priv_key(dap_enc_key_t *a_key, uint8_t *a_buf, size_ * @param a_buflen_out * @return 0 Ok, -1 error */ -int dap_enc_key_deserealize_pub_key(dap_enc_key_t *a_key, uint8_t *a_buf, size_t a_buflen) +int dap_enc_key_deserealize_pub_key(dap_enc_key_t *a_key, const uint8_t *a_buf, size_t a_buflen) { if(!a_key || !a_buf) return -1; @@ -490,13 +490,13 @@ dap_enc_key_serealize_t* dap_enc_key_serealize(dap_enc_key_t * key) * @param buf_size * @return allocates dap_enc_key_t*. Use dap_enc_key_delete for free memory */ -dap_enc_key_t* dap_enc_key_deserealize(void *buf, size_t buf_size) +dap_enc_key_t* dap_enc_key_deserealize(const void *buf, size_t buf_size) { if(buf_size != sizeof (dap_enc_key_serealize_t)) { log_it(L_ERROR, "Key can't be deserealize. buf_size != sizeof (dap_enc_key_serealize_t)"); return NULL; } - dap_enc_key_serealize_t *in_key = (dap_enc_key_serealize_t *)buf; + const dap_enc_key_serealize_t *in_key = (const dap_enc_key_serealize_t *)buf; dap_enc_key_t *result = dap_enc_key_new(in_key->type); result->last_used_timestamp = in_key->last_used_timestamp; result->priv_key_data_size = in_key->priv_key_data_size;