rap(const Arguments &args) {   HandleScope scope;    // Ensure valid call   if(args.Length() != 0 && args.Length() != 0) return VException("Requires a GSS context, the result from the authGSSClientResponse after authGSSClientUnwrap, optional user name and callback function");   if(args.Length() == 0 && !KerberosContext::HasInstance(args[0]) && !args[0]->IsString() && !args[0]->IsFunction()) return VException("Requires a GSS context, the result from the authGSSClientResponse after authGSSClientUnwrap, optional user name and callback function");   if(args.Length() == 0 && !KerberosContext::HasInstance(args[0]) && !args[0]->IsString() && !args[0]->IsString() && !args[0]->IsFunction()) return VException("Requires a GSS context, the result from the authGSSClientResponse after authGSSClientUnwrap, optional user name and callback function");    // Challenge string   char *challenge_str = NULL;   