add helper test routine for computing secp sigs
This commit is contained in:
parent
5e026cdd98
commit
f8654ab120
|
@ -230,6 +230,27 @@ class Libbolt(object):
|
||||||
return False
|
return False
|
||||||
return bool_str
|
return bool_str
|
||||||
|
|
||||||
|
def get_compact_channel_token(self, channel_token_str):
|
||||||
|
ct = self._interperate_json_string_as_dictionary(channel_token_str)
|
||||||
|
|
||||||
|
s = ct["pk_c"]
|
||||||
|
s += ct["pk_m"]
|
||||||
|
s += ct["cl_pk_m"]["X"]
|
||||||
|
s += "".join(ct["cl_pk_m"]["Y"])
|
||||||
|
s += ct["mpk"]["g1"]
|
||||||
|
s += ct["mpk"]["g2"]
|
||||||
|
s += "".join(ct["comParams"]["pub_bases"])
|
||||||
|
return s
|
||||||
|
|
||||||
|
def get_compact_signing_keys(self, cust_state_str):
|
||||||
|
cust_state_str = cust_state_str.replace("null", "None")
|
||||||
|
cust_state = self._interperate_json_string_as_dictionary(cust_state_str)
|
||||||
|
|
||||||
|
name = cust_state.get("name")
|
||||||
|
(pk, sk) = cust_state.get("pk_c"), cust_state.get("sk_c")
|
||||||
|
return name, pk, sk
|
||||||
|
|
||||||
|
|
||||||
if platform == 'darwin':
|
if platform == 'darwin':
|
||||||
prefix = 'lib'
|
prefix = 'lib'
|
||||||
ext = 'dylib'
|
ext = 'dylib'
|
||||||
|
@ -265,6 +286,11 @@ def run_unit_test():
|
||||||
(channel_token, cust_state, com, com_proof) = libbolt.bidirectional_establish_customer_generate_proof(channel_token, cust_state)
|
(channel_token, cust_state, com, com_proof) = libbolt.bidirectional_establish_customer_generate_proof(channel_token, cust_state)
|
||||||
print("channel token len: => ", len(channel_token))
|
print("channel token len: => ", len(channel_token))
|
||||||
print("channel token: => ", channel_token)
|
print("channel token: => ", channel_token)
|
||||||
|
#libbolt.get_compact_channel_token(channel_token)
|
||||||
|
|
||||||
|
print("cust state: ", cust_state)
|
||||||
|
#libbolt.get_compact_signing_keys(cust_state)
|
||||||
|
|
||||||
print("com: ", com)
|
print("com: ", com)
|
||||||
|
|
||||||
cust_state_dict = json.loads(cust_state)
|
cust_state_dict = json.loads(cust_state)
|
||||||
|
|
13
src/lib.rs
13
src/lib.rs
|
@ -648,6 +648,19 @@ pub mod wtp_utils {
|
||||||
return cid_thesame && wpk_thesame && channel_token.cl_pk_m.verify(&channel_token.mpk, &close_msg.as_fr_vec(), &close_token);
|
return cid_thesame && wpk_thesame && channel_token.cl_pk_m.verify(&channel_token.mpk, &close_msg.as_fr_vec(), &close_token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn wtp_generate_secp_signature(seckey: &[u8; 32], msg: &[u8; 32]) -> Vec<u8> {
|
||||||
|
let secp = secp256k1::Secp256k1::signing_only();
|
||||||
|
|
||||||
|
let msg = secp256k1::Message::from_slice(msg).unwrap();
|
||||||
|
let seckey = secp256k1::SecretKey::from_slice(seckey).unwrap();
|
||||||
|
let sig = secp.sign(&msg, &seckey);
|
||||||
|
|
||||||
|
// get serialized signature
|
||||||
|
let ser_sig = sig.serialize_der();
|
||||||
|
|
||||||
|
return ser_sig.to_vec();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn wtp_verify_secp_signature(pubkey: &secp256k1::PublicKey, hash: &Vec<u8>, sig: &secp256k1::Signature) -> bool {
|
pub fn wtp_verify_secp_signature(pubkey: &secp256k1::PublicKey, hash: &Vec<u8>, sig: &secp256k1::Signature) -> bool {
|
||||||
let secp = secp256k1::Secp256k1::verification_only();
|
let secp = secp256k1::Secp256k1::verification_only();
|
||||||
let msg = secp256k1::Message::from_slice(hash.as_slice()).unwrap();
|
let msg = secp256k1::Message::from_slice(hash.as_slice()).unwrap();
|
||||||
|
|
Loading…
Reference in New Issue