You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@milagro.apache.org by km...@apache.org on 2020/05/13 06:40:47 UTC

[incubator-milagro-crypto-rust] branch develop updated: Expose helper functions

This is an automated email from the ASF dual-hosted git repository.

kmccusker pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-milagro-crypto-rust.git


The following commit(s) were added to refs/heads/develop by this push:
     new 72d26e9  Expose helper functions
     new 736cdcb  Merge pull request #35 from sigp/exports
72d26e9 is described below

commit 72d26e9dba0dd948673462cb9f84e6a63b41f285
Author: Kirk Baird <ba...@outlook.com>
AuthorDate: Tue May 12 20:21:15 2020 +1000

    Expose helper functions
    
    Signed-off-by: Kirk Baird <ba...@outlook.com>
---
 src/bls381/basic.rs                |  8 ++------
 src/bls381/core.rs                 |  8 ++++----
 src/bls381/message_augmentation.rs |  8 ++------
 src/bls381/mod.rs                  |  3 +++
 src/bls381/proof_of_possession.rs  | 12 ++++--------
 src/bls381/utils.rs                |  5 +++++
 6 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/src/bls381/basic.rs b/src/bls381/basic.rs
index 2fe57e6..d283e62 100644
--- a/src/bls381/basic.rs
+++ b/src/bls381/basic.rs
@@ -1,14 +1,10 @@
 use super::core;
-use super::core::{G1_BYTES, G2_BYTES, SECRET_KEY_BYTES};
 
 use errors::AmclError;
 use rand::RAND;
 
-// Re-export serialization functions.
-pub use super::core::{
-    deserialize_g1, deserialize_g2, serialize_g1, serialize_g2, serialize_uncompressed_g1,
-    serialize_uncompressed_g2,
-};
+// Re-export constants from core.
+pub use super::core::{G1_BYTES, G2_BYTES, SECRET_KEY_BYTES};
 
 /// Domain Separation Tag for signatures on G1
 pub const DST_G1: &[u8] = b"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_";
diff --git a/src/bls381/core.rs b/src/bls381/core.rs
index 3c04b71..03a2eb1 100644
--- a/src/bls381/core.rs
+++ b/src/bls381/core.rs
@@ -75,7 +75,7 @@ pub(crate) fn key_generate(ikm: &[u8], key_info: &[u8]) -> [u8; SECRET_KEY_BYTES
 }
 
 // Converts secret key bytes to a Big
-pub(crate) fn secret_key_from_bytes(secret_key: &[u8]) -> Result<Big, AmclError> {
+pub fn secret_key_from_bytes(secret_key: &[u8]) -> Result<Big, AmclError> {
     if secret_key.len() != SECRET_KEY_BYTES {
         return Err(AmclError::InvalidSecretKeySize);
     }
@@ -94,7 +94,7 @@ pub(crate) fn secret_key_from_bytes(secret_key: &[u8]) -> Result<Big, AmclError>
 }
 
 // Converts secret key Big to bytes
-pub(crate) fn secret_key_to_bytes(secret_key: &Big) -> [u8; SECRET_KEY_BYTES] {
+pub fn secret_key_to_bytes(secret_key: &Big) -> [u8; SECRET_KEY_BYTES] {
     let mut big_bytes = [0u8; MODBYTES];
     secret_key.tobytes(&mut big_bytes);
     let mut secret_key_bytes = [0u8; SECRET_KEY_BYTES];
@@ -103,14 +103,14 @@ pub(crate) fn secret_key_to_bytes(secret_key: &Big) -> [u8; SECRET_KEY_BYTES] {
 }
 
 // Verifies a G1 point is in subgroup `r`.
-pub(crate) fn subgroup_check_g1(point: &ECP) -> bool {
+pub fn subgroup_check_g1(point: &ECP) -> bool {
     let r = Big::new_ints(&CURVE_ORDER);
     let check = pair::g1mul(&point, &r);
     check.is_infinity()
 }
 
 // Verifies a G2 point is in subgroup `r`.
-pub(crate) fn subgroup_check_g2(point: &ECP2) -> bool {
+pub fn subgroup_check_g2(point: &ECP2) -> bool {
     let r = Big::new_ints(&CURVE_ORDER);
     let check = pair::g2mul(&point, &r);
     check.is_infinity()
diff --git a/src/bls381/message_augmentation.rs b/src/bls381/message_augmentation.rs
index ec4260e..e2c7c6f 100644
--- a/src/bls381/message_augmentation.rs
+++ b/src/bls381/message_augmentation.rs
@@ -1,14 +1,10 @@
 use super::core;
-use super::core::{G1_BYTES, G2_BYTES, SECRET_KEY_BYTES};
 
 use errors::AmclError;
 use rand::RAND;
 
-// Re-export serialization functions.
-pub use super::core::{
-    deserialize_g1, deserialize_g2, serialize_g1, serialize_g2, serialize_uncompressed_g1,
-    serialize_uncompressed_g2,
-};
+// Re-export constants from core.
+pub use super::core::{G1_BYTES, G2_BYTES, SECRET_KEY_BYTES};
 
 /// Domain Separation Tag for signatures on G1
 pub const DST_G1: &[u8] = b"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_AUG_";
diff --git a/src/bls381/mod.rs b/src/bls381/mod.rs
index bbb7309..7db8d9e 100644
--- a/src/bls381/mod.rs
+++ b/src/bls381/mod.rs
@@ -6,5 +6,8 @@ pub mod basic;
 pub mod message_augmentation;
 pub mod proof_of_possession;
 
+// Expose helper functions for external libraries.
+pub mod utils;
+
 mod core;
 mod iso;
diff --git a/src/bls381/proof_of_possession.rs b/src/bls381/proof_of_possession.rs
index 8161c2e..0c1d05f 100644
--- a/src/bls381/proof_of_possession.rs
+++ b/src/bls381/proof_of_possession.rs
@@ -1,20 +1,16 @@
 use super::super::ecp::ECP;
 use super::super::ecp2::ECP2;
 use super::super::pair;
-use super::core;
 use super::core::{
-    hash_to_curve_g1, hash_to_curve_g2, secret_key_from_bytes, subgroup_check_g1,
-    subgroup_check_g2, G1_BYTES, G2_BYTES, SECRET_KEY_BYTES,
+    self, deserialize_g1, deserialize_g2, hash_to_curve_g1, hash_to_curve_g2,
+    secret_key_from_bytes, serialize_g1, serialize_g2, subgroup_check_g1, subgroup_check_g2,
 };
 
 use errors::AmclError;
 use rand::RAND;
 
-// Re-export serialization functions.
-pub use super::core::{
-    deserialize_g1, deserialize_g2, serialize_g1, serialize_g2, serialize_uncompressed_g1,
-    serialize_uncompressed_g2,
-};
+// Re-export constants from core.
+pub use super::core::{G1_BYTES, G2_BYTES, SECRET_KEY_BYTES};
 
 /// Domain Separation Tag for signatures on G1
 pub const DST_G1: &[u8] = b"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_POP_";
diff --git a/src/bls381/utils.rs b/src/bls381/utils.rs
new file mode 100644
index 0000000..5e62187
--- /dev/null
+++ b/src/bls381/utils.rs
@@ -0,0 +1,5 @@
+pub use super::core::{
+    deserialize_g1, deserialize_g2, hash_to_curve_g1, hash_to_curve_g2, secret_key_from_bytes,
+    secret_key_to_bytes, serialize_g1, serialize_g2, serialize_uncompressed_g1,
+    serialize_uncompressed_g2, subgroup_check_g1, subgroup_check_g2,
+};