MCPcopy Create free account
hub / github.com/BitVM/BitVM / get_signature_from_assertion

Function get_signature_from_assertion

bitvm/src/chunk/api_runtime_utils.rs:298–328  ·  view source on GitHub ↗

wots sign byte array using secrets mirror of get_assertions_from_signature

(assn: Assertions, secrets: Vec<String>)

Source from the content-addressed store, hash-verified

296// wots sign byte array using secrets
297// mirror of get_assertions_from_signature
298pub(crate) fn get_signature_from_assertion(assn: Assertions, secrets: Vec<String>) -> Signatures {
299 println!("get_signature_from_assertion");
300 // sign and return Signatures
301 let (ps, fs, hs) = (assn.0, assn.1, assn.2);
302
303 let mut psig: Vec<<Wots32 as Wots>::Signature> = vec![];
304 for i in 0..NUM_PUBS {
305 let secret = Wots32::secret_from_str(secrets[i].as_str());
306 let psi = Wots32::sign(&secret, &ps[i]);
307 psig.push(psi);
308 }
309 let psig: Box<[<Wots32 as Wots>::Signature; NUM_PUBS]> = Box::new(psig.try_into().unwrap());
310
311 let mut fsig: Vec<<Wots32 as Wots>::Signature> = vec![];
312 for i in 0..fs.len() {
313 let secret = Wots32::secret_from_str(secrets[i + NUM_PUBS].as_str());
314 let fsi = Wots32::sign(&secret, &fs[i]);
315 fsig.push(fsi);
316 }
317 let fsig: Box<[<Wots32 as Wots>::Signature; NUM_U256]> = Box::new(fsig.try_into().unwrap());
318
319 let mut hsig: Vec<<Wots16 as Wots>::Signature> = vec![];
320 for i in 0..hs.len() {
321 let secret = Wots16::secret_from_str(secrets[i + NUM_PUBS + NUM_U256].as_str());
322 let hsi = Wots16::sign(&secret, &hs[i]);
323 hsig.push(hsi);
324 }
325 let hsig: Box<[<Wots16 as Wots>::Signature; NUM_HASH]> = Box::new(hsig.try_into().unwrap());
326
327 (psig, fsig, hsig)
328}
329
330// decode signature to assertion
331// mirror of get_signature_from_assertion

Callers 6

generate_signaturesFunction · 0.85
test_largest_chunksFunction · 0.85
full_e2e_executionFunction · 0.85

Calls 2

lenMethod · 0.80
pushMethod · 0.45

Tested by 3

test_largest_chunksFunction · 0.68
full_e2e_executionFunction · 0.68