Dll for Monitoring Changes in Windows Certificates Store
$250-750 USD
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.
Project ID: #4798950
About the project
Awarded to:
I have 8 years experience with C/C++ and I have huge experience with Win API, including crypto stuff.
8 freelancers are bidding on average $756 for this job
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
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!
Dear sir, I'm skilled C/C++ programmer familiar with WinAPI and DLL creation/usage. Super interested in this project.