这篇教程C++ zeromem函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中zeromem函数的典型用法代码示例。如果您正苦于以下问题:C++ zeromem函数的具体用法?C++ zeromem怎么用?C++ zeromem使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了zeromem函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: findMDIParentOfstatic HWND findMDIParentOf (HWND w){ const int frameThickness = GetSystemMetrics (SM_CYFIXEDFRAME); while (w != 0) { HWND parent = GetParent (w); if (parent == 0) break; TCHAR windowType [32]; zeromem (windowType, sizeof (windowType)); GetClassName (parent, windowType, 31); if (String (windowType).equalsIgnoreCase (T("MDIClient"))) { w = parent; break; } RECT windowPos; GetWindowRect (w, &windowPos); RECT parentPos; GetWindowRect (parent, &parentPos); int dw = (parentPos.right - parentPos.left) - (windowPos.right - windowPos.left); int dh = (parentPos.bottom - parentPos.top) - (windowPos.bottom - windowPos.top); if (dw > 100 || dh > 100) break; w = parent; if (dw == 2 * frameThickness) break; } return w;}
开发者ID:glocklueng,项目名称:stm32-mios32,代码行数:41,
示例2: hash_filehandle/** Hash data from an open file handle. @param hash The index of the hash you want to use @param in The FILE* handle of the file you want to hash @param out [out] The destination of the digest @param outlen [in/out] The max size and resulting size of the digest @result CRYPT_OK if successful */int hash_filehandle(int hash, FILE *in, unsigned char *out, unsigned long *outlen){#ifdef LTC_NO_FILE return CRYPT_NOP;#else hash_state md; unsigned char buf[512]; size_t x; int err; LTC_ARGCHK(out != NULL); LTC_ARGCHK(outlen != NULL); LTC_ARGCHK(in != NULL); if ((err = hash_is_valid(hash)) != CRYPT_OK) { return err; } if (*outlen < hash_descriptor[hash].hashsize) { *outlen = hash_descriptor[hash].hashsize; return CRYPT_BUFFER_OVERFLOW; } if ((err = hash_descriptor[hash].init(&md)) != CRYPT_OK) { return err; } *outlen = hash_descriptor[hash].hashsize; do { x = fread(buf, 1, sizeof(buf), in); if ((err = hash_descriptor[hash].process(&md, buf, x)) != CRYPT_OK) { return err; } } while (x == sizeof(buf)); err = hash_descriptor[hash].done(&md, out);#ifdef LTC_CLEAN_STACK zeromem(buf, sizeof(buf));#endif return err;#endif}
开发者ID:SquadroneSystem,项目名称:vrbrain_nuttx,代码行数:49,
示例3: key/** EAX encrypt and produce an authentication tag @param cipher The index of the cipher desired @param key The secret key to use @param keylen The length of the secret key (octets) @param nonce The session nonce [use once] @param noncelen The length of the nonce @param header The header for the session @param headerlen The length of the header (octets) @param pt The plaintext @param ptlen The length of the plaintext (octets) @param ct [out] The ciphertext @param tag [out] The destination tag @param taglen [in/out] The max size and resulting size of the authentication tag @return CRYPT_OK if successful*/int eax_encrypt_authenticate_memory(int cipher, const unsigned char *key, unsigned long keylen, const unsigned char *nonce, unsigned long noncelen, const unsigned char *header, unsigned long headerlen, const unsigned char *pt, unsigned long ptlen, unsigned char *ct, unsigned char *tag, unsigned long *taglen){ int err; eax_state *eax; LTC_ARGCHK(key != NULL); LTC_ARGCHK(pt != NULL); LTC_ARGCHK(ct != NULL); LTC_ARGCHK(tag != NULL); LTC_ARGCHK(taglen != NULL); eax = XMALLOC(sizeof(*eax)); if ((err = eax_init(eax, cipher, key, keylen, nonce, noncelen, header, headerlen)) != CRYPT_OK) { goto LBL_ERR; } if ((err = eax_encrypt(eax, pt, ct, ptlen)) != CRYPT_OK) { goto LBL_ERR; } if ((err = eax_done(eax, tag, taglen)) != CRYPT_OK) { goto LBL_ERR; } err = CRYPT_OK;LBL_ERR:#ifdef LTC_CLEAN_STACK zeromem(eax, sizeof(*eax));#endif XFREE(eax); return err; }
开发者ID:tch-opensrc,项目名称:TC72XX_LxG1.0.10mp5_OpenSrc,代码行数:57,
示例4: key/** HMAC a block of memory to produce the authentication tag @param hash The index of the hash to use @param key The secret key @param keylen The length of the secret key (octets) @param in The data to HMAC @param inlen The length of the data to HMAC (octets) @param out [out] Destination of the authentication tag @param outlen [in/out] Max size and resulting size of authentication tag @return CRYPT_OK if successful*/int hmac_memory(int hash, const unsigned char *key, unsigned long keylen, const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen){ hmac_state *hmac; int err; LTC_ARGCHK(key != NULL); LTC_ARGCHK(in != NULL); LTC_ARGCHK(out != NULL); LTC_ARGCHK(outlen != NULL); /* allocate ram for hmac state */ hmac = XMALLOC(sizeof(hmac_state)); if (hmac == NULL) { return CRYPT_MEM; } if ((err = hmac_init(hmac, hash, key, keylen)) != CRYPT_OK) { goto LBL_ERR; } if ((err = hmac_process(hmac, in, inlen)) != CRYPT_OK) { goto LBL_ERR; } if ((err = hmac_done(hmac, out, outlen)) != CRYPT_OK) { goto LBL_ERR; } err = CRYPT_OK;LBL_ERR:#ifdef LTC_CLEAN_STACK zeromem(hmac, sizeof(hmac_state));#endif XFREE(hmac); return err; }
开发者ID:tch-opensrc,项目名称:TC72XX_LxG1.7.1mp1_OpenSrc,代码行数:51,
示例5: switchint Compression::compress(uint8_t *p_dst, const uint8_t *p_src, int p_src_size,Mode p_mode) { switch(p_mode) { case MODE_FASTLZ: { if (p_src_size<16) { uint8_t src[16]; zeromem(&src[p_src_size],16-p_src_size); copymem(src,p_src,p_src_size); return fastlz_compress(src,16,p_dst); } else { return fastlz_compress(p_src,p_src_size,p_dst); } } break; case MODE_DEFLATE: { z_stream strm; strm.zalloc = zipio_alloc; strm.zfree = zipio_free; strm.opaque = Z_NULL; int err = deflateInit(&strm,Z_DEFAULT_COMPRESSION); if (err!=Z_OK) return -1; strm.avail_in=p_src_size; int aout = deflateBound(&strm,p_src_size);; strm.avail_out=aout; strm.next_in=(Bytef*)p_src; strm.next_out=p_dst; deflate(&strm,Z_FINISH); aout = aout - strm.avail_out; deflateEnd(&strm); return aout; } break; } ERR_FAIL_V(-1);}
开发者ID:03050903,项目名称:godot,代码行数:40,
示例6: hash/** Hash a block of memory and store the digest. @param hash The index of the hash you wish to use @param in The data you wish to hash @param inlen The length of the data to hash (octets) @param out [out] Where to store the digest @param outlen [in/out] Max size and resulting size of the digest @return CRYPT_OK if successful*/int hash_memory(int hash, const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen){ hash_state *md; int err; LTC_ARGCHK(in != NULL); LTC_ARGCHK(out != NULL); LTC_ARGCHK(outlen != NULL); if ((err = hash_is_valid(hash)) != CRYPT_OK) { return err; } if (*outlen < hash_descriptor[hash].hashsize) { *outlen = hash_descriptor[hash].hashsize; return CRYPT_BUFFER_OVERFLOW; } md = XMALLOC(sizeof(hash_state)); if (md == NULL) { return CRYPT_MEM; } if ((err = hash_descriptor[hash].init(md)) != CRYPT_OK) { goto LBL_ERR; } if ((err = hash_descriptor[hash].process(md, in, inlen)) != CRYPT_OK) { goto LBL_ERR; } err = hash_descriptor[hash].done(md, out); *outlen = hash_descriptor[hash].hashsize;LBL_ERR:#ifdef LTC_CLEAN_STACK zeromem(md, sizeof(hash_state));#endif XFREE(md); return err;}
开发者ID:3dseals,项目名称:wowmodelviewer,代码行数:48,
示例7: rng_make_prngint rng_make_prng(int bits, int wprng, prng_state *prng, void (*callback)(void)){ unsigned char buf[256]; int err; _ARGCHK(prng != NULL); /* check parameter */ if ((err = prng_is_valid(wprng)) != CRYPT_OK) { return err; } if (bits < 64 || bits > 1024) { return CRYPT_INVALID_PRNGSIZE; } if ((err = prng_descriptor[wprng].start(prng)) != CRYPT_OK) { return err; } bits = ((bits/8)+((bits&7)!=0?1:0)) * 2; if (rng_get_bytes(buf, (unsigned long)bits, callback) != (unsigned long)bits) { return CRYPT_ERROR_READPRNG; } if ((err = prng_descriptor[wprng].add_entropy(buf, (unsigned long)bits, prng)) != CRYPT_OK) { return err; } if ((err = prng_descriptor[wprng].ready(prng)) != CRYPT_OK) { return err; } #ifdef CLEAN_STACK zeromem(buf, sizeof(buf)); #endif return CRYPT_OK;}
开发者ID:mvanderkolff,项目名称:navi-misc,代码行数:39,
示例8: key/** OMAC a block of memory @param cipher The index of the desired cipher @param key The secret key @param keylen The length of the secret key (octets) @param in The data to send through OMAC @param inlen The length of the data to send through OMAC (octets) @param out [out] The destination of the authentication tag @param outlen [in/out] The max size and resulting size of the authentication tag (octets) @return CRYPT_OK if successful*/int omac_memory(int cipher, const unsigned char *key, unsigned long keylen, const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen){ int err; omac_state *omac; LTC_ARGCHK(key != NULL); LTC_ARGCHK(in != NULL); LTC_ARGCHK(out != NULL); LTC_ARGCHK(outlen != NULL); /* allocate ram for omac state */ omac = XMALLOC(sizeof(omac_state)); if (omac == NULL) { return CRYPT_MEM; } /* omac process the message */ if ((err = omac_init(omac, cipher, key, keylen)) != CRYPT_OK) { goto LBL_ERR; } if ((err = omac_process(omac, in, inlen)) != CRYPT_OK) { goto LBL_ERR; } if ((err = omac_done(omac, out, outlen)) != CRYPT_OK) { goto LBL_ERR; } err = CRYPT_OK;LBL_ERR:#ifdef LTC_CLEAN_STACK zeromem(omac, sizeof(omac_state));#endif XFREE(omac); return err; }
开发者ID:tch-opensrc,项目名称:TC72XX_LxG1.0.10mp5_OpenSrc,代码行数:50,
示例9: loadDefaultFxb//==============================================================================MidiOutFilter::MidiOutFilter(){ programs = new JuceProgram[getNumPrograms()]; devices = MidiOutput::getDevices(); midiOutput = 0; loadDefaultFxb(); curProgram=0; init=true; setCurrentProgram (0); samplesToNextClock=0; samplesToNextMTC=0; wasPlaying=false; startAt=-999.0; startMTCAt=-999.0; sendclock=false; sendmtc=false; mtcNumber=0; zeromem (&lastPosInfo, sizeof (lastPosInfo));}
开发者ID:Amcut,项目名称:pizmidi,代码行数:23,
示例10: zeromemvoid DemoJuceFilter::setSyncToHost (bool t){ if (t != isSyncedToHost) { zeromem (&lastPosInfo, sizeof (lastPosInfo)); lastPosInfo.timeSigNumerator = 4; lastPosInfo.timeSigDenominator = 4; lastPosInfo.bpm = 120; sendChangeMessage (this); } if (!t) { syncThread->setBPM (intBpm); syncThread->startThread(); } else { syncThread->signalThreadShouldExit(); } isSyncedToHost = t;}
开发者ID:Knochenschall,项目名称:sklepseq,代码行数:22,
示例11: data/** Process an entire GCM packet in one call. @param key The secret key @param keylen The length of the secret key @param iv The initialization vector @param ivlen The length of the initialization vector @param aad The additional authentication data (header) @param aadlen The length of the aad @param in The plaintext @param inlen The length of the plaintext (ciphertext length is the same) @param out The ciphertext @param tag [out] The MAC tag @param taglen [in/out] The MAC tag length @param direction Encrypt or Decrypt mode (CHCHA20POLY1305_ENCRYPT or CHCHA20POLY1305_DECRYPT) @return CRYPT_OK on success */int chacha20poly1305_memory(const unsigned char *key, unsigned long keylen, const unsigned char *iv, unsigned long ivlen, const unsigned char *aad, unsigned long aadlen, const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned char *tag, unsigned long *taglen, int direction){ chacha20poly1305_state st; int err; LTC_ARGCHK(key != NULL); LTC_ARGCHK(iv != NULL); LTC_ARGCHK(in != NULL); LTC_ARGCHK(out != NULL); LTC_ARGCHK(tag != NULL); if ((err = chacha20poly1305_init(&st, key, keylen)) != CRYPT_OK) { goto LBL_ERR; } if ((err = chacha20poly1305_setiv(&st, iv, ivlen)) != CRYPT_OK) { goto LBL_ERR; } if (aad && aadlen > 0) { if ((err = chacha20poly1305_add_aad(&st, aad, aadlen)) != CRYPT_OK) { goto LBL_ERR; } } if (direction == CHCHA20POLY1305_ENCRYPT) { if ((err = chacha20poly1305_encrypt(&st, in, inlen, out)) != CRYPT_OK) { goto LBL_ERR; } } else if (direction == CHCHA20POLY1305_DECRYPT) { if ((err = chacha20poly1305_decrypt(&st, in, inlen, out)) != CRYPT_OK) { goto LBL_ERR; } } else { err = CRYPT_INVALID_ARG; goto LBL_ERR; } err = chacha20poly1305_done(&st, tag, taglen);LBL_ERR:#ifdef LTC_CLEAN_STACK zeromem(&st, sizeof(chacha20poly1305_state));#endif return err;}
开发者ID:ybendan,项目名称:libtomcrypt,代码行数:55,
示例12: slvoid AudioProcessorPlayer::audioDeviceAboutToStart (AudioIODevice* device){ const ScopedLock sl (lock); sampleRate = device->getCurrentSampleRate(); blockSize = device->getCurrentBufferSizeSamples(); numInputChans = device->getActiveInputChannels().countNumberOfSetBits(); numOutputChans = device->getActiveOutputChannels().countNumberOfSetBits(); messageCollector.reset (sampleRate); zeromem (channels, sizeof (channels)); if (processor != nullptr) { if (isPrepared) processor->releaseResources(); AudioProcessor* const oldProcessor = processor; setProcessor (nullptr); setProcessor (oldProcessor); }}
开发者ID:sonic59,项目名称:JulesText,代码行数:22,
示例13: tspd_init_tsp_ep_state/******************************************************************************* * Given a secure payload entrypoint info pointer, entry point PC, register * width, cpu id & pointer to a context data structure, this function will * initialize tsp context and entry point info for the secure payload ******************************************************************************/void tspd_init_tsp_ep_state(struct entry_point_info *tsp_entry_point, uint32_t rw, uint64_t pc, tsp_context_t *tsp_ctx){ uint32_t ep_attr; /* Passing a NULL context is a critical programming error */ assert(tsp_ctx); assert(tsp_entry_point); assert(pc); /* * We support AArch64 TSP for now. * TODO: Add support for AArch32 TSP */ assert(rw == TSP_AARCH64); /* Associate this context with the cpu specified */ tsp_ctx->mpidr = read_mpidr_el1(); tsp_ctx->state = 0; set_tsp_pstate(tsp_ctx->state, TSP_PSTATE_OFF); clr_yield_smc_active_flag(tsp_ctx->state); cm_set_context(&tsp_ctx->cpu_ctx, SECURE); /* initialise an entrypoint to set up the CPU context */ ep_attr = SECURE | EP_ST_ENABLE; if (read_sctlr_el3() & SCTLR_EE_BIT) ep_attr |= EP_EE_BIG; SET_PARAM_HEAD(tsp_entry_point, PARAM_EP, VERSION_1, ep_attr); tsp_entry_point->pc = pc; tsp_entry_point->spsr = SPSR_64(MODE_EL1, MODE_SP_ELX, DISABLE_ALL_EXCEPTIONS); zeromem(&tsp_entry_point->args, sizeof(tsp_entry_point->args));}
开发者ID:ajs-sun,项目名称:arm-trusted-firmware,代码行数:43,
示例14: key/** Create a DSA shared secret between two keys @param private_key The private DSA key (the exponent) @param base The base of the exponentiation (allows this to be used for both encrypt and decrypt) @param public_key The public key @param out [out] Destination of the shared secret @param outlen [in/out] The max size and resulting size of the shared secret @return CRYPT_OK if successful*/int dsa_shared_secret(void *private_key, void *base, dsa_key *public_key, unsigned char *out, unsigned long *outlen){ unsigned long x; void *res; int err; LTC_ARGCHK(private_key != NULL); LTC_ARGCHK(public_key != NULL); LTC_ARGCHK(out != NULL); LTC_ARGCHK(outlen != NULL); /* make new point */ if ((err = mp_init(&res)) != CRYPT_OK) { return err; } if ((err = mp_exptmod(base, private_key, public_key->p, res)) != CRYPT_OK) { mp_clear(res); return err; } x = (unsigned long)mp_unsigned_bin_size(res); if (*outlen < x) { *outlen = x; err = CRYPT_BUFFER_OVERFLOW; goto done; } zeromem(out, x); if ((err = mp_to_unsigned_bin(res, out + (x - mp_unsigned_bin_size(res)))) != CRYPT_OK) { goto done; } err = CRYPT_OK; *outlen = x;done: mp_clear(res); return err;}
开发者ID:AIdrifter,项目名称:optee_os,代码行数:47,
示例15: key/** Initialize a Pelican state @param pelmac The Pelican state to initialize @param key The secret key @param keylen The length of the secret key (octets) @return CRYPT_OK if successful*/int pelican_init(pelican_state *pelmac, const unsigned char *key, unsigned long keylen){ int err; LTC_ARGCHK(pelmac != NULL); LTC_ARGCHK(key != NULL);#ifdef LTC_FAST if (16 % sizeof(LTC_FAST_TYPE)) { return CRYPT_INVALID_ARG; }#endif if ((err = aes_setup(key, keylen, 0, &pelmac->K)) != CRYPT_OK) { return err; } zeromem(pelmac->state, 16); aes_ecb_encrypt(pelmac->state, pelmac->state, &pelmac->K); pelmac->buflen = 0; return CRYPT_OK;}
开发者ID:DINKIN,项目名称:omim,代码行数:30,
示例16: jassertvoid AudioSampleBuffer::applyGain (const int channel, const int startSample, int numSamples, const float gain) noexcept{ jassert (isPositiveAndBelow (channel, numChannels)); jassert (startSample >= 0 && startSample + numSamples <= size); if (gain != 1.0f) { float* d = channels [channel] + startSample; if (gain == 0.0f) { zeromem (d, sizeof (float) * (size_t) numSamples); } else { while (--numSamples >= 0) *d++ *= gain; } }}
开发者ID:adrien59cadri,项目名称:test,代码行数:23,
示例17: blake2b_initint blake2b_init(hash_state *md, unsigned long outlen, const unsigned char *key, unsigned long keylen){ unsigned char P[BLAKE2B_PARAM_SIZE]; int err; LTC_ARGCHK(md != NULL); if ((!outlen) || (outlen > BLAKE2B_OUTBYTES)) return CRYPT_INVALID_ARG; if ((key && !keylen) || (keylen && !key) || (keylen > BLAKE2B_KEYBYTES)) return CRYPT_INVALID_ARG; XMEMSET(P, 0, sizeof(P)); P[O_DIGEST_LENGTH] = (unsigned char)outlen; P[O_KEY_LENGTH] = (unsigned char)keylen; P[O_FANOUT] = 1; P[O_DEPTH] = 1; err = blake2b_init_param(md, P); if (err != CRYPT_OK) return err; if (key) { unsigned char block[BLAKE2B_BLOCKBYTES]; XMEMSET(block, 0, BLAKE2B_BLOCKBYTES); XMEMCPY(block, key, keylen); blake2b_process(md, block, BLAKE2B_BLOCKBYTES);#ifdef LTC_CLEAN_STACK zeromem(block, sizeof(block));#endif } return CRYPT_OK;}
开发者ID:spurious,项目名称:sagittarius-scheme-mirror,代码行数:37,
示例18: lockvoid AudioDriverCoreAudio::capture_finish() { if (input_unit) { lock(); AURenderCallbackStruct callback; zeromem(&callback, sizeof(AURenderCallbackStruct)); OSStatus result = AudioUnitSetProperty(input_unit, kAudioOutputUnitProperty_SetInputCallback, kAudioUnitScope_Global, 0, &callback, sizeof(callback)); if (result != noErr) { ERR_PRINT("AudioUnitSetProperty failed"); } result = AudioUnitUninitialize(input_unit); if (result != noErr) { ERR_PRINT("AudioUnitUninitialize failed"); }#ifdef OSX_ENABLED AudioObjectPropertyAddress prop; prop.mSelector = kAudioHardwarePropertyDefaultInputDevice; prop.mScope = kAudioObjectPropertyScopeGlobal; prop.mElement = kAudioObjectPropertyElementMaster; result = AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &prop, &input_device_address_cb, this); if (result != noErr) { ERR_PRINT("AudioObjectRemovePropertyListener failed"); }#endif result = AudioComponentInstanceDispose(input_unit); if (result != noErr) { ERR_PRINT("AudioComponentInstanceDispose failed"); } input_unit = NULL; unlock(); }}
开发者ID:Calinou,项目名称:godot,代码行数:37,
示例19: cbc_encrypt/** CBC encrypt @param pt Plaintext @param ct [out] Ciphertext @param cbc CBC state @return CRYPT_OK if successful*/int cbc_encrypt(const unsigned char *pt, unsigned char *ct, symmetric_CBC *cbc){ int x, err; unsigned char tmp[MAXBLOCKSIZE]; LTC_ARGCHK(pt != NULL); LTC_ARGCHK(ct != NULL); LTC_ARGCHK(cbc != NULL); if ((err = cipher_is_valid(cbc->cipher)) != CRYPT_OK) { return err; } /* is blocklen valid? */ if (cbc->blocklen < 0 || cbc->blocklen > (int)sizeof(cbc->IV)) { return CRYPT_INVALID_ARG; } /* xor IV against plaintext */ for (x = 0; x < cbc->blocklen; x++) { tmp[x] = pt[x] ^ cbc->IV[x]; } /* encrypt */ cipher_descriptor[cbc->cipher].ecb_encrypt(tmp, ct, &cbc->key); /* store IV [ciphertext] for a future block */ for (x = 0; x < cbc->blocklen; x++) { cbc->IV[x] = ct[x]; }#ifdef LTC_CLEAN_STACK zeromem(tmp, sizeof(tmp));#endif return CRYPT_OK;}
开发者ID:adulau,项目名称:mosvm,代码行数:43,
示例20: ERR_FAIL_COND_VunzFile ZipArchive::get_file_handle(String p_file) const { ERR_FAIL_COND_V(!file_exists(p_file), NULL); File file = files[p_file]; FileAccess* f = FileAccess::open(packages[file.package].filename, FileAccess::READ); ERR_FAIL_COND_V(!f, NULL); zlib_filefunc_def io; zeromem(&io, sizeof(io)); io.opaque = f; io.zopen_file = godot_open; io.zread_file = godot_read; io.zwrite_file = godot_write; io.ztell_file = godot_tell; io.zseek_file = godot_seek; io.zclose_file = godot_close; io.zerror_file = godot_testerror; io.alloc_mem = godot_alloc; io.free_mem = godot_free; unzFile pkg = unzOpen2(packages[file.package].filename.utf8().get_data(), &io); ERR_FAIL_COND_V(!pkg, NULL); int unz_err = unzGoToFilePos(pkg, &file.file_pos); ERR_FAIL_COND_V(unz_err != UNZ_OK, NULL); if (unzOpenCurrentFile(pkg) != UNZ_OK) { unzClose(pkg); ERR_FAIL_V(NULL); }; return pkg;};
开发者ID:baekdahl,项目名称:godot,代码行数:36,
示例21: yarrow_start/** Start the PRNG @param prng [out] The PRNG state to initialize @return CRYPT_OK if successful*/ int yarrow_start(prng_state *prng){ int err; LTC_ARGCHK(prng != NULL); /* these are the default hash/cipher combo used */#ifdef RIJNDAEL#if YARROW_AES==0 prng->yarrow.cipher = register_cipher(&rijndael_enc_desc);#elif YARROW_AES==1 prng->yarrow.cipher = register_cipher(&aes_enc_desc);#elif YARROW_AES==2 prng->yarrow.cipher = register_cipher(&rijndael_desc);#elif YARROW_AES==3 prng->yarrow.cipher = register_cipher(&aes_desc);#endif#elif defined(BLOWFISH) prng->yarrow.cipher = register_cipher(&blowfish_desc);#elif defined(TWOFISH) prng->yarrow.cipher = register_cipher(&twofish_desc);#elif defined(RC6) prng->yarrow.cipher = register_cipher(&rc6_desc);#elif defined(RC5) prng->yarrow.cipher = register_cipher(&rc5_desc);#elif defined(SAFERP) prng->yarrow.cipher = register_cipher(&saferp_desc);#elif defined(RC2) prng->yarrow.cipher = register_cipher(&rc2_desc);#elif defined(NOEKEON) prng->yarrow.cipher = register_cipher(&noekeon_desc);#elif defined(CAST5) prng->yarrow.cipher = register_cipher(&cast5_desc);#elif defined(XTEA) prng->yarrow.cipher = register_cipher(&xtea_desc);#elif defined(SAFER) prng->yarrow.cipher = register_cipher(&safer_sk128_desc);#elif defined(DES) prng->yarrow.cipher = register_cipher(&des3_desc);#else #error YARROW needs at least one CIPHER#endif if ((err = cipher_is_valid(prng->yarrow.cipher)) != CRYPT_OK) { return err; }#ifdef SHA256 prng->yarrow.hash = register_hash(&sha256_desc);#elif defined(SHA512) prng->yarrow.hash = register_hash(&sha512_desc);#elif defined(TIGER) prng->yarrow.hash = register_hash(&tiger_desc);#elif defined(SHA1) prng->yarrow.hash = register_hash(&sha1_desc);#elif defined(RIPEMD160) prng->yarrow.hash = register_hash(&rmd160_desc);#elif defined(RIPEMD128) prng->yarrow.hash = register_hash(&rmd128_desc);#elif defined(MD5) prng->yarrow.hash = register_hash(&md5_desc);#elif defined(MD4) prng->yarrow.hash = register_hash(&md4_desc);#elif defined(MD2) prng->yarrow.hash = register_hash(&md2_desc);#elif defined(WHIRLPOOL) prng->yarrow.hash = register_hash(&whirlpool_desc);#else #error YARROW needs at least one HASH#endif if ((err = hash_is_valid(prng->yarrow.hash)) != CRYPT_OK) { return err; } /* zero the memory used */ zeromem(prng->yarrow.pool, sizeof(prng->yarrow.pool)); return CRYPT_OK;}
开发者ID:FelipeFernandes1988,项目名称:Alice-1121-Modem,代码行数:83,
示例22: signature/** Sign a hash with DSA @param in The hash to sign @param inlen The length of the hash to sign @param r The "r" integer of the signature (caller must initialize with mp_init() first) @param s The "s" integer of the signature (caller must initialize with mp_init() first) @param prng An active PRNG state @param wprng The index of the PRNG desired @param key A private DSA key @return CRYPT_OK if successful*/int dsa_sign_hash_raw(const unsigned char *in, unsigned long inlen, void *r, void *s, prng_state *prng, int wprng, dsa_key *key){ void *k, *kinv, *tmp; unsigned char *buf; int err; LTC_ARGCHK(in != NULL); LTC_ARGCHK(r != NULL); LTC_ARGCHK(s != NULL); LTC_ARGCHK(key != NULL); if ((err = prng_is_valid(wprng)) != CRYPT_OK) { return err; } if (key->type != PK_PRIVATE) { return CRYPT_PK_NOT_PRIVATE; } /* check group order size */ if (key->qord >= MDSA_MAX_GROUP) { return CRYPT_INVALID_ARG; } buf = XMALLOC(MDSA_MAX_GROUP); if (buf == NULL) { return CRYPT_MEM; } /* Init our temps */ if ((err = mp_init_multi(&k, &kinv, &tmp, NULL)) != CRYPT_OK) { goto ERRBUF; }retry: do { /* gen random k */ if (prng_descriptor[wprng].read(buf, key->qord, prng) != (unsigned long)key->qord) { err = CRYPT_ERROR_READPRNG; goto error; } /* read k */ if ((err = mp_read_unsigned_bin(k, buf, key->qord)) != CRYPT_OK) { goto error; } /* k > 1 ? */ if (mp_cmp_d(k, 1) != LTC_MP_GT) { goto retry; } /* test gcd */ if ((err = mp_gcd(k, key->q, tmp)) != CRYPT_OK) { goto error; } } while (mp_cmp_d(tmp, 1) != LTC_MP_EQ); /* now find 1/k mod q */ if ((err = mp_invmod(k, key->q, kinv)) != CRYPT_OK) { goto error; } /* now find r = g^k mod p mod q */ if ((err = mp_exptmod(key->g, k, key->p, r)) != CRYPT_OK) { goto error; } if ((err = mp_mod(r, key->q, r)) != CRYPT_OK) { goto error; } if (mp_iszero(r) == LTC_MP_YES) { goto retry; } /* now find s = (in + xr)/k mod q */ if ((err = mp_read_unsigned_bin(tmp, (unsigned char *)in, inlen)) != CRYPT_OK) { goto error; } if ((err = mp_mul(key->x, r, s)) != CRYPT_OK) { goto error; } if ((err = mp_add(s, tmp, s)) != CRYPT_OK) { goto error; } if ((err = mp_mulmod(s, kinv, key->q, s)) != CRYPT_OK) { goto error; } if (mp_iszero(s) == LTC_MP_YES) { goto retry; } err = CRYPT_OK;error: mp_clear_multi(k, kinv, tmp, NULL);ERRBUF:#ifdef LTC_CLEAN_STACK zeromem(buf, MDSA_MAX_GROUP);#endif XFREE(buf); return err;}
开发者ID:goofwear,项目名称:stepmania,代码行数:90,
示例23: encrypt/** Encrypt a symmetric key with ECC @param in The symmetric key you want to encrypt @param inlen The length of the key to encrypt (octets) @param out [out] The destination for the ciphertext @param outlen [in/out] The max size and resulting size of the ciphertext @param prng An active PRNG state @param wprng The index of the PRNG you wish to use @param hash The index of the hash you want to use @param key The ECC key you want to encrypt to @return CRYPT_OK if successful*/int ecc_encrypt_key(const unsigned char *in, unsigned long inlen, unsigned char *out, unsigned long *outlen, prng_state *prng, int wprng, int hash, ecc_key *key){ unsigned char *pub_expt, *ecc_shared, *skey; ecc_key pubkey; unsigned long x, y, pubkeysize; int err; LTC_ARGCHK(in != NULL); LTC_ARGCHK(out != NULL); LTC_ARGCHK(outlen != NULL); LTC_ARGCHK(key != NULL); /* check that wprng/cipher/hash are not invalid */ if ((err = prng_is_valid(wprng)) != CRYPT_OK) { return err; } if ((err = hash_is_valid(hash)) != CRYPT_OK) { return err; } if (inlen > hash_descriptor[hash].hashsize) { return CRYPT_INVALID_HASH; } /* make a random key and export the public copy */ if ((err = ecc_make_key_ex(prng, wprng, &pubkey, key->dp)) != CRYPT_OK) { return err; } pub_expt = XMALLOC(ECC_BUF_SIZE); ecc_shared = XMALLOC(ECC_BUF_SIZE); skey = XMALLOC(MAXBLOCKSIZE); if (pub_expt == NULL || ecc_shared == NULL || skey == NULL) { if (pub_expt != NULL) { XFREE(pub_expt); } if (ecc_shared != NULL) { XFREE(ecc_shared); } if (skey != NULL) { XFREE(skey); } ecc_free(&pubkey); return CRYPT_MEM; } pubkeysize = ECC_BUF_SIZE; if ((err = ecc_export(pub_expt, &pubkeysize, PK_PUBLIC, &pubkey)) != CRYPT_OK) { ecc_free(&pubkey); goto LBL_ERR; } /* make random key */ x = ECC_BUF_SIZE; if ((err = ecc_shared_secret(&pubkey, key, ecc_shared, &x)) != CRYPT_OK) { ecc_free(&pubkey); goto LBL_ERR; } ecc_free(&pubkey); y = MAXBLOCKSIZE; if ((err = hash_memory(hash, ecc_shared, x, skey, &y)) != CRYPT_OK) { goto LBL_ERR; } /* Encrypt key */ for (x = 0; x < inlen; x++) { skey[x] ^= in[x]; } err = der_encode_sequence_multi(out, outlen, LTC_ASN1_OBJECT_IDENTIFIER, hash_descriptor[hash].OIDlen, hash_descriptor[hash].OID, LTC_ASN1_OCTET_STRING, pubkeysize, pub_expt, LTC_ASN1_OCTET_STRING, inlen, skey, LTC_ASN1_EOL, 0UL, NULL);LBL_ERR:#ifdef LTC_CLEAN_STACK /* clean up */ zeromem(pub_expt, ECC_BUF_SIZE); zeromem(ecc_shared, ECC_BUF_SIZE); zeromem(skey, MAXBLOCKSIZE);#endif XFREE(skey);//.........这里部分代码省略.........
开发者ID:mooinglemur,项目名称:openitg,代码行数:101,
示例24: zeromemIIRCoefficients::IIRCoefficients() noexcept{ zeromem (coefficients, sizeof (coefficients));}
开发者ID:COx2,项目名称:JUCE_JAPAN_DEMO,代码行数:4,
示例25: arm_execution_state_switch//.........这里部分代码省略......... } /* Make sure PC is 4-byte aligned, except for Thumb */ if ((pc & 0x3) && !thumb) goto invalid_param; /* * EL3 controls register width of the immediate lower EL only. Expect * this request from EL2/Hyp unless: * * - EL2 is not implemented; * - EL2 is implemented, but was disabled. This can be inferred from * SCR_EL3.HCE. */ from_el2 = caller_64 ? (GET_EL(spsr) == MODE_EL2) : (GET_M32(spsr) == MODE32_hyp); scr = read_ctx_reg(el3_ctx, CTX_SCR_EL3); if (!from_el2) { /* The call is from NS privilege level other than HYP */ /* * Disallow switching state if there's a Hypervisor in place; * this request must be taken up with the Hypervisor instead. */ if (scr & SCR_HCE_BIT) goto exec_denied; } /* * Return to the caller using the same endianness. Extract * endianness bit from the respective system control register * directly. */ sctlr = from_el2 ? read_sctlr_el2() : read_sctlr_el1(); endianness = !!(sctlr & SCTLR_EE_BIT); /* Construct SPSR for the exception state we're about to switch to */ if (caller_64) { int impl; /* * Switching from AArch64 to AArch32. Ensure this CPU implements * the target EL in AArch32. */ impl = from_el2 ? EL_IMPLEMENTED(2) : EL_IMPLEMENTED(1); if (impl != EL_IMPL_A64_A32) goto exec_denied; /* Return to the equivalent AArch32 privilege level */ el = from_el2 ? MODE32_hyp : MODE32_svc; spsr = SPSR_MODE32(el, thumb ? SPSR_T_THUMB : SPSR_T_ARM, endianness, DISABLE_ALL_EXCEPTIONS); } else { /* * Switching from AArch32 to AArch64. Since it's not possible to * implement an EL as AArch32-only (from which this call was * raised), it's safe to assume AArch64 is also implemented. */ el = from_el2 ? MODE_EL2 : MODE_EL1; spsr = SPSR_64(el, MODE_SP_ELX, DISABLE_ALL_EXCEPTIONS); } /* * Use the context management library to re-initialize the existing * context with the execution state flipped. Since the library takes * entry_point_info_t pointer as the argument, construct a dummy one * with PC, state width, endianness, security etc. appropriately set. * Other entries in the entry point structure are irrelevant for * purpose. */ zeromem(&ep, sizeof(ep)); ep.pc = pc; ep.spsr = spsr; SET_PARAM_HEAD(&ep, PARAM_EP, VERSION_1, ((endianness ? EP_EE_BIG : EP_EE_LITTLE) | NON_SECURE | EP_ST_DISABLE)); /* * Re-initialize the system register context, and exit EL3 as if for the * first time. State switch is effectively a soft reset of the * calling EL. */ cm_init_my_context(&ep); cm_prepare_el3_exit(NON_SECURE); /* * State switch success. The caller of SMC wouldn't see the SMC * returning. Instead, execution starts at the supplied entry point, * with context pointers populated in registers 0 and 1. */ SMC_RET2(handle, cookie_hi, cookie_lo);invalid_param: SMC_RET1(handle, STATE_SW_E_PARAM);exec_denied:#endif /* State switch denied */ SMC_RET1(handle, STATE_SW_E_DENIED);}
开发者ID:Summer-ARM,项目名称:arm-trusted-firmware,代码行数:101,
示例26: EXP_NAMEHANDLE WINAPI EXP_NAME(OpenPlugin)(int OpenFrom, INT_PTR Item){ struct FarMenuItem aMenuItems[7]; int nItems; (void)OpenFrom; (void)Item; bThisUseSelection=bUseSelection; bThisAutoNext=bAutoNext; bStopOnFound=FALSE; zeromem(aMenuItems, sizeof(aMenuItems));#if defined(WINPORT_DIRECT) aMenuItems[0].Text = GetMsg(MSearchForward); aMenuItems[1].Text = GetMsg(MSearchBackward);#else _tstrcpy(aMenuItems[0].Text, GetMsg(MSearchForward)); _tstrcpy(aMenuItems[1].Text, GetMsg(MSearchBackward));#endif aMenuItems[2].Separator=TRUE; if( OpenFrom==OPEN_EDITOR ) {#if defined(WINPORT_DIRECT) aMenuItems[3].Text = GetMsg(MFindNext); aMenuItems[4].Text = GetMsg(MFindPrevious);#else _tstrcpy(aMenuItems[3].Text, GetMsg(MFindNext)); _tstrcpy(aMenuItems[4].Text, GetMsg(MFindPrevious));#endif aMenuItems[5].Separator=TRUE; nItems=sizeof(aMenuItems)/sizeof(aMenuItems[0]); }else{ nItems=4; }#if defined(WINPORT_DIRECT) aMenuItems[nItems-1].Text = GetMsg(MSetup);#else _tstrcpy(aMenuItems[nItems-1].Text, GetMsg(MSetup));#endif aMenuItems[bReverse?1:0].Selected=TRUE;Menu: switch( apiMenu(ModuleNumber,-1,-1,0,FMENU_WRAPMODE,GetMsg(MIncSearch),NULL,(TCHAR*)sHlfMenu,NULL,NULL,aMenuItems,nItems) ){ case 0: bReverse=FALSE; break; case 1: bReverse=TRUE; break; case 3: if( OpenFrom==OPEN_EDITOR ) { bReverse=FALSE; goto Auto; case 4: bReverse=TRUE;Auto: bThisUseSelection=TRUE; bThisAutoNext=TRUE; bStopOnFound=TRUE; break; } case 6: EXP_NAME(Configure)(0); goto Menu; default: return INVALID_HANDLE_VALUE; } if( OpenFrom==OPEN_EDITOR ) SearchLoopEditor();#ifdef VIEWVER_SUPPORT else SearchLoopViewer();#endif return INVALID_HANDLE_VALUE;}
开发者ID:elfmz,项目名称:far2l,代码行数:65,
示例27: jassertbool AudioFormatReader::read (int* const* destSamples, int numDestChannels, int64 startSampleInSource, int numSamplesToRead, const bool fillLeftoverChannelsWithCopies){ jassert (numDestChannels > 0); // you have to actually give this some channels to work with! int startOffsetInDestBuffer = 0; if (startSampleInSource < 0) { const int silence = (int) jmin (-startSampleInSource, (int64) numSamplesToRead); for (int i = numDestChannels; --i >= 0;) if (destSamples[i] != nullptr) zeromem (destSamples[i], sizeof (int) * (size_t) silence); startOffsetInDestBuffer += silence; numSamplesToRead -= silence; startSampleInSource = 0; } if (numSamplesToRead <= 0) return true; if (! readSamples (const_cast <int**> (destSamples), jmin ((int) numChannels, numDestChannels), startOffsetInDestBuffer, startSampleInSource, numSamplesToRead)) return false; if (numDestChannels > (int) numChannels) { if (fillLeftoverChannelsWithCopies) { int* lastFullChannel = destSamples[0]; for (int i = (int) numChannels; --i > 0;) { if (destSamples[i] != nullptr) { lastFullChannel = destSamples[i]; break; } } if (lastFullChannel != nullptr) for (int i = (int) numChannels; i < numDestChannels; ++i) if (destSamples[i] != nullptr) memcpy (destSamples[i], lastFullChannel, sizeof (int) * (size_t) numSamplesToRead); } else { for (int i = (int) numChannels; i < numDestChannels; ++i) if (destSamples[i] != nullptr) zeromem (destSamples[i], sizeof (int) * (size_t) numSamplesToRead); } } return true;}
开发者ID:KimKomJohn,项目名称:JUCE,代码行数:61,
示例28: f8_encryptint f8_encrypt(const unsigned char *pt, unsigned char *ct, unsigned long len, symmetric_F8 *f8){ int err, x; unsigned char buf[MAXBLOCKSIZE]; LTC_ARGCHK(pt != NULL); LTC_ARGCHK(ct != NULL); LTC_ARGCHK(f8 != NULL); if ((err = cipher_is_valid(f8->cipher)) != CRYPT_OK) { return err; } /* is blocklen/padlen valid? */ if (f8->blocklen < 0 || f8->blocklen > (int)sizeof(f8->IV) || f8->padlen < 0 || f8->padlen > (int)sizeof(f8->IV)) { return CRYPT_INVALID_ARG; } zeromem(buf, sizeof(buf)); /* make sure the pad is empty */ if (f8->padlen == f8->blocklen) { /* xor of IV, MIV and blockcnt == what goes into cipher */ STORE32H(f8->blockcnt, (buf+(f8->blocklen-4))); ++(f8->blockcnt); for (x = 0; x < f8->blocklen; x++) { f8->IV[x] ^= f8->MIV[x] ^ buf[x]; } if ((err = cipher_descriptor[f8->cipher].ecb_encrypt(f8->IV, f8->IV, &f8->key)) != CRYPT_OK) { return err; } f8->padlen = 0; }#ifdef LTC_FAST if (f8->padlen == 0) { while (len >= (unsigned long)f8->blocklen) { STORE32H(f8->blockcnt, (buf+(f8->blocklen-4))); ++(f8->blockcnt); for (x = 0; x < f8->blocklen; x += sizeof(LTC_FAST_TYPE)) { *((LTC_FAST_TYPE*)(&ct[x])) = *((LTC_FAST_TYPE*)(&pt[x])) ^ *((LTC_FAST_TYPE*)(&f8->IV[x])); *((LTC_FAST_TYPE*)(&f8->IV[x])) ^= *((LTC_FAST_TYPE*)(&f8->MIV[x])) ^ *((LTC_FAST_TYPE*)(&buf[x])); } if ((err = cipher_descriptor[f8->cipher].ecb_encrypt(f8->IV, f8->IV, &f8->key)) != CRYPT_OK) { return err; } len -= x; pt += x; ct += x; } }#endif while (len > 0) { if (f8->padlen == f8->blocklen) { /* xor of IV, MIV and blockcnt == what goes into cipher */ STORE32H(f8->blockcnt, (buf+(f8->blocklen-4))); ++(f8->blockcnt); for (x = 0; x < f8->blocklen; x++) { f8->IV[x] ^= f8->MIV[x] ^ buf[x]; } if ((err = cipher_descriptor[f8->cipher].ecb_encrypt(f8->IV, f8->IV, &f8->key)) != CRYPT_OK) { return err; } f8->padlen = 0; } *ct++ = *pt++ ^ f8->IV[f8->padlen++]; --len; } return CRYPT_OK;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:70,
示例29: rand_primeint rand_prime(void *N, long len, prng_state *prng, int wprng){ int err, res, type; unsigned char *buf; LTC_ARGCHK(N != NULL); /* get type */ if (len < 0) { type = USE_BBS; len = -len; } else { type = 0; } /* allow sizes between 2 and 512 bytes for a prime size */ if (len < 2 || len > 512) { return CRYPT_INVALID_PRIME_SIZE; } /* valid PRNG? Better be! */ if ((err = prng_is_valid(wprng)) != CRYPT_OK) { return err; } /* allocate buffer to work with */ buf = XCALLOC(1, len); if (buf == NULL) { return CRYPT_MEM; } do { /* generate value */ if (prng_descriptor[wprng].read(buf, len, prng) != (unsigned long)len) { XFREE(buf); return CRYPT_ERROR_READPRNG; } /* munge bits */ buf[0] |= 0x80 | 0x40; buf[len-1] |= 0x01 | ((type & USE_BBS) ? 0x02 : 0x00); /* load value */ if ((err = mp_read_unsigned_bin(N, buf, len)) != CRYPT_OK) { XFREE(buf); return err; } /* test */ if ((err = mp_prime_is_prime(N, 8, &res)) != CRYPT_OK) { XFREE(buf); return err; } } while (res == LTC_MP_NO);#ifdef LTC_CLEAN_STACK zeromem(buf, len);#endif XFREE(buf); return CRYPT_OK;}
开发者ID:Fiver,项目名称:Launcher,代码行数:62,
注:本文中的zeromem函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ zerostruct函数代码示例 C++ zero_v3函数代码示例 |