func runEndSessionTestCase()

in cmd/conformance/main.go [707:742]


func runEndSessionTestCase(ctx context.Context, t endSessionTest) error {
	c, sessionContext, err := establishSecureSessionWithNullAttestation(ctx, unprotectedKey)
	if err != nil {
		return err
	}

	if t.mutateSessionKey != nil {
		sessionContext = t.mutateSessionKey(sessionContext)
	}

	// Session-encrypt the EndSession constant string.
	if _, err := c.tls.Write([]byte(constants.EndSessionString)); err != nil {
		return fmt.Errorf("error session-encrypting the EndSession constant: %v", err)
	}

	records := c.shim.DrainSendBuf()
	if t.mutateTLSRecords != nil {
		records = t.mutateTLSRecords(records)
	}

	req5 := &sspb.EndSessionRequest{
		SessionContext: sessionContext,
		TlsRecords:     records,
	}

	if t.mutateJWT != nil {
		newToken, err := t.mutateJWT(ctx, c.client.GetJWTToken())
		if err != nil {
			glog.Fatalf("Error mutating JWT: %v", err)
		}
		c.client.SetJWTToken(newToken)
	}

	_, err = c.client.EndSession(ctx, req5)
	return err
}