Evaluation Sheet - k-off/ft_ssl_md5 GitHub Wiki

Preliminaries

Preliminary checks

First, check the following:

  • There are files in the git repository
  • There is a valid author file
  • The Makefile is present and contains the requested rules
  • The project is Norm, the Norminette being authoritative
  • No cheating (no forbidden functions)
  • Project compiles

If one of the answers is negative, evaluation stops here. You are encouraged to continue debating the project, but the scale is not applied.

Yes No

Mandatory part

Does FT_SSL handle commands correctly?

  • Does ft_ssl handle invalid commands?
  • Does it output an appropriate error message?
  • Does ft_ssl show usage if no arguments provided OR does it read the command from standard input (interactive mode)?

Yes No

Is there a function dispatcher?

Check the code for this one. How the appropriate command is selected?

  • If .. else statements - 0 points
  • array of function pointers - up to 5 points. Reduce one point for each place in code where changes have to be made to add a new function. If less than three places found award 5 points.

Rate it from 0 (failed) through 5 (excellent)

Test MD5

Run the following script:

echo 'is md5("salt") a salted hash? :thonking_face:' > /tmp/file
./ft_ssl md5 /tmp/file
md5 /tmp/file
openssl md5 /tmp/file

Output of ft_ssl should match openssl or standalone md5

Yes No

Test -q option

The following command should have no output: diff<(md5 -q /tmp/file)<(./ft_ssl md5 -q /tmp/file)

Yes No

Test -r option

Output should be identical (except spacing) for:

md5 -r /tmp/file
./ft_ssl md5 -r /tmp/file

Yes No

Test -p option

Both commands should print back the input:

echo "Magic mirror on the wall, think I wanna smash the all?" | md5 -p
echo "Speed up now, Gas Pedal??" | ./ft_ssl md5 -p

Rate it from 0 (failed) through 5 (excellent)

Test SHA256

shasum -a 256 /tmp/file > sha_output
./ft_ssl sha256 /tmp/file > ftsha_output
diff sha_output ftsha_output

Yes No

Test all the flags

Rate it from 0 (failed) through 5 (excellent)

Bonus part

Does it support interactive mode (ask for user input if no command was provided)?

Example:

./ft_ssl
> md5
> /tmp/file
checksum here

Yes No

Other hashing functions

  • sha1 family worth 2 points
  • sha2 family worth 2 points
  • whirlpool worth 5 points

Rate it from 0 (failed) through 5 (excellent)

Are they Memer? Does the evaluated look like a someone who memes?

Yes No

Finish correction