コード例 #1
0
ファイル: lcrypto.c プロジェクト: dtiedy/luaplus51-all
static int hmac_clone(lua_State *L)
{
  HMAC_CTX *c = (HMAC_CTX*)luaL_checkudata(L, 1, LUACRYPTO_HMACNAME);
  HMAC_CTX *d = hmac_pnew(L);
  *d = *c;
  return 1;
}
コード例 #2
0
ファイル: lcrypto.c プロジェクト: Odie/moai-beta
static int hmac_clone(lua_State *L)
{
 HMAC_CTX *c = hmac_pget(L, 1);
 HMAC_CTX *d = hmac_pnew(L);
 *d = *c;
 return 1;
}
コード例 #3
0
ファイル: lcrypto.c プロジェクト: hahnakane/junkcode
static int hmac_clone(lua_State *L)
{
  HANDLER_HMAC *c = hmac_pget(L, 1);
  HANDLER_HMAC *d = hmac_pnew(L);
  
#if CRYPTO_OPENSSL 
  *d = *c;
#elif CRYPTO_GCRYPT
  gcry_md_copy(d, *c);
#endif
  
  return 1;
}
コード例 #4
0
ファイル: lcrypto.c プロジェクト: dtiedy/luaplus51-all
static int hmac_fnew(lua_State *L)
{
  HMAC_CTX *c = hmac_pnew(L);
  const char *s = luaL_checkstring(L, 1);
  const char *k = luaL_checkstring(L, 2);
  const EVP_MD *type = EVP_get_digestbyname(s);

  if (type == NULL)
    return luaL_argerror(L, 1, "invalid digest type");

  HMAC_CTX_init(c);
  HMAC_Init_ex(c, k, (int)lua_strlen(L, 2), type, NULL);

  return 1;
}
コード例 #5
0
ファイル: lcrypto.c プロジェクト: hahnakane/junkcode
static int hmac_fnew(lua_State *L)
{
  HANDLER_HMAC *c = hmac_pnew(L);
  const char *s = luaL_checkstring(L, 1);
  size_t k_len;
  const char *k = luaL_checklstring(L, 2, &k_len);
  DIGEST_TYPE type = DIGEST_BY_NAME(s);
 
  if (IS_DIGEST_INVALID(type)) {
    luaL_argerror(L, 1, "invalid digest type");
    return 0;
  }

#if CRYPTO_OPENSSL
  HMAC_CTX_init(c);
  HMAC_Init_ex(c, k, k_len, type, NULL);
#elif CRYPTO_GCRYPT
  gcry_md_open(c, type, GCRY_MD_FLAG_HMAC);
  gcry_md_setkey(*c, k, k_len);
#endif
  
  return 1;
}