@@ -370,13 +370,11 @@ func (i *Initiator) ProduceHsMsg3() (signedMsg3 []byte, success bool) {
370370 }
371371
372372 //@ requires acc(i, 1/2) && acc(i.l.Mem(), 1/2)
373- //@ requires acc( Mem(signedMsg3), 1/2) && Abs(signedMsg3) == by.signB(ay.tuple5B(ay.integer32B(Msg3Tag), ay.integer32B(i.idA), ay.integer32B(i.idB), by.gamma(i.YT), by.expB(ay.generatorB(), by.gamma(i.xT))), by.gamma(i.skAT))
373+ //@ requires Mem(signedMsg3) && signedMsg3 != nil && Abs(signedMsg3) == by.signB(ay.tuple5B(ay.integer32B(Msg3Tag), ay.integer32B(i.idA), ay.integer32B(i.idB), by.gamma(i.YT), by.expB(ay.generatorB(), by.gamma(i.xT))), by.gamma(i.skAT))
374374 //@ requires pl.token(t0) && io.P_Alice(t0, ridT, s0)
375375 //@ requires HasHsMsg3OutFact(ridT, i.idA, i.idB, i.YT, i.xT, i.skAT, s0)
376376 //@ requires ProcessedHsMsg2Pred(ridT, i.idA, i.idB, i.skAT, i.skBT, i.xT, i.YT, s0)
377377 //@ ensures acc(i, 1/2) && acc(i.l.Mem(), 1/2)
378- // due to the workaround for sanitization, we obtain a different slice to which `signedMsg3` points:
379- // ensures acc(Mem(signedMsg3), 1/2) && signedMsg3 != nil
380378 //@ ensures Mem(signedMsg3) && signedMsg3 != nil && Abs(signedMsg3) == before(Abs(signedMsg3))
381379 //@ ensures pl.token(t1) && io.P_Alice(t1, ridT, s1)
382380 //@ ensures ProcessedHsMsg2Pred(ridT, i.idA, i.idB, i.skAT, i.skBT, i.xT, i.YT, s1)
@@ -408,8 +406,7 @@ func (i *Initiator) ProduceHsMsg3() (signedMsg3 []byte, success bool) {
408406 sharedSecret , err /*@, sharedSecretB @*/ = i .l .DhSharedSecret (i .x , i .Y )
409407 if err == nil { //argot:ignore diodon-dh-io-independence
410408 i .irKey , i .riKey = NewBytes (32 ), NewBytes (32 )
411- //@ ghost var t0Abs, t1Abs by.Bytes
412- err /*@, t0Abs, t1Abs @*/ = KDF2Slice (i .irKey , i .riKey , sharedSecret /*@, sharedSecretB @*/ )
409+ err = KDF2Slice (i .irKey , i .riKey , sharedSecret )
413410 if err == nil {
414411 i .l .PrintKeys (i .irKey , i .riKey )
415412 //@ fold HandshakeCompletedPred(i.irKey, i.riKey, i.xT, i.YT)
0 commit comments