aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-08-02 12:00:43 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-08-02 12:00:43 +0200
commit820d554d5fd75cf5d2ec8e2a10403972c78d55ba (patch)
treed1c87ab5660cba85f9efabd8b41517c336aba568 /src/main.c
parentcbd3905f01dcc1e884d778be9437012b93fe317a (diff)
downloadft_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.c83
1 files changed, 37 insertions, 46 deletions
diff --git a/src/main.c b/src/main.c
index b8c1b1f..f5898ad 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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(&param));
+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; */
}