Advertisement
theinsekt

testhsign2

Sep 14th, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.21 KB | None | 0 0
  1. --program testing hsign2
  2.  
  3. os.loadAPI("theinsektAPIs/sha256")
  4. os.loadAPI("theinsektAPIs/hsign2")
  5.  
  6. args={...}
  7.  
  8. if #args==0 then
  9.  print("usage_sender: testhsign2 secret modemside targetid")
  10.  print("usage_receiver: testhsign2 secret modemside")
  11.  return
  12. end
  13.  
  14. local protocol="hsign2"
  15. local secret=args[1]
  16. local side=args[2]
  17.  
  18. if secret==nil then error("Error: secret has no value") end
  19. if side==nil then error("Error: side has no value") end
  20. rednet.open(side)
  21.  
  22.  
  23. print(#args)
  24. if #args >= 3 then
  25.  local id=tonumber(args[3])
  26.  local sign=hsign2.getSigner(secret,sha256.sha256)
  27.  while(true) do
  28.   print("input:")
  29.   local input=read()
  30.   local signedMessage=sign(input)
  31.   rednet.send(id,signedMessage,protocol, secret)
  32.   print("sent: ",signedMessage)
  33.   print("done")
  34.  end
  35. else
  36.  local verify=hsign2.getVerifier(secret,sha256.sha256)
  37.  while(true) do
  38.   print("waiting for message...")
  39.   local id2, signedMessage, protocol2 =rednet.receive(protocol)
  40.   print("respond to id: ",id2)
  41.   print("respond with protocol: ",protocol2)
  42.   print("signedMessage: ")
  43.   print(signedMessage)
  44.   local ok, message=verify(signedMessage)
  45.   print("Verification result: ",ok)
  46.   print("message: ",message)
  47.   print("done")
  48.  end
  49. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement