コード例 #1
0
ファイル: blake2b-ref.c プロジェクト: dwrensha/libsodium
int
blake2b_pick_best_implementation(void)
{
/* LCOV_EXCL_START */
#if (defined(HAVE_AVX2INTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)) || \
    (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64)))
  if (sodium_runtime_has_avx2()) {
    blake2b_compress = blake2b_compress_avx2;
    return 0;
  }
#endif
#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H) && defined(HAVE_SMMINTRIN_H)) || \
    (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86)))
  if (sodium_runtime_has_sse41()) {
    blake2b_compress = blake2b_compress_sse41;
    return 0;
  }
#endif
#if (defined(HAVE_EMMINTRIN_H) && defined(HAVE_TMMINTRIN_H)) || \
    (defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64)))
  if (sodium_runtime_has_ssse3()) {
    blake2b_compress = blake2b_compress_ssse3;
    return 0;
  }
#endif
  blake2b_compress = blake2b_compress_ref;

  return 0;
/* LCOV_EXCL_STOP */
}
コード例 #2
0
ファイル: sodium_core.c プロジェクト: luccasmenezes/libsodium
int
main(void)
{
    sodium_set_misuse_handler(NULL);
    sodium_set_misuse_handler(misuse_handler);
    sodium_set_misuse_handler(NULL);

    assert(sodium_init() == 1);

    (void) sodium_runtime_has_neon();
    (void) sodium_runtime_has_sse2();
    (void) sodium_runtime_has_sse3();
    (void) sodium_runtime_has_ssse3();
    (void) sodium_runtime_has_sse41();
    (void) sodium_runtime_has_pclmul();
    (void) sodium_runtime_has_aesni();

    sodium_set_misuse_handler(misuse_handler);
#ifndef __EMSCRIPTEN__
    sodium_misuse();
    printf("Misuse handler returned\n");
#else
    printf("misuse_handler()\n");
#endif

    return 0;
}