Find Jobs
Hire Freelancers

C# class based on System.Security.Cryptography.

$100-500 USD

已取消
已发布超过 12 年前

$100-500 USD

货到付款
I would like a new C# class that relies on System.Security.Cryptography. The class will be used to generate public/private key pairs, generate random keys, generate digital signatures, calculate message digests, encrypt files, decrypt files, and create/extract envelopes containing encrypted files, random keys, message digests, and digital signatures. The code must work on files up to 30MB in size. There should be at least 13 methods in this class, as specified in the detailed requirements. ## Deliverables I would like a new C# class that relies on System.Security.Cryptography. All methods should return 1 on success and negative values on error. You need to tell me what all possible negative values are when you are done coding. The code must work on files up to 30MB in size. The 13 methods in this class are: // Constructor to do any required initialization, if any. int MySecurityClass(); // Destructor to do any required cleanup, if any. int ~MySecurityClass(); // Creates a public key pair, storing into publicKey and privateKey. int GeneratePublicPrivateKeyPair(var publicKey, var privateKey, int keyLength); // Creates a random key, using TimeTimeTimeTime as seed. int GenerateRandomKey(var randomKey, int keyLength); // Calculates a message digest for the file indicated by normalFileName. int GenerateMessageDigest(normalFileName, var messageDigest); int EncryptRandomKey(randomKey, var encryptedRandomKey, publicKey); int DecryptRandomKey(var randomKey, encryptedRandomKey, privateKey); // Reads contents of file specified by normalFileName, encrypts file using randomKey, // storing results into the file specified by encryptedFileName, int EncryptFile(normalFileName, encryptedFileName, randomKey); // Reads contents of file specified by encryptedFileName, decrypts // using randomKey, storing results into the file specified by normalFileName. int DecryptFile(normalFileName, encryptedFileName, randomKey); // generates a digital signature based on private key, stuffs generated // signature into var digitalSignature int GenerateDigitalSignature(privateKey, var digitalSignature); // validates a digital signature based on public key // returns 1 if the signature matches. negative value on mismatch/errors. int ValidateDigitalSignature(publicKey, digitalSignature); // Packages myID, the encryptedFileName, the encrypted randomKey, // the messageDigest, and the encryptedFile itself into the file // specified by envelopeFileName. int CreateEnvelope(envelopeFileName, myID, encryptedFileName, encryptedRandomKey, messageDigest, digitalSignature); // Opposite of CreateEnvelope; Extracts contents of the envelopeFile. // Extracts myID into var myID. // Extracts encrypted file name into var encryptedFileName. // Extracts random key into var randomKey. // Extracts message digest, populating var messageDigest. // Extracts the encryptedFile itself into file specified by encryptedFileName. int ProcessEnvelope(envelopeFileName, var myID, var encryptedFileName, var encryptedRandomKey, var messageDigest, var digitalSignature); Example usage of this class: { String randomKey; String publicKeyONE; String privateKeyONE; String publicKeyTWO; String privateKeyTWO; String messageDigest; String secondMessageDigest; String normalFileName; String encryptedFileName; String myID; int returnValue = 0; MySecurityClass msc = new MySecurityClass(); returnValue = [login to view URL](var publicKeyONE, var privateKeyONE); if(returnValue != 1) error processing returnValue = [login to view URL](var publicKeyTWO, var privateKeyTWO); if(returnValue != 1) error processing returnValue = [login to view URL](var randomKey); if(returnValue != 1) error processing returnValue = [login to view URL](normalFileName, var messageDigest); if(returnValue != 1) error processing returnValue = [login to view URL](normalFileName, encryptedFileName, randomKey); if(returnValue != 1) error processing returnValue = [login to view URL](randomKey, var encryptedRandomKey, publicKeyTWO); if(returnValue != 1) error processing returnValue = [login to view URL](privateKeyONE, var digitalSignature); if(returnValue != 1) error processing returnValue = [login to view URL](envelopeFileName, myID, encryptedFileName, encryptedRandomKey, messageDigest, digitalSignature); if(returnValue != 1) error processing ... returnValue = [login to view URL](envelopeFileName, var myID, var encryptedFileName, var encryptedRandomKey, var messageDigest, var digitalSignature); if(returnValue != 1) error processing returnValue = [login to view URL](publicKeyONE, digitalSignature); if(returnValue != 1) error processing returnValue = [login to view URL](encryptedRandomKey, var randomKey, privateKeyTWO); if(returnValue != 1) error processing returnValue = [login to view URL](normalFileName, encryptedFileName, randomKey); if(returnValue != 1) error processing returnValue = [login to view URL](normalFileName, var secondMessageDigest); if(returnValue != 1) error processing if([login to view URL](secondMessageDigest)) == 0) [login to view URL]("Error encountered. Message Digests do not match!!!"); IF WE GET TO HERE, ALL IS WELL. } // if my logic is wrong please feel free to correct me. // I am writing this from memory from a project I worked on in 1990. // If you cannot follow what I am doing in the example usage, you probably shouldn't bid on this project. // The fully functional working program should include the example usage as the "main" of the program. // You do not need to provide any sort of installation program. All I really need is the contents of the Visual Studio workspace and/or project so I can edit/compile/run the project in Visual Studio. I use Visual Studio 2010.
项目 ID: 2695449

关于此项目

7提案
远程项目
活跃12 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作
7威客以平均价$259 USD来参与此工作竞价
用户头像
See private message.
$120.70 USD 在14天之内
4.9 (16条评论)
4.6
4.6
用户头像
See private message.
$350.20 USD 在14天之内
5.0 (9条评论)
4.5
4.5
用户头像
See private message.
$225.25 USD 在14天之内
4.9 (20条评论)
4.5
4.5
用户头像
See private message.
$225 USD 在14天之内
4.9 (6条评论)
3.6
3.6
用户头像
See private message.
$350.20 USD 在14天之内
5.0 (8条评论)
3.3
3.3
用户头像
See private message.
$140.25 USD 在14天之内
5.0 (2条评论)
2.4
2.4
用户头像
See private message.
$400.35 USD 在14天之内
0.0 (0条评论)
0.0
0.0

关于客户

UNITED STATES的国旗
United States
5.0
6
会员自11月 26, 2003起

客户认证

这个客户的其他工作

Various MFC / C++ Tasks
$100-300 USD
谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。