How to verify a shared secret using only AES?
Why over-complicate it like that, 


D1 and D2 generates random 64-bit P (half the block size of AES)
they send it to each other
both generate AES(key,P_own||P_other) and again send to each other (note that these are different for each)
then both can verify that what they received is equal to AES(key,P_other||P_own) 


Upside here is that it is a fully symmetric protocol.