Example #1
0
int setup_hashing_algorithms(state *s)
{
    if (NULL == s)
        return TRUE;

    /* The DEFAULT_ENABLE variables are in main.h */

    if (add_algorithm(s,
                      alg_md5,
                      "md5",
                      32,
                      hash_init_md5,
                      hash_update_md5,
                      hash_final_md5,
                      DEFAULT_ENABLE_MD5))
        return TRUE;
    if (add_algorithm(s,
                      alg_sha1,
                      "sha1",
                      40,
                      hash_init_sha1,
                      hash_update_sha1,
                      hash_final_sha1,
                      DEFAULT_ENABLE_SHA1))
        return TRUE;
    if (add_algorithm(s,
                      alg_sha256,
                      "sha256",
                      64,
                      hash_init_sha256,
                      hash_update_sha256,
                      hash_final_sha256,
                      DEFAULT_ENABLE_SHA256))
        return TRUE;
    if (add_algorithm(s,
                      alg_tiger,
                      "tiger",
                      48,
                      hash_init_tiger,
                      hash_update_tiger,
                      hash_final_tiger,
                      DEFAULT_ENABLE_TIGER))
        return TRUE;
    if (add_algorithm(s,
                      alg_whirlpool,
                      "whirlpool",
                      128,
                      hash_init_whirlpool,
                      hash_update_whirlpool,
                      hash_final_whirlpool,
                      DEFAULT_ENABLE_WHIRLPOOL))
        return TRUE;

    return FALSE;
}
  bool algorithm_pipeline::from_xml( pugi::xml_node const & xml )
  {
    for (pugi::xml_node algorithm_node = xml.child("algorithm");
          algorithm_node;
          algorithm_node = algorithm_node.next_sibling("algorithm"))
    {
      if (!add_algorithm( algorithm_node ))
      {
        clear();
        return false;
      }
    }

    return true;
  }