code: func (c *Conversation) processRevealSig(msg []byte) (err error) {
  	revealSigMsg := revealSig{}
  	err = revealSigMsg.deserialize(msg, c.version)
  	if err != nil {
  		return
  	}
  
  	r := revealSigMsg.r[:]
  	theirMAC := revealSigMsg.macSig
  	encryptedSig := revealSigMsg.encryptedSig
  
  	decryptedGx := make([]byte, len(c.ake.encryptedGx))
  	if err = decrypt(r, decryptedGx, c.ake.encryptedGx); err != nil {
  		return
  	}
  
  	if err = checkDecryptedGx(decryptedGx, c.ake.xhashedGx, c.version); err != nil {
  		return
  	}
  
  	if c.ake.theirPublicValue, err = extractGx(decryptedGx); err != nil {
  		return
  	}
  
  	c.calcAKEKeys(c.calcDHSharedSecret())
  	if err = c.processEncryptedSig(encryptedSig, theirMAC, &c.ake.revealKey); err != nil {
  		return newOtrError("in reveal signature message: " + err.Error())
  	}
  
  	return nil
  }
docs: // processRevealSig = alice = y
  // Bob ---- Reveal Signature ----> Alice