Beispiel #1
0
int main() 
{
	Sqrl_Uri *uri;

	uri = sqrl_uri_parse( "sqrl://sqrlid.com/login?x=6&nut=blah&sfn=U1FSTGlk" );
	printuri( uri );
	NUMEQ( uri->scheme, SQRL_SCHEME_SQRL );
	STREQ( uri->host, "sqrlid.com/login" )
	STREQ( uri->challenge, "sqrl://sqrlid.com/login?x=6&nut=blah&sfn=U1FSTGlk" )
	STREQ( uri->url, "https://sqrlid.com/login?x=6&nut=blah&sfn=U1FSTGlk" )
	STREQ( uri->prefix, "https://sqrlid.com" );
	STREQ( uri->sfn, "SQRLid" );
	sqrl_uri_free( uri );

	uri = sqrl_uri_parse( "sqrl://sqrlid.com/login?nut=blah&sfn=U1FSTGlk" );
	printuri( uri );
	NUMEQ( uri->scheme, SQRL_SCHEME_SQRL );
	STREQ( uri->host, "sqrlid.com" );
	STREQ( uri->challenge, "sqrl://sqrlid.com/login?nut=blah&sfn=U1FSTGlk" );
	STREQ( uri->url, "https://sqrlid.com/login?nut=blah&sfn=U1FSTGlk" );
	STREQ( uri->prefix, "https://sqrlid.com" );
	STREQ( uri->sfn, "SQRLid" );
	sqrl_uri_free( uri );

	uri = sqrl_uri_parse( "sqrl://sqrlid.com:8080/login?sfn=U1FSTGlk&nut=blah" );
	printuri( uri );
	NUMEQ( uri->scheme, SQRL_SCHEME_SQRL );
	STREQ( uri->host, "sqrlid.com" );
	STREQ( uri->challenge, "sqrl://sqrlid.com:8080/login?sfn=U1FSTGlk&nut=blah" );
	STREQ( uri->url, "https://sqrlid.com:8080/login?sfn=U1FSTGlk&nut=blah" );
	STREQ( uri->prefix, "https://sqrlid.com:8080" );
	STREQ( uri->sfn, "SQRLid" );
	sqrl_uri_free( uri );

	uri = sqrl_uri_parse( "file://test1.sqrl" );
	printuri( uri );
	NUMEQ( uri->scheme, SQRL_SCHEME_FILE );
	STRNULL( uri->host );
	STREQ( uri->url, "file://test1.sqrl" );
	STREQ( uri->challenge, "test1.sqrl" );
	STRNULL( uri->prefix );
	STRNULL( uri->sfn );
	sqrl_uri_free( uri );

	uri = sqrl_uri_parse( "sqrl://sqrlid.com:8080/login?nut=blah" );
	if( uri ) {
		printf( "Accepted SQRL url without SFN!\n" );
		sqrl_uri_free( uri );
		exit(1);
	}

	uri = sqrl_uri_parse( "http://google.com" );
	if( uri ) {
		printf( "Invalid SQRL URL was accepted as valid: http://google.com\n" );
		exit(1);
	}

	printf( "PASS!\n" );
	exit(0);
}
Beispiel #2
0
int
DoLogin( char *user, char *passwd, char *host )
{
	ios_$id_t		logid;
	login_$opt_set_t	opts;
		status_$t		status;
        error_$string_t         subsystem, module, error;
        short                   sslen, modlen, errlen;
	char			buf[BUFSIZ];
      
	Debug("DoLogin(): for %s\n", user);
	login_$set_host(host, strlen(host));

	opts = login_$no_prompt_name_sm | 
	       login_$no_prompt_pass_sm | 
	       login_$addut_sm		|
	       login_$chown_tty_sm;

	Debug("DoLogin(): before calling login_$chk_login()\n");
	if ((!login_$chk_login(opts, STRING(user), STRING(passwd),
	                       (login_$open_log_p) NULL, STRING(""),
			       &logid, &status)) 
	    && (status.all != status_$ok)) {

	    Debug("DoLogin(): login_$chk_login() failed\n");
       	    error_$get_text(status, subsystem, &sslen, module, &modlen, 
	    		    error, &errlen);
            STRNULL(error, errlen);
	    STRNULL(module, modlen);
       	    STRNULL(subsystem, sslen);
            sprintf(buf,ReadCatalog(MC_LOG_SET,MC_LOG_DOMAIN,MC_DEF_LOG_DOMAIN),
		error, subsystem, module);
	    LogError (buf);

	    bzero (passwd, strlen(passwd)); 

	    return (false);
	}

	Debug("DoLogin(): login_$chk_login() succeeded\n");

	/* 
	 * clear password...
	 */
	bzero (passwd, strlen(passwd)); 

	return (true);
}     
Beispiel #3
0
static void toolutil_findBasename(void)
{
  struct {
    const char *inBuf;
    const char *expectResult;
  } testCases[] = { 
    {
      U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata",
      "pkgdata"
    },
    {
      U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING,
      ""
    },
    {
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata",
      "pkgdata"
    },
    {
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING,
      ""
    },
  };
  int32_t count=(sizeof(testCases)/sizeof(testCases[0]));
  int32_t i;


  log_verbose("Testing findBaseName()\n");
  for(i=0;i<count;i++) {
    const char *result;
    const char *input = STRNULL(testCases[i].inBuf);
    const char *expect = STRNULL(testCases[i].expectResult);
    log_verbose("Test case [%d/%d]: %s\n", i, count-1, input);
    result = STRNULL(findBasename(testCases[i].inBuf));
    if(result==expect||!strcmp(result,expect)) {
      log_verbose(" -> %s PASS\n", result);
    } else {
      log_err("FAIL: Test case [%d/%d]: %s -> %s but expected %s\n", i, count-1, input, result, expect);
    }
  }
}
Beispiel #4
0
static void
journal_ix_log_dump(journal *jh)
{
    journal_ix *jix = (journal_ix*)jh;

    const u8 *origin;
    if(jh->zone != NULL)
    {
        origin = FQDNNULL(jix->zone->origin);
    }
    else
    {
        origin = (const u8*)"\012NOT-LINKED";
    }

    log_debug("domain='%{dnsname}' mru=%i file='%s' fd=%i range=%u:%u lpo=%llu",
                origin,
                (jix->mru)?1:0,
                STRNULL(jix->journal_name),
                jix->fd,
                jix->first_serial,
                jix->last_serial,
                jix->last_page_offset);
}
Beispiel #5
0
static void toolutil_findDirname(void)
{
  int i;
  struct {
    const char *inBuf;
    int32_t outBufLen;
    UErrorCode expectStatus;
    const char *expectResult;
  } testCases[] = { 
    {
      U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata",
      200,
      U_ZERO_ERROR,
      U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin",
    },
    {
      U_FILE_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata",
      2,
      U_BUFFER_OVERFLOW_ERROR,
      NULL
    },
    {
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata",
      200,
      U_ZERO_ERROR,
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin"
    },
    {
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata",
      2,
      U_BUFFER_OVERFLOW_ERROR,
      NULL
    },
    {
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_SEP_STRING "pkgdata",
      200,
      U_ZERO_ERROR,
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin"
    },
    {
      U_FILE_ALT_SEP_STRING "usr" U_FILE_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata",
      200,
      U_ZERO_ERROR,
      U_FILE_ALT_SEP_STRING "usr" U_FILE_SEP_STRING "bin"
    },
    {
      U_FILE_ALT_SEP_STRING "usr" U_FILE_ALT_SEP_STRING "bin" U_FILE_ALT_SEP_STRING "pkgdata",
      2,
      U_BUFFER_OVERFLOW_ERROR,
      NULL
    },
    {
      U_FILE_ALT_SEP_STRING "vmlinuz",
      200,
      U_ZERO_ERROR,
      U_FILE_ALT_SEP_STRING
    },
    {
      U_FILE_SEP_STRING "vmlinux",
      200,
      U_ZERO_ERROR,
      U_FILE_SEP_STRING
    },
    {
      "pkgdata",
      0,
      U_BUFFER_OVERFLOW_ERROR,
      NULL
    },
    {
      "pkgdata",
      1,
      U_BUFFER_OVERFLOW_ERROR,
      NULL
    },
    {
      "pkgdata",
      2,
      U_ZERO_ERROR,
      "."
    },
    {
      "pkgdata",
      20,
      U_ZERO_ERROR,
      "."
    }
  };
  int32_t count=(sizeof(testCases)/sizeof(testCases[0]));

  log_verbose("Testing findDirname()\n");
  for(i=0;i<count;i++) {
    const char *result;
    const char *input = STRNULL(testCases[i].inBuf);
    const char *expect = STRNULL(testCases[i].expectResult);
    UErrorCode status = U_ZERO_ERROR;
    uprv_memset(toolutil_testBuf, 0x55, TOOLUTIL_TESTBUF_SIZE);
    
    log_verbose("Test case [%d/%d]: %s\n", i, count-1, input);
    result = STRNULL(findDirname(testCases[i].inBuf, toolutil_testBuf, testCases[i].outBufLen, &status));
    log_verbose(" -> %s, \n", u_errorName(status));
    if(status != testCases[i].expectStatus) {
      log_verbose("FAIL: Test case [%d/%d]: %s got error code %s but expected %s\n", i, count-1, input, u_errorName(status), u_errorName(testCases[i].expectStatus));
    }
    if(result==expect||!strcmp(result,expect)) {
      log_verbose(" = -> %s \n", result);
    } else {
      log_err("FAIL: Test case [%d/%d]: %s -> %s but expected %s\n", i, count-1, input, result, expect);
    }
  }
}