Dll for Monitoring Changes in Windows Certificates Store

Completed Posted Aug 6, 2013 Paid on delivery
Completed Paid on delivery

DLL for Extracting Windows Certificates List

--------------------------------------------

Requirements:

Extract the list of all certificates stored in all Windows Certificate Stores:

for (all) User Accounts, Computer Accounts, and Service Accounts

All types of stores: Personal, Trusted Root Certification Authorities, etc.

For each certificate, extract the following information:

Version

Serial Number

Signature Algorithm

Signature hash algorithm

Issuer

Valid from

Valid to

Subject

Public Key

Subject Key Identifier

Key Usage

Authority Key Identifier

Basic Constraints

Thumbprint Algorithm

Thumbprint

Friendly Name

Enhanced Key Usage

Extended Validation

Certification Path

Monitor for changes in all certificate stores

Research for a change notification mechanism built in the Windows Operating System(i.e. - registry changes notifications)

Whenever a change notification is issued, the dll will report on the changes: 1 message for every added/removed certificate

If a notification mechanism does not exist - a fallback of a polling mechanism will be used.

Main Usage Flows

The DLL is a sort of sensor, which sends notifications whenever a certificate is added or deleted.

First time the DLL is loaded - it will send a notification for every certificate in every store.

The rest of the notifications will be sent only when there are changes to the list of certificates.

The DLL should remember the list of certificates after unloading/termination.

When the DLL is loaded once again, it will send notifications only on changes.

DLL Architecture

The DLL must have the following functions (defined loosely):

Initialize

Finalize

SendCertificateChangeNotification(certificate-info, added/removed)

StoreCertificatesList

GetCertificatesList

certificate-info:

Define a struct which will hold all the information about a certificate.

The struct may have basic types (int, float, char*, etc.)

The struct may also use one of the following stl types: string, wstring, vector, map, list

SendCertificateChangeNotification:

Implement this function to write messages to a file, in a human readable form.

General Coding

Code should run on XP, Vista, 7, Server 2003, Server 2008

Code should compile on 32 bit and 64 bit architectures

Code should be written in C++

All possible errors should be handled and logged

Implement a Log function

The Log function will be able to log messages in 3 levels: DEBUG, INFO, ERROR

The Log function will use OutputDebugString

Testing

Test your code on Windows XP & Windows 7

Run the following tests:

Load the dll for the first time, make sure all certificates are logged

Add a certificate, make sure a correct notification is sent

Remove a certificate, make sure a ccorrect notification

Restart the computer,

load the dll, make sure no messages are sent to log

add a certificate, make sure a message is sent

remove a certificate, make sure a message is sent

Write a stress-test script - add & remove many certificates at a fast pace; have the script validate the messages captured all changes. Any language may be used for this script, though c++/python are preferred.

C++ Programming Cryptography Research Software Development Windows API

Project ID: #4798950

About the project

8 proposals Remote project Active Aug 8, 2013

Awarded to:

yvitaliy

I have 8 years experience with C/C++ and I have huge experience with Win API, including crypto stuff.

$611 USD in 5 days
(1 Review)
3.6

8 freelancers are bidding on average $756 for this job

Dhruvika111

Dear ramiamar, Greetings! Please refer to your PM Only once and iam sure you will assign your research task to N-Office team. Thanks. Dhruvika

$360 USD in 4 days
(197 Reviews)
7.1
whoi

Hi, I'm skilled with windows cryptography, I may help you.

$1030 USD in 5 days
(17 Reviews)
6.8
ciphe

Please see PMB.

$1666 USD in 40 days
(3 Reviews)
4.1
Thaler

Hello! I'm a computer science student skilled in cryptography, low level programming and experienced in Windows API functions, so I'm very qualified for this job. I'm looking forward to work for you!

$300 USD in 7 days
(1 Review)
2.0
ObjectStream

please see my profile

$722 USD in 6 days
(0 Reviews)
0.0
Kos21

Dear sir, I'm skilled C/C++ programmer familiar with WinAPI and DLL creation/usage. Super interested in this project.

$555 USD in 5 days
(0 Reviews)
0.0
dhruvaseth

I can do this.

$805 USD in 60 days
(0 Reviews)
0.0