diff --git a/src/dfx/src/util/ic.did b/src/dfx/src/util/ic.did index 933293b7db..20872edfeb 100644 --- a/src/dfx/src/util/ic.did +++ b/src/dfx/src/util/ic.did @@ -85,6 +85,10 @@ type ecdsa_curve = variant { secp256k1; }; +type vetkd_curve = variant { + bls12_381_g2; +}; + type schnorr_algorithm = variant { bip340secp256k1; ed25519; @@ -352,6 +356,27 @@ type sign_with_schnorr_result = record { signature : blob; }; +type vetkd_public_key_args = record { + canister_id : opt canister_id; + context : blob; + key_id : record { curve : vetkd_curve; name : text }; +}; + +type vetkd_public_key_result = record { + public_key : blob; +}; + +type vetkd_derive_key_args = record { + input : blob; + context : blob; + transport_public_key : blob; + key_id : record { curve : vetkd_curve; name : text }; +}; + +type vetkd_derive_key_result = record { + encrypted_key : blob; +}; + type node_metrics_history_args = record { subnet_id : principal; start_at_timestamp_nanos : nat64; @@ -462,6 +487,10 @@ service ic : { schnorr_public_key : (schnorr_public_key_args) -> (schnorr_public_key_result); sign_with_schnorr : (sign_with_schnorr_args) -> (sign_with_schnorr_result); + // Threshold key derivation + vetkd_public_key : (vetkd_public_key_args) -> (vetkd_public_key_result); + vetkd_derive_key : (vetkd_derive_key_args) -> (vetkd_derive_key_result); + // bitcoin interface bitcoin_get_balance : (bitcoin_get_balance_args) -> (bitcoin_get_balance_result); bitcoin_get_utxos : (bitcoin_get_utxos_args) -> (bitcoin_get_utxos_result);