Write a C program that reads in a CSV file

Assignment Help C/C++ Programming
Reference no: EM131992055

Computer Systems Assignment

Project Overview - The aim of this project is to increase your awareness and familiarity with TLS Certificate checking. Whilst many applications will perform the certificate checking for you, it is important to understand the underlying process in order to be able to evaluate security. Your task is to write a program that validates TLS certificate files.

Your program must be written in C. Submissions that do not compile and run on a NeCTAR instance may receive zero marks. You must write your own certificate validation code using the OpenSSL library.

Project Details -

Your task is to write a C program that reads in a CSV (comma separated value) file that contains two columns. The first column provides the file path for the certificate to test. The second column provides the URL from which that certificate belongs. Your program must step through each line in the CSV file, load the certificate specified in column one, and validate it, including checking the URL contained in column two.

The output of your program should be another CSV file, called output.csv. It must contain one line per certificate checked, in the same order as the input CSV file. Each line should contain three columns, the two columns from the input file, and a third column containing either the value 1 if the certificate is valid, or 0 if the certificate is invalid.

The minimum checking you are expected to do is as follows:

1. validation of dates, both the Not Before and Not After dates

2. domain name validation (including Subject Alternative Name (SAN) extension) and wildcards

3. minimum key length of 2048 bits for RSA

4. correct key usage, including extensions

Your program must compile to an executable called certcheck and must take one command line argument, which is the relative path to the input CSV file. For example, the following should run your program and check the certificates listed in mytestfile.csv ./certcheck mytestfile.csv

You can assume that there are no restrictions on Subject Alternative Name's beyond the specification, and in particular that wildcard domains are allowed in both the Common Name and the SAN. Your checking code should handle such wildcards correctly. You can assume that all certificates will use RSA keys.

Assessment -

Code that does not compile and run on a NeCTAR instance will be awarded zero marks. Your submission will be tested and marked with the following criteria:

Part A Compiles from Git

  • Code successfully added to your git repository on
  • Make file included (and it works)
  • Clarity and quality of code - appropriate comments and documentation where necessary
  • Code correctly implements command line interface

Part B Basic Certificate Checking

  • Reads input CSV and write output CSV
  • Correctly validates Not Before date
  • Correctly validates Not After date
  • Correctly validates domain name in Common Name

Part C Advanced Certificate Checking

Correctly validates minimum RSA key length of 2048 bits

Correctly validates key usage and constraints

  • BasicConstraints includes "CA:FALSE"
  • Enhanced Key Usage includes "TLS Web Server Authentication"

Correctly validates Subject Alternative Name extension

Attachment:- Assignment Files.rar

Verified Expert

This study creates CSV file that contains two column. The first column has the file path and the second column provides URL of the certificate. The program validates and forms a new CSV file which has Value 1 or Value 0 as result in the third column. The designed has been developed to compare URL and certificate file.

Reference no: EM131992055

Questions Cloud

What is the present worth in year-one dollars of savings : what is the present worth in Year-1 dollars of the savings over the next 5 years? The interest rate is 10%.
Consider that the critical value : For each of the claims below mention what type of test should be used (one-tail, two-tail) and set up the null and alternate hypothesis.
Two-sided confidence interval : What are the lower-limit and the upper-limit of the 90% two-sided confidence interval?
We have observations on random variables y : We have observations on random variables y, x and z, and we are interested in the relation between x and y only. For the results to be reliable
Write a C program that reads in a CSV file : COMP30023: Computer Systems Assignment. Your task is to write a C program that reads in a CSV (comma separated value) file that contains two columns
State the problem and show all calculations : Make up your own problem that can be solved with the equation P(A or B) = P(A) + P(B) - P(A and B). State the problem and show all calculations.
Discuss the concept of a progressive tax system : Does the concept of a progressive (and fair) tax system become undermined by the ability to tweak the Tax Code to suit Congress' purposes in terms of driving.
Write function in scheme which accepts two arguments : Write function in Scheme which accepts two arguments, x and a in this example. The function will calculate the following mathematical formula
Serious issue in the electronics industry : Electrostatic discharge can be a very serious issue in the electronics industry. Place yourself in the position of managing a work area where ESD-sensitive

Reviews

len1992055

5/22/2018 5:23:47 AM

Subject: Computer Science – Valides TLS Certificates. Submission details - Please include your name and login id in a comment at the top of each file. Our plan is to directly harvest your submissions on the due date from your provided GitLab git account. You must create a repository called comp30023-2018-project-2 in your GitLab account and push your submission to it. You must submit program file(s), including a Make file. Make sure that your Make file, header files and source files are added/committed and pushed to your GitLab repository.

len1992055

5/22/2018 5:23:41 AM

Do not add/commit object files or executables. Anything you want to mention about your submission, write a text file called README. If you do not use your Git repository for the project you will NOT have a submission and will be awarded zero marks. It should be possible to \checkout" the Git repository, then type make clean and then make to produce the executable certcheck. Late submissions will incur a deduction of 2 marks per day (or part thereof).

Write a Review

C/C++ Programming Questions & Answers

  Create program that uses functions and reference parameters

Create program that uses functions and reference parameters, and asks user for the outside temperature.

  Write a program using vectors and iterators

Write a program using vectors and iterators that allows a user to maintain a personal list of DVD titles

  Write the code required to analyse and display the data

Calculate and store the average for each row and column. Determine and store the values for the Average Map.

  Write a webservices application

Write a webservices application that does a simple four function calculator

  Iimplement a client-server of the game

Iimplement a client-server version of the rock-paper-scissors-lizard-Spock game.

  Model-view-controller

Explain Model-View-Controller paradigm

  Design a nested program

How many levels of nesting are there in this design?

  Convert celsius temperatures to fahrenheit temperatures

Write a C++ program that converts Celsius Temperatures to Fahrenheit Temperatures.

  Evaluate and output the value in the given base

Write C program that will input two values from the user that are a Value and a Base with which you will evaluate and output the Value in the given Base.

  Design a base class shape with virtual functions

Design a base class shape with virtual functions

  Implementation of classes

Implementation of classes Chart and BarChart. Class barChart chould display a simple textual representation of the data

  Technical paper: memory management

Technical Paper: Memory Management, The intent of this paper is to provide you with an in depth knowledge of how memory is used in executing, your programs and its critical support for applications.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd