diff --git a/crypto/include/dap_sign.h b/crypto/include/dap_sign.h index cf620bc2b43c53093abb4bb617593e2122eb4d95..3f2b524ebfe84aa80da383e7723063dc71e52553 100755 --- a/crypto/include/dap_sign.h +++ b/crypto/include/dap_sign.h @@ -123,6 +123,14 @@ static inline int dap_sign_verify_all(dap_sign_t * a_sign, const size_t a_sign_s } return 0; } + +/** + * @brief + * @return + */ +DAP_STATIC_INLINE const char *dap_sign_get_str_recommended_types(){ + return "sig_dil\nsig_falcon\nsig_sphincs\nsig_shipovnik\nsig_multi_chained\n"; +} // Create sign of data hash with key provided algorythm of signing and hashing (independently) dap_sign_t * dap_sign_create(dap_enc_key_t *a_key, const void * a_data, const size_t a_data_size, size_t a_output_wish_size ); //Create sign on raw data without hashing. Singing algorythm is key provided @@ -143,6 +151,7 @@ bool dap_sign_compare_pkeys(dap_sign_t *l_sign1, dap_sign_t *l_sign2); 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); +bool dap_sign_type_is_depricated(dap_sign_type_t a_sign_type); dap_sign_t **dap_sign_get_unique_signs(void *a_data, size_t a_data_size, size_t *a_signs_count); void dap_sign_get_information(dap_sign_t *a_sign, dap_string_t *a_str_out, const char *a_hash_out_type); diff --git a/crypto/src/dap_cert_file.c b/crypto/src/dap_cert_file.c index a7df1ee9c1ea8ded82217e18d999daed7d90b988..417ad0681c8b8aeba64207e4d0a53cc3b9d8c481 100755 --- a/crypto/src/dap_cert_file.c +++ b/crypto/src/dap_cert_file.c @@ -64,6 +64,7 @@ int dap_cert_file_save(dap_cert_t * a_cert, const char * a_cert_file_path) }else{ log_it(L_ERROR,"Can't serialize certificate in memory"); fclose(l_file); + remove(a_cert_file_path); return -4; } }else{ diff --git a/crypto/src/dap_sign.c b/crypto/src/dap_sign.c index e4599c19e7f9b934dbd40fc37f2d98e430e195db..92a09e7232775a6936c27f2f73f2ecc5c0f36f90 100755 --- a/crypto/src/dap_sign.c +++ b/crypto/src/dap_sign.c @@ -168,6 +168,17 @@ dap_sign_type_t dap_sign_type_from_str(const char * a_type_str) return l_sign_type; } +/** + * @brief The function checks the signature type to see if it is outdated. + * @param a_sign_type + * @return bool + */ +bool dap_sign_type_is_depricated(dap_sign_type_t a_sign_type){ + if (a_sign_type.type == SIG_TYPE_PICNIC || a_sign_type.type == SIG_TYPE_BLISS || a_sign_type.type == SIG_TYPE_TESLA) + return true; + return false; +} + /** * @brief encrypt data * call a_key->sign_get