Просмотр исходного кода

research/x3dh: Update to latest curve25519 API

parazyd 3 лет назад
Родитель
Сommit
eb6934bc2f
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      script/research/x3dh/src/xeddsa.rs

+ 4 - 2
script/research/x3dh/src/xeddsa.rs

@@ -19,7 +19,9 @@
 //! Taken from https://docs.rs/ockam_vault/latest/src/ockam_vault/xeddsa.rs.html
 //! XEdDSA according to <https://signal.org/docs/specifications/xeddsa/#xeddsa>
 use curve25519_dalek::{
-    constants::ED25519_BASEPOINT_TABLE, montgomery::MontgomeryPoint, scalar::Scalar,
+    constants::ED25519_BASEPOINT_TABLE,
+    montgomery::MontgomeryPoint,
+    scalar::{clamp_integer, Scalar},
 };
 use digest::Digest;
 use ed25519_dalek::{Signature, VerifyingKey as Ed25519PublicKey};
@@ -51,7 +53,7 @@ impl XeddsaSigner for X25519SecretKey {
 
         // x25519-dalek private keys are already clamped, so just compute
         // the Ed25519 public key from the Curve25519 private key.
-        let scalar_k = Scalar::from_bits(self.to_bytes());
+        let scalar_k = Scalar::from_bytes_mod_order(clamp_integer(self.to_bytes()));
         let edward_point = ED25519_BASEPOINT_TABLE * &scalar_k;
         let mut compressed_edwards = edward_point.compress();
         let sign = compressed_edwards.0[31] >> 7;