Guest User

Untitled

a guest
Dec 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. func BatchVerify() {
  2.  
  3. n := 1000;
  4.  
  5. sks := make([]*bls.SecretKey, n)
  6. sigs := make([]*bls.Sign, n)
  7. pks := make([]*bls.PublicKey, n)
  8. msgs := make([]string, n)
  9.  
  10. for i := 0; i < n; i++ {
  11. sk := &bls.SecretKey{}
  12. sk.SetByCSPRNG()
  13. sks[i] = sk
  14. pks[i] = sk.GetPublicKey()
  15.  
  16. m := make([]byte, 256)
  17. _, err := rand.Read(m)
  18. if err != nil {
  19. log.Fatal("No entropy")
  20. }
  21. msgs[i] = string(m)
  22. }
  23.  
  24. startTime := time.Now()
  25. for i := 0; i < n; i++ {
  26. sigs[i] = sks[i].Sign(string(msgs[i]))
  27. }
  28. endTime := time.Now()
  29. log.Printf("Time required to sign %d messages: %f seconds", n, endTime.Sub(startTime).Seconds())
  30.  
  31. startTime = time.Now()
  32. for i := 0; i < n; i++ {
  33. if ! sigs[i].Verify(pks[i], msgs[i]) {
  34. log.Fatal("Failed to verify sig")
  35. }
  36. }
  37. endTime = time.Now()
  38. log.Printf("Time required to batch verify %d messages: %f seconds", n, endTime.Sub(startTime).Seconds())
  39. }
Add Comment
Please, Sign In to add comment