diff --git a/crypto/dap_enc_key.c b/crypto/dap_enc_key.c index e56694a28de5746aa823e523877ad15f426feb4a..e350df611c1dc8c52e2aa0c1b49af81aee02c39f 100755 --- a/crypto/dap_enc_key.c +++ b/crypto/dap_enc_key.c @@ -43,6 +43,10 @@ struct dap_enc_key_callbacks{ dap_enc_callback_dataop_t dec; dap_enc_callback_dataop_na_t enc_na; dap_enc_callback_dataop_na_t dec_na; + + dap_enc_callback_sign_op_t sign_get; + dap_enc_callback_sign_op_t sign_verify; + dap_enc_callback_gen_key_public_t gen_key_public; dap_enc_callback_key_size_t gen_key_public_size; @@ -71,6 +75,8 @@ struct dap_enc_key_callbacks{ .gen_key_public_size = NULL, .enc_out_size = dap_enc_iaes256_calc_encode_size, .dec_out_size = dap_enc_iaes256_calc_decode_size, + .sign_get = NULL, + .sign_verify = NULL }, // OAES [DAP_ENC_KEY_TYPE_OAES]={ @@ -86,6 +92,8 @@ struct dap_enc_key_callbacks{ .gen_key_public_size = NULL, .enc_out_size = dap_enc_oaes_calc_encode_size, .dec_out_size = dap_enc_oaes_calc_decode_size, + .sign_get = NULL, + .sign_verify = NULL }, [DAP_ENC_KEY_TYPE_MSRLN] = { .name = "MSRLN", @@ -100,7 +108,9 @@ struct dap_enc_key_callbacks{ .gen_key_public_size = NULL, .new_from_data_public_callback = dap_enc_msrln_key_new_from_data_public, .enc_out_size = NULL, - .dec_out_size = NULL + .dec_out_size = NULL, + .sign_get = NULL, + .sign_verify = NULL }, [DAP_ENC_KEY_TYPE_DEFEO]={ .name = "DEFEO", @@ -114,7 +124,9 @@ struct dap_enc_key_callbacks{ .delete_callback = dap_enc_defeo_key_delete, .new_generate_callback = dap_enc_defeo_key_new_generate, .enc_out_size = NULL, - .dec_out_size = NULL + .dec_out_size = NULL, + .sign_get = NULL, + .sign_verify = NULL }, [DAP_ENC_KEY_TYPE_SIG_PICNIC]={ .name = "PICNIC", @@ -130,14 +142,18 @@ struct dap_enc_key_callbacks{ .delete_callback = dap_enc_sig_picnic_key_delete, .new_generate_callback = dap_enc_sig_picnic_key_new_generate, .enc_out_size = NULL, - .dec_out_size = NULL + .dec_out_size = NULL, + .sign_get = NULL, + .sign_verify = NULL }, [DAP_ENC_KEY_TYPE_SIG_BLISS]={ .name = "SIG_BLISS", .enc = NULL, .dec = NULL, - .enc_na = dap_enc_sig_bliss_get_sign, - .dec_na = dap_enc_sig_bliss_verify_sign, + .enc_na = NULL, + .dec_na = NULL, + .sign_get = dap_enc_sig_bliss_get_sign, + .sign_verify = dap_enc_sig_bliss_verify_sign, .gen_bob_shared_key = NULL, .gen_alice_shared_key = NULL, .new_callback = dap_enc_sig_bliss_key_new, @@ -163,7 +179,9 @@ struct dap_enc_key_callbacks{ .delete_callback = dap_enc_sig_tesla_key_delete, .new_generate_callback = dap_enc_sig_tesla_key_new_generate, .enc_out_size = NULL, - .dec_out_size = NULL + .dec_out_size = NULL, + .sign_get = NULL, + .sign_verify = NULL } }; diff --git a/crypto/dap_enc_key.h b/crypto/dap_enc_key.h index f3ceebe0abdd99e887971ab4fc062938e97f0811..e27a635895414a9f7c83e68532b4fd5ca06177cf 100755 --- a/crypto/dap_enc_key.h +++ b/crypto/dap_enc_key.h @@ -134,6 +134,10 @@ typedef size_t (*dap_enc_callback_dataop_t)(struct dap_enc_key *key, const void typedef size_t (*dap_enc_callback_dataop_na_t)(struct dap_enc_key *key, const void *in, const size_t in_size,void * out, const size_t out_size_max); + +typedef int (*dap_enc_callback_sign_op_t)(struct dap_enc_key *key, const void *in, + const size_t in_size,void * out, const size_t out_size_max); + // key pair generation and generation of shared key at Bob's side // INPUT: // dap_enc_key *b_key @@ -184,6 +188,9 @@ typedef struct dap_enc_key { dap_enc_callback_dataop_na_t enc_na; dap_enc_callback_dataop_na_t dec_na; + dap_enc_callback_sign_op_t sign_get; + dap_enc_callback_sign_op_t sign_verify; + dap_enc_gen_alice_shared_key gen_alice_shared_key; dap_enc_gen_bob_shared_key gen_bob_shared_key;