code: func (k *Kite) RSAKey(token *jwt.Token) (interface{}, error) {
  	k.verifyOnce.Do(k.verifyInit)
  
  	kontrolKey := k.KontrolKey()
  
  	if kontrolKey == nil {
  		panic("kontrol key is not set in config")
  	}
  
  	if _, ok := token.Method.(*jwt.SigningMethodRSA); !ok {
  		return nil, errors.New("invalid signing method")
  	}
  
  	claims, ok := token.Claims.(*kitekey.KiteClaims)
  	if !ok {
  		return nil, errors.New("token does not have valid claims")
  	}
  
  	if claims.Issuer != k.Config.KontrolUser {
  		return nil, fmt.Errorf("issuer is not trusted: %s", claims.Issuer)
  	}
  
  	return kontrolKey, nil
  }
docs: // RSAKey returns the corresponding public key for the issuer of the token.
  // It is called by jwt-go package when validating the signature in the token.