// Flip one bit in the proof string if invalidate is set to true
varinvalidatebool
funccorruptProofString(proofstring)string{
ifinvalidate{
proofBytes:=[]byte(proof)
flipLoc:=15
ifproofBytes[flipLoc]==0x33{
proofBytes[flipLoc]=0x32
}else{
proofBytes[flipLoc]=0x33
}
returnstring(proofBytes)
}
returnproof
}
funcTestManualSession(t*testing.T){
invalidate=false
channel:=make(chan*irma.SessionError)
client=parseStorage(t)
request:="{\"nonce\": 0, \"message\":\"I owe you everything\",\"messageType\":\"STRING\",\"content\":[{\"label\":\"Student number (RU)\",\"attributes\":[\"irma-demo.RU.studentCard.studentID\"]}]}"
request:="{\"nonce\": 0, \"context\": 0, \"message\":\"I owe you everything\",\"messageType\":\"STRING\",\"content\":[{\"label\":\"Student number (RU)\",\"attributes\":[\"irma-demo.RU.studentCard.studentID\"]}]}"
keyshareRequestString:="{\"nonce\": 0, \"context\": 0, \"message\":\"I owe you everything\",\"messageType\":\"STRING\",\"content\":[{\"label\":\"Student number (RU)\",\"attributes\":[\"test.test.mijnirma.email\"]}]}"
keyshareRequest:="{\"nonce\": 0, \"message\":\"I owe you everything\",\"messageType\":\"STRING\",\"content\":[{\"label\":\"Student number (RU)\",\"attributes\":[\"test.test.mijnirma.email\"]}]}"
request:="{\"nonce\": 0, \"context\": 0, \"message\":\"I owe you everything\",\"messageType\":\"STRING\",\"content\":[{\"label\":\"Student number (RU)\",\"attributes\":[\"irma-demo.RU.studentCard.studentID\"]},{\"label\":\"BSN\",\"attributes\":[\"irma-demo.MijnOverheid.root.BSN\"]}]}"
request:="{\"nonce\": 0, \"context\": 0, \"message\":\"I owe you everything\",\"messageType\":\"STRING\",\"content\":[{\"label\":\"Student number (RU)\",\"attributes\":[\"irma-demo.RU.studentCard.studentID\"]}]}"
sigRequestJSON:=[]byte(request)
sigRequest:=&irma.SignatureRequest{}
json.Unmarshal(sigRequestJSON,sigRequest)
ms:=ManualSessionHandler{
t:t,
c:channel,
sigRequest:sigRequest,
}
client.NewManualSession(request,&ms)
teardown(t)
iferr:=<-channel;err.ErrorType!="Proof does not verify"{