C++ QT OpenSSL, 3000 lines

Cancelled Posted Aug 31, 2008 Paid on delivery
Cancelled Paid on delivery

TASK: Write encryption component of a Jabber chat client.

I give you a VERY detailed spec, which basically tells you what each line of code will do. About 3,000 lines of C++ code.

Uses QT and OpenSSL.

I will also give you a project plan with an initial small task to test your ability.

I have more work after this also if you want.

The specification I will provide you is for an encryption library to be used in a chat application that will allow encrypted messages to be received and sent over the internet using public servers.

The library’s name shall be encrypt.lib. It will be made up of 5 main parts:

1. Conversion utilities.

2. Functions for random numbers.

3. Functions for Diffie Hellman encryption.

4. Functions for AES encryption.

5. Functions for preparing forms to transmit encryption information.

The specified software will make use of the following software development products:

1. OpenSSL: available from [url removed, login to view]

2. QT: available from [url removed, login to view]

3. Visual Studio 2005: available from Microsoft.

## Deliverables

All the utilities and functions are described in great detail in a

specification document with the following table of contents. This is VERY

detailed spec, with over 27,000 words (in English):

TOPIC PAGE

Introduction 6

Dictionary 7

Encryption Constants 7

Public Primes 7

Random 8

The Class Function 8

The Private Data 8

The Private Functions 8

The Public Data 8

The Public Functions 8

Class Initialization 8

EncryptRand 9

getEntropy 10

getEntropySample 11

randSeed 12

Encryption Utilities 12

ByteArraytoBN 13

BNtoByteArray 14

Hash256 15

Base64Hash256 16

str2val 17

Diffie-Hellman 18

The Class Function 18

The Private Data 18

The Private Functions 18

The Public Data 18

The Public Functions 19

Class Initialization 19

Access Functions 19

Computational Functions 19

EncryptDH 19

computeKey 20

set_generator 21

set_prime 21

genDHs 22

checkPublicKey 23

calcSessionKeys 25

getPublicKey 26

getqHe 27

getKMA 27

getKMB 27

getKSA 27

getKSB 28

AES-128 29

The Class Functions 29

The Private Data 29

The Private Functions 29

The Public Data 29

The Public Functions 30

Class Initialization 30

Class Termination 30

Access Functions 30

Computational Functions 30

EncryptAES 31

~EncryptAES 31

setCounters 32

resetCountersA 33

setThreadID 34

getThreadID 34

resetThreadID 34

setDHPointer 35

getDHPointer 35

setRandomNonce 36

getRandomNonce 36

setMAb 36

getMAb 36

setMBb 36

getMBb 37

setIDAb 37

getIDAb 37

setIDBb 38

getIDBb 38

setEncryptKeys 38

encryptMessage 39

decryptMessage 42

calcBMac 44

calculateMac 45

calcMXB 46

hmacMac 47

checkSameKey 48

encryptResult 49

decypherMac 50

checkMac 50

myAES_ctr128_inc 51

myAES_ctr128_encryptA 52

myAES_ctr128_encryptB 53

getInitialCA 53

getInitialCB 53

getCA 54

getCB 54

getMyCtr 54

getEncodedMFinal 54

getEncodedAMac 54

Forms 55

Form Constants 55

Form Name Space Constants 55

Form Types 55

Form Fields 56

Form Field Indices 57

Forms Class 58

xqThe Class Functions 58

The Private Data 58

The Private Functions 58

The Public Data 59

The Public Functions 60

Class Initialization 60

Access Functions 60

Computational Functions 60

Forms 62

initializeFormA 63

initializeFormB 66

initializeFormA2 67

initializeFormB2 67

initializeFormTerm 68

initializeFormTerm2 68

prepareAndGenFormA 69

prepareAndGenFormB 70

prepareAndGenFormTerm 71

prepareAndGenFormTerm2 72

B2Calculations 73

generateFormHeaderStart 74

generateFormHeader 75

generateFormEnding 77

regenFormA 79

genFormA2Minus 80

regenFormA2Minus 81

regenFormB2Minus 82

regenFormB 83

genFormB2Minus 84

genFormAField 85

regenFormAField 86

genFormA2Field 87

regenFormA2Field 88

genFormBField 89

regenFormBField 89

genFormB2Field 90

regenFormB2Field 90

prepareFormA 91

prepareFormB 91

prepareFormB2 92

prepareFormB2Minus 92

prepareFormA2 93

prepareFormA2Minus 93

checkFormA 94

checkFormA2 94

checkFormB 95

checkFormB2 95

checkFormAConstants 96

checkFormBConstants 97

checkFormA2Constants 97

checkFormB2Constants 97

checkFormAModp 98

checkFormBModp 98

checkFormASecurity 99

checkFormBSecurity 99

checkFormA2Key 99

saveFormAData 100

saveFormBData 100

saveFormA2Data 101

saveFormB2Data 101

calcIdentity 102

checkFormA2Identity 104

checkFormB2Identity 106

sasAlg 108

C Programming Engineering Microsoft MySQL PHP Project Management Software Architecture Software Testing Windows Desktop

Project ID: #3186632

About the project

2 proposals Remote project Active Oct 23, 2008

2 freelancers are bidding on average $425 for this job

vw6976298vw

See private message.

$425 USD in 14 days
(0 Reviews)
0.0
cachhteam

See private message.

$425 USD in 14 days
(0 Reviews)
0.0