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
}