code: func NewInitialAEAD(connID protocol.ConnectionID, pers protocol.Perspective) (Sealer, Opener, error) {
  	clientSecret, serverSecret := computeSecrets(connID)
  	var mySecret, otherSecret []byte
  	if pers == protocol.PerspectiveClient {
  		mySecret = clientSecret
  		otherSecret = serverSecret
  	} else {
  		mySecret = serverSecret
  		otherSecret = clientSecret
  	}
  	myKey, myHPKey, myIV := computeInitialKeyAndIV(mySecret)
  	otherKey, otherHPKey, otherIV := computeInitialKeyAndIV(otherSecret)
  
  	encrypter := qtls.AEADAESGCMTLS13(myKey, myIV)
  	hpEncrypter, err := aes.NewCipher(myHPKey)
  	if err != nil {
  		return nil, nil, err
  	}
  	decrypter := qtls.AEADAESGCMTLS13(otherKey, otherIV)
  	hpDecrypter, err := aes.NewCipher(otherHPKey)
  	if err != nil {
  		return nil, nil, err
  	}
  	return newSealer(encrypter, hpEncrypter, false), newOpener(decrypter, hpDecrypter, false), nil
  }
docs: // NewInitialAEAD creates a new AEAD for Initial encryption / decryption.