@@ -257,12 +257,12 @@ impl<C> CryptoBox<C> {
257257 /// Create a new [`CryptoBox`], performing X25519 Diffie-Hellman to derive
258258 /// a shared secret from the provided public and secret keys.
259259 ///
260- /// Assumes that the scalar has alread been clamped. Eg like `ed25519-dalek` does .
261- pub fn from_clamped ( public_key : & PublicKey , secret_key : & SecretKey ) -> Self
260+ /// Internally performs clamping .
261+ pub fn new ( public_key : & PublicKey , secret_key : & SecretKey ) -> Self
262262 where
263263 C : Kdf ,
264264 {
265- let shared_secret = Zeroizing :: new ( public_key. 0 * secret_key. scalar ) ;
265+ let shared_secret = Zeroizing :: new ( public_key. 0 . mul_clamped ( secret_key. bytes ) ) ;
266266
267267 // Use HChaCha20 to create a uniformly random key from the shared secret
268268 let key = Zeroizing :: new ( C :: kdf ( ( & shared_secret. 0 ) . into ( ) , & Array :: default ( ) ) ) ;
@@ -275,12 +275,12 @@ impl<C> CryptoBox<C> {
275275 /// Create a new [`CryptoBox`], performing X25519 Diffie-Hellman to derive
276276 /// a shared secret from the provided public and secret keys.
277277 ///
278- /// Internally performs clamping .
279- pub fn new ( public_key : & PublicKey , secret_key : & SecretKey ) -> Self
278+ /// Assumes that the scalar has alread been clamped. Eg like `ed25519-dalek` does .
279+ pub fn new_from_clamped ( public_key : & PublicKey , secret_key : & SecretKey ) -> Self
280280 where
281281 C : Kdf ,
282282 {
283- let shared_secret = Zeroizing :: new ( public_key. 0 . mul_clamped ( secret_key. bytes ) ) ;
283+ let shared_secret = Zeroizing :: new ( public_key. 0 * secret_key. scalar ) ;
284284
285285 // Use HChaCha20 to create a uniformly random key from the shared secret
286286 let key = Zeroizing :: new ( C :: kdf ( ( & shared_secret. 0 ) . into ( ) , & Array :: default ( ) ) ) ;
0 commit comments