void fill_uhash(int onfly) { int fd, usernumber; usernumber = 0; for (fd = 0; fd < (1 << HASH_BITS); fd++) if(!onfly) SHM->hash_head[fd] = -1; else checkhash(fd); if ((fd = open(FN_PASSWD, O_RDWR)) > 0) { struct stat stbuf; caddr_t fimage, mimage; fstat(fd, &stbuf); fimage = mmap(NULL, stbuf.st_size, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0); if (fimage == (char *) -1) { perror("mmap"); exit(1); } close(fd); fd = stbuf.st_size / sizeof(userec_t); if (fd > MAX_USERS) fd = MAX_USERS; for (mimage = fimage; usernumber < fd; mimage += sizeof(userec_t)) { userec_add_to_uhash(usernumber, (userec_t *)mimage, onfly); usernumber++; } munmap(fimage, stbuf.st_size); } else { perror("open"); exit(1); } SHM->number = usernumber; printf("total %d names %s.\n", usernumber, onfly ? "checked":"loaded"); }
int main(int argc, char **argv) { int ch, version = 0; extern char build_info[]; struct hashinfo *hashinfo = 0; while ((ch = getopt(argc, argv, "cdvhnD:")) != -1) switch(ch) { case 'c': create++; break; case 'D': if (strcmp(optarg, "md5") == 0) hashtype = HASH_TYPE_MD5; else if (strcmp(optarg, "sha1") == 0) hashtype = HASH_TYPE_SHA1; else { fprintf(stderr, "Invalid digest type `%s'\n", optarg); usage(); } break; case 'd': detail++; break; case 'n': nothreads++; break; case 'v': version++; break; case 'h': case '?': default: usage(); } argc -= optind; argv += optind; if (version || detail) { fprintf(stderr, "%s\n", build_info); if (version) exit(0); } if ((create && argc < 1) || (!create && argc < 2)) usage(); /* * Ensure we can open both files before we do the expensive stuff. */ if (strcmp(argv[0], "-") != 0 && access(argv[0], R_OK) != 0) { perror("image file"); exit(1); } if (!create && access(argv[1], R_OK) != 0) { perror("device file"); exit(1); } /* * Create a hash file */ if (create) { if (createhash(argv[0], &hashinfo)) exit(2); dumphash(argv[0], hashinfo); exit(0); } /* * Compare the hash file versus a device */ if (gethashinfo(argv[0], &hashinfo)) exit(2); dumphash(argv[0], hashinfo); (void) checkhash(argv[1], hashinfo); exit(0); }
int main() { std::string a = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbccccccccccccaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; std::string output; ZopfliOptions options; ZopfliInitOptions(&options); snappy::Compress(a.data(), a.size(), &output); if(!checkhash((unsigned char *)output.data(), output.size(), (char *)"0x5a8f06cf6817a74bc75c3c8290196928acb04c189ecdd192a93eb3c3")) { std::cout<<"Something wrong\n"; } unsigned char b[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbccccccccccccaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; unsigned char *out = NULL; size_t outsize = 0; ZopfliCompress(&options, ZOPFLI_FORMAT_GZIP, b, a.size(), &out, &outsize); if(!checkhash(out, outsize, (char *)"0x0f66ce213d2d27067ff9ffa8bbde2dd06d7f3e687549fad846169e16")) { std::cout<<"Something wrong\n"; } HangulInputContext* ic; const char* p = "dekde"; const ucschar* commit; ic = hangul_ic_new("2y"); while (*p != '\0') { hangul_ic_process(ic, *p); p++; } commit = hangul_ic_get_commit_string(ic); int len = wcslen((const wchar_t*)commit); if(!checkhash((unsigned char*)commit, len * sizeof(const wchar_t), (char *)"0xc9bf9374fbc9f4989afd0af7ac9824a4dcc768b33bfa3bb38e42617b")) { std::cout<<"Something wrong\n"; } hangul_ic_delete(ic); static JSClass global_class = { "global", JSCLASS_NEW_RESOLVE | JSCLASS_GLOBAL_FLAGS, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_StrictPropertyStub, JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, NULL, JSCLASS_NO_OPTIONAL_MEMBERS }; JSRuntime *rt = JS_NewRuntime(8 * 1024 * 1024); JSContext *cx = JS_NewContext(rt, 8192); JS_SetOptions(cx, JSOPTION_VAROBJFIX); JS_SetErrorReporter(cx, reportError); JSObject *global = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL); JS_SetGlobalObject(cx, global); if (!JS_InitStandardClasses(cx, global)) { return 1; } char source[] = "Math.random()"; jsval rval; cx->rngSeed = 31337; JS_EvaluateScript(cx, global, source, strlen(source), "none", 10, &rval); double nums[2]; nums[0] = JSVAL_TO_DOUBLE(rval); JS_EvaluateScript(cx, global, source, strlen(source), "none", 10, &rval); nums[1] = JSVAL_TO_DOUBLE(rval); if(!checkhash((unsigned char*)nums, 2 * sizeof(double), (char *)"0x61b35e8d466f24ee1ea502350ec6f5d1134fe6ec543c17845fa62f8a")) { std::cout<<"Something wrong\n"; } JS_DestroyContext(cx); JS_DestroyRuntime(rt); JS_ShutDown(); mtprngParam mt; byte bay[] = "qqqqqqqqqqqqqqqq"; byte result[100]; for(int i=0; i< 100; i++) { result[i] = 0; } mtprngSetup(&mt); mtprngSeed(&mt, bay, 16); mtprngNext(&mt, result, 100); if(!checkhash((unsigned char*)&result, 100, (char *)"0x7754dfd27fe6fa00551861ff41e4f48315bd89bef6da652f182ce2d6")) { std::cout<<"Something wrong\n"; } ranlib::ChiSquare<double> gen(4); gen.seed(31337); double f[16]; for(int i = 0; i<16; i++) { f[i] = gen.random(); } if(!checkhash((unsigned char*)&f, 16 * sizeof(double), (char *)"0xd19d0c167fe93b11004c0167c226d2e92c17dfa36ffb243f39824098")) { std::cout<<"Something wrong\n"; } Botan::byte pass[] = "aaaabbbb"; Botan::PBKDF* pbkdf = Botan::get_pbkdf("PBKDF2(SHA-256)"); Botan::OctetString aes_key = pbkdf->derive_key(32, "pass1337", pass, 8, 31337); std::string aa = aes_key.as_string(); if(!checkhash((unsigned char*)aa.c_str(), aa.size(), (char *)"0x0c33d122ed50848a676539ae48eb84db0dcbf69e9ee857094755f2d7")) { std::cout<<"Something wrong\n"; } std::cout<<"Answer is RUCTF_"; checkhash((unsigned char*)together, pos, (char *)""); return 0; }