aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/args.c91
-rw-r--r--src/main.c6
-rw-r--r--src/md5/main_md5.c4
-rw-r--r--src/sha256/main_sha256.c4
4 files changed, 98 insertions, 7 deletions
diff --git a/src/args.c b/src/args.c
new file mode 100644
index 0000000..6cfdb3f
--- /dev/null
+++ b/src/args.c
@@ -0,0 +1,91 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* args.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/02/22 09:43:42 by cacharle #+# #+# */
+/* Updated: 2020/02/22 10:44:04 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "ft_ssl.h"
+
+static void st_print_digest_id(t_flags flags, char *id)
+{
+ if (flags & FLAG_STRING)
+ ft_putchar('"');
+ ft_putstr(id);
+ if (flags & FLAG_STRING)
+ ft_putchar('"');
+}
+
+static void st_print_digest(t_digest *digest, t_flags flags, char *name, char *id)
+{
+ int i;
+
+ if (!(flags & FLAG_REVERSE) && !(flags & FLAG_QUIET))
+ {
+ ft_putstr(name);
+ ft_putchar('(');
+ st_print_digest_id(flags, id);
+ ft_putstr(") = ");
+ }
+ i = -1;
+ while (++i < digest->size)
+ ft_putnbr_base(digest->data[i], "0123456789abcdef");
+ if (flags & FLAG_QUIET)
+ return ;
+ ft_putchar(' ');
+ st_print_digest_id(flags, id);
+}
+
+int fl_parse_args(char *name, int argc, char **argv, t_func_hash func_hash)
+{
+ t_flags flags;
+ t_digest digest;
+ char *file;
+
+ flags = 0x0;
+ while (**argv == '-')
+ {
+ (*argv)++;
+ if (**argv == 's')
+ {
+ if ((*argv)[1] == '\0')
+ {
+ func_hash(*(++argv), &digest);
+ argc--;
+ }
+ else
+ func_hash(ft_strdup(*argv + 1), &digest);
+ st_print_digest(&digest, flags, name, "");
+ }
+ else if (**argv == 'p')
+ flags |= FLAG_PIPE;
+ else if (**argv == 'q')
+ flags |= FLAG_QUIET;
+ else if (**argv == 'r')
+ flags |= FLAG_REVERSE;
+ else
+ return (1);
+ if (ft_strchr("pqrs", (*argv)[1]) != NULL)
+ {
+ **argv = '-';
+ continue;
+ }
+ argv++;
+ argc--;
+ }
+ while (argc-- > 0)
+ {
+ if ((file = ft_read_file(*argv)) == NULL)
+ return (1);
+ func_hash(file, &digest);
+ free(file);
+ st_print_digest(&digest, flags, name, *argv);
+ argv++;
+ }
+ return (0);
+}
diff --git a/src/main.c b/src/main.c
index 1d4b928..5bfd97f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,15 +6,15 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/03 20:29:33 by cacharle #+# #+# */
-/* Updated: 2020/02/22 07:22:09 by cacharle ### ########.fr */
+/* Updated: 2020/02/22 08:57:39 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ft_ssl.h"
static t_command g_commands[] = {
- {"md5", main_md5},
- {"sha256", main_sha256}
+ {"md5", fl_main_md5},
+ {"sha256", fl_main_sha256}
};
int fl_dispatch_command(char *command, int argc, char **argv)
diff --git a/src/md5/main_md5.c b/src/md5/main_md5.c
index 703f8ef..02dcaa0 100644
--- a/src/md5/main_md5.c
+++ b/src/md5/main_md5.c
@@ -6,13 +6,13 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 07:20:07 by cacharle #+# #+# */
-/* Updated: 2020/02/22 07:20:15 by cacharle ### ########.fr */
+/* Updated: 2020/02/22 08:57:32 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ft_ssl_md5.h"
-int main_md5(int argc, char **argv)
+int fl_main_md5(int argc, char **argv)
{
return (0);
}
diff --git a/src/sha256/main_sha256.c b/src/sha256/main_sha256.c
index e2b0955..7a83a61 100644
--- a/src/sha256/main_sha256.c
+++ b/src/sha256/main_sha256.c
@@ -6,13 +6,13 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/02/22 07:19:18 by cacharle #+# #+# */
-/* Updated: 2020/02/22 07:19:47 by cacharle ### ########.fr */
+/* Updated: 2020/02/22 08:57:22 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "ft_ssl_sha256.h"
-int main_sha256(int argc, char **argv)
+int fl_main_sha256(int argc, char **argv)
{
return (0);
}