- /// Derives the "tweak" used to calculate the per-commitment private key.
- ///
- /// The per-commitment private key is calculates a private key as:
- /// `privkey = basepoint_secret + SHA256(per_commitment_point || basepoint)`
- ///
- /// This calculates the hash part in the tweak derivation process, which is used to
- /// ensure that each key is unique and cannot be guessed by an external party.
- pub fn derive_add_tweak(&self, per_commitment_point: &PublicKey) -> Sha256 {
- let mut sha = Sha256::engine();
- sha.input(&per_commitment_point.serialize());
- sha.input(&self.to_public_key().serialize());
- Sha256::from_engine(sha)
- }
+ $(doc_comment!(
+ concat!(
+ "Derives the \"tweak\" used in calculate [`", $KeyName, "::from_basepoint`].\n",
+ "\n",
+ "[`", $KeyName, "::from_basepoint`] calculates a private key as:\n",
+ "`privkey = basepoint_secret + SHA256(per_commitment_point || basepoint)`\n",
+ "\n",
+ "This calculates the hash part in the tweak derivation process, which is used to\n",
+ "ensure that each key is unique and cannot be guessed by an external party."
+ ),
+ pub fn derive_add_tweak(&self, per_commitment_point: &PublicKey) -> Sha256 {
+ let mut sha = Sha256::engine();
+ sha.input(&per_commitment_point.serialize());
+ sha.input(&self.to_public_key().serialize());
+ Sha256::from_engine(sha)
+ });
+ )?