diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-22 10:45:05 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-22 10:45:05 +0100 |
| commit | 3adaa2c31586c3f76cb572f5d407cdb5f06fca93 (patch) | |
| tree | 770741b368c9d248a93915a3719746ffcd64d090 | |
| parent | 4c7350e1c2bd54d11c5b0f63d934c583f013cff5 (diff) | |
| download | ft_ssl-3adaa2c31586c3f76cb572f5d407cdb5f06fca93.tar.gz ft_ssl-3adaa2c31586c3f76cb572f5d407cdb5f06fca93.tar.bz2 ft_ssl-3adaa2c31586c3f76cb572f5d407cdb5f06fca93.zip | |
Added argument parsing base
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | author | 1 | ||||
| -rw-r--r-- | include/ft_ssl.h | 24 | ||||
| -rw-r--r-- | include/ft_ssl_md5.h | 4 | ||||
| -rw-r--r-- | include/ft_ssl_sha256.h | 4 | ||||
| m--------- | libft | 0 | ||||
| -rw-r--r-- | src/args.c | 91 | ||||
| -rw-r--r-- | src/main.c | 6 | ||||
| -rw-r--r-- | src/md5/main_md5.c | 4 | ||||
| -rw-r--r-- | src/sha256/main_sha256.c | 4 |
11 files changed, 133 insertions, 14 deletions
@@ -6,7 +6,7 @@ # By: cacharle <marvin@42.fr> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/02/03 20:14:50 by cacharle #+# #+# # -# Updated: 2020/02/22 07:27:54 by cacharle ### ########.fr # +# Updated: 2020/02/22 10:44:15 by cacharle ### ########.fr # # # # **************************************************************************** # @@ -33,7 +33,7 @@ NAME = ft_ssl all: prebuild libft_all $(NAME) prebuild: - for subdir in $(OBJ_SUBDIR); do mkdir -p $$subdir; done + @for subdir in $(OBJ_SUBDIR); do mkdir -p $$subdir; done $(NAME): $(OBJ) @echo "Linking: $@" @@ -1,3 +1,8 @@ # ft_ssl_md5 ft\_ssl\_md5 project of school 42 + +## Message Digest Commands + +- md5 +- sha256 @@ -0,0 +1 @@ +cacharle diff --git a/include/ft_ssl.h b/include/ft_ssl.h index c5709d6..be9b4da 100644 --- a/include/ft_ssl.h +++ b/include/ft_ssl.h @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/03 20:27:19 by cacharle #+# #+# */ -/* Updated: 2020/02/22 07:20:34 by cacharle ### ########.fr */ +/* Updated: 2020/02/22 10:10:30 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,10 +25,32 @@ typedef struct t_func_main entry; } t_command; +enum +{ + FLAG_PIPE = 1 << 0, + FLAG_QUIET = 1 << 1, + FLAG_REVERSE = 1 << 2, + FLAG_STRING = 1 << 3 +}; +typedef unsigned char t_flags; + +typedef struct +{ + unsigned char *data; + int size; +} t_digest; +typedef void (*t_func_hash)(char *message, t_digest *digest); + /* ** error.c */ void fl_error_command(char *command); +/* +** args.c +*/ + +int fl_parse_args(char *name, int argc, char **argv, t_func_hash func_hash); + #endif diff --git a/include/ft_ssl_md5.h b/include/ft_ssl_md5.h index cc0f498..b012533 100644 --- a/include/ft_ssl_md5.h +++ b/include/ft_ssl_md5.h @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/22 07:14:45 by cacharle #+# #+# */ -/* Updated: 2020/02/22 07:18:24 by cacharle ### ########.fr */ +/* Updated: 2020/02/22 08:57:06 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,6 @@ ** main_md5.c */ -int main_md5(int argc, char **argv); +int fl_main_md5(int argc, char **argv); #endif diff --git a/include/ft_ssl_sha256.h b/include/ft_ssl_sha256.h index 7bb05ff..9427f88 100644 --- a/include/ft_ssl_sha256.h +++ b/include/ft_ssl_sha256.h @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/22 07:18:42 by cacharle #+# #+# */ -/* Updated: 2020/02/22 07:18:57 by cacharle ### ########.fr */ +/* Updated: 2020/02/22 08:57:14 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,6 @@ ** main_sha256.c */ -int main_sha256(int argc, char **argv); +int fl_main_sha256(int argc, char **argv); #endif diff --git a/libft b/libft -Subproject ac0559db82bfef3b7ca3d976b1d7700ed2c1c1f +Subproject ca68aa1e6fca81213d19431439ad0b31863fe10 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); +} @@ -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); } |
