diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-08-02 12:00:43 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-08-02 12:00:43 +0200 |
| commit | 820d554d5fd75cf5d2ec8e2a10403972c78d55ba (patch) | |
| tree | d1c87ab5660cba85f9efabd8b41517c336aba568 /src/main.c | |
| parent | cbd3905f01dcc1e884d778be9437012b93fe317a (diff) | |
| download | ft_ssl-820d554d5fd75cf5d2ec8e2a10403972c78d55ba.tar.gz ft_ssl-820d554d5fd75cf5d2ec8e2a10403972c78d55ba.tar.bz2 ft_ssl-820d554d5fd75cf5d2ec8e2a10403972c78d55ba.zip | |
Added argument parsing (file/stdin digest)
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 83 |
1 files changed, 37 insertions, 46 deletions
@@ -6,59 +6,50 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/03 20:29:33 by cacharle #+# #+# */ -/* Updated: 2020/08/01 19:11:50 by charles ### ########.fr */ +/* Updated: 2020/08/02 11:26:50 by charles ### ########.fr */ /* */ /* ************************************************************************** */ #include "ft_ssl.h" -/* static t_command g_commands[] = { */ -/* {"md5", main_md5}, */ -/* {"sha256", main_sha256} */ -/* }; */ +static uint32_t g_md5_state[4] = {MD5_A_INIT, MD5_B_INIT, MD5_C_INIT, MD5_D_INIT}; -/* int dispatch_command(char *command, int argc, char **argv) */ -/* { */ -/* size_t i; */ -/* */ -/* i = 0; */ -/* while (i < sizeof(g_commands) / sizeof(t_command)) */ -/* { */ -/* if (ft_strcmp(g_commands[i].name, command) == 0) */ -/* return (g_commands[i].entry(argc, argv)); */ -/* i++; */ -/* } */ -/* error_command(command); */ -/* return (1); */ -/* } */ +/* static uint32_t g_sha1_state[5] = {0}; */ -int main(int argc, char **argv) -{ - - /* if (argc == 1) */ - /* { */ - /* ft_putstr("usage: "); */ - /* ft_putstr(argv[0]); */ - /* ft_putendl_fd(" command [command opts] [command args]", STDERR_FILENO); */ - /* return (1); */ - /* } */ - /* return (dispatch_command(argv[1], argc - 2, argv + 2)); */ - (void)argc; - t_message_digest_param param; - param.compression_func = md5_compression_func; - param.compression_state = malloc(4 * sizeof(uint32_t)); - param.compression_state_size = 4 * sizeof(uint32_t); - param.chunk_size = 64; - param.message = argv[1]; - param.size = ft_strlen(argv[1]); - - ((uint32_t*)param.compression_state)[0] = MD5_A_INIT; - ((uint32_t*)param.compression_state)[1] = MD5_B_INIT; - ((uint32_t*)param.compression_state)[2] = MD5_C_INIT; - ((uint32_t*)param.compression_state)[3] = MD5_D_INIT; +t_compression_entry g_compression_table[] = { + {"md5", {md5_compression_func, g_md5_state, sizeof(g_md5_state), 64}}, + /* {"sha1", {sha1_compression_func, g_sha1_state, sizeof(g_sha1_state), 64}} */ +}; - printf("%s\n", message_digest(¶m)); +t_message_digest_param *dispatch_command(char *command) +{ + size_t i; + + i = 0; + while (i < sizeof(g_compression_table) / sizeof(t_compression_entry)) + { + if (ft_strcmp(g_compression_table[i].name, command) == 0) + return (&g_compression_table[i].param); + i++; + } + error_command(command); + return (NULL); +} - /* printf("%s\n", message_digest_md5((uint8_t*)argv[1], ft_strlen(argv[1]))); */ - return 0; +int main(int argc, char **argv) +{ + if (argc == 1) + { + ft_putstr("usage: "); + ft_putstr(argv[0]); + ft_putendl_fd(" command [command opts] [command args]", STDERR_FILENO); + return (1); + } + t_message_digest_param *md_param = dispatch_command(argv[1]); + if (md_param == NULL) + return 1; + return (parse_args(argc - 2, argv + 2, argv[1], md_param)); + + /* printf("%s\n", message_digest(md_param, (uint8_t*)argv[2], ft_strlen(argv[2]))); */ + /* return 0; */ } |
