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,
+};