
C# SJCL CCM AES decryption problem to solve
- or -
Post a project like this2023
£120(approx. $161)
- Posted:
- Proposals: 4
- Remote
- #2745242
- OPPORTUNITY
- Awarded
Description
Experience Level: Entry
I need help with decryption problem, to take inputs in file, and decrypt using inputs.
Must be using C#. .net standard 2.0 library + VSTest, along with
library for SJCL/ sjcl helpers library.
I need c# solution, within .netstandard 2.0, and a test written in VSTest showing problem being solved.
i.e. extend the unit test below.
The commented out code is javascript needing ported to c#. ie. using
SJCL available online , i.e MediusLib / SJCLHelpers.
See https://crypto.stanford.edu/sjcl/
Test method needing extended /completed is below.
Input values all below ... output should be data decoded into Json string.
[TestMethod]
public void Test_SJCL_Decode_Test1()
{
var data = "FFAD80319A2794A45FE801109A7D96D46BF1F87DF1A6EBAA6472C065295F56C717F880A70DAA79481A943D4CBFC920EC404B47C9221C2B038D51FB9E05F406EBA1E4DC99778E7A9335450509C198FCBA2456C941A7B925AC1FAD62B09BD051D452B8FFDB0B99BEA922F0EF8D2513C55D17F87DBEA746B70559AC90B98B34DAC0861D8635D0BF7235B567CC8B412F6CFE7A3EF5AFD4F1FE7080EA15FF6A3F3F5EE180BE98665B81C0B5F7BD3084EBC2E0A3C01E3C2B82ED96472FBE7619DB5E448F9DEE879580A9652B2C795AD9F7E1F65FC380FA4DDF00BBAEFAFF44DFE33C5E7F0221D988213B84F1B283F715A06CCE804BDA2898FB1915A1995C7560E4B05C0D0519A6D72F5F06E3C0B39F90BDEF13FADD0E52594C8F7B53055BBD0BE61BA679E7A83C39C41C562C652AA451D37EB004D15030733C76C8D67C4C5339B0245A5524658681FE767CAA802CE472D9532A309A371978417DCC87CE1A1DD37BF3C709E79E8CBD3443A2E54FAEF86BDC6AC6631FE60AA77CE0A8EE77E07E2F9F992F8282E6A04C3FC96B7317456266CBBD5C221206CF19CD69C994E1BB8094B6006B4081EB0A459C367A7575C7D412E88CB090B098D74D4CA72990D49908359CECBF791995B2EC5A4701BE8838CE0FF1E7DA1621FF6662BA6127F70B3811C720EFB5010F8BB66E5A142E9F26B068F21EB0719F38BBA98EC06E1E4811C34D89CB93D2962A349CBA1CD8C92839FD8DC5EF55953DEED91CCFBB5487CBB53C9EDEF021C44F9666B2CCEFBD17815CE8E1828FAE88BC5E025690D0DC793CA35E3B4255A38AE475B04413E355EAF98ECBACD81AFCDB85D5852B801F9ABA31EE4F8076169499657051ED15E2EAC7A818468B3DE854ADB2F947117C5E7EF191C79DC3910F535D6E791FC5F2A306EA18CE73F9DFB59DD4C30DC90D895AF2D0A3109DE5CA27CBD36F13696585731B5E08F24C475B107C5FA74688A4C4CC8361964230C80BEC9E2EAD82A27CEB52325AEA6994D58713862F537EAD0D8BDD1082D168CCCF826B2AC75E5F69E73B4F92CF6A26904215E213D72843C5B1F3B71494500A2147606170793CE1A835361CAEEE89973ACFEF19E060C7997A2BDE7F01E20E147677336732A8330940C054FB3FEC08173705EEB1A4F1243B8B9C04E756E7EFF14CD94E084F59DD479B33688AAA26C95B29A9FA32D078575D7F966B1507BE2E18DCE4CD3459C09637B9DE762911060B786170775AEF19139D58E4958988A0E029E86D961A71470343C4D45303B4D5E945460A63EA81C0E5616DBF0BFB0BDE3D9D3B2FFF6F63D3DD0B6635BF784F6D58B7B83850F6E5DDD44F165C0389EF6F93A54B18CA9F66E5F98BBBC6E57748F950CD8C1F0A39BD66860F3B6F47BDC02C154C201121D84CE158137DC3A862DC8C1A3E62B18A220993EE72F4B0BCE60A3A19C2F49B4628E70F6806699757BFFDD4F491ED07545BC22E1BDB7763DC1CB2C8FC4BC1BBA98F078630D8D22522F983B023350C968609E4D13CAA4C52D573E1D039582844C243606AA1F22E437AF8EB42A2CE7F21C8EB66497713B130D93943B2F8D06BF95DBA755AECF7FC500C3765040EAA5EE85605CDD9A714323C95AAE269076FAD440CF38568D8C53682DDCBFCA9846938AD3CC55F6B363D4626BEF5FFC530354FBC6FD51B4D982D6A056594CDC1A43A86B819D3863CAC0F8FAE974F5467F24099710A4AD2BED2E69C34FFC18257AF5EAA5549675B0E6E3A343D056A2086328CBDCF66878A512D2C44E6B49F674A4F4B0F044E74F88B3F006777C8AFCE440F2135FF620661CE9CB90BD6F04693E1CEF431448EEE67E4CAA6B2611C53933AB111996C4C2BF81845B193644520DB4EC3F3EC2A480544B34989908C5B843BA79C9416AA0AFC640B87BC23486CB577E05A919F4D915A18C32CE267E982A21580CF5DC2D7A2E3F740EEE637E63DEB98FE06EF1042CDED872E7436C191E8274E73EB73F24606122C14A336B7F31463B27251E12C9597BE9EF719158C6AA1F7DDAA334FC6F4B20689D8D6F519FA8FE8EEC3A5B314BF3896C27DA4ACFBE21A029EA7D6553B75576E890E4FE3657F525C883DB63FA60DD444A638CCE7A7F18626A798A58B3C2B77CEFA0A7328CD4551C5D44827CFF3FE412DC7B26F453EBF6811F02D3BE0B2C9D7DF45E21E3D617336B429F1F7B80501030CCA9E949B1AEFE2FBC473B58B5A7482CBF995E8E0C2294B1A50916E54C4BDF6C1D84010D926C8FAD23DB8E248928D8F705B6F1B7552B50AA774B5AB5CA8F62F6AD4828A46F6F70C8B1D40CB86D584B0B448901E4D1D3B504BC5C3799C8116C89791A38DB0EE6DA3A15F8AD18910CC64CAC9082A3D6DA3144FA8E1A1893928C09320175BE8BF6CA40D3F458A89ABF5916E10408359BE673862A799CB9128D894AE5C931445CAEF108059530ECD3FC6B714238359D8A80678A883B877D0C9B9";
var challengeV = "eA7B0BA2B9fAECD289B9b97aCAFCBac6Abceed6fd32e14A855ED75bf5Fdac512";
var iv = challengeV.Substring(16, 16); // "89B9b97aCAFCBac6";
var adata = challengeV.Substring(32, 16); // "Abceed6fd32e14A8";
var derivedk = "5b0565d5d0e7ace1755687b1abab1a17";
//var iv = challengev.Substring(16, 16);
//var adata = challengev.Substring(32, 16);
//cipher c = new sjcl.cipher.aes(sjcl.codec.hex.toBits(derivedk));
//var pt = sjcl.mode.ccm.decrypt(c, sjcl.codec.hex.toBits(data), sjcl.codec.hex.toBits(iv),
sjcl.codec.hex.toBits(adata));
//pt = sjcl.codec.utf8String.fromBits(pt);
// pt = json string of data.
}
Must be using C#. .net standard 2.0 library + VSTest, along with
library for SJCL/ sjcl helpers library.
I need c# solution, within .netstandard 2.0, and a test written in VSTest showing problem being solved.
i.e. extend the unit test below.
The commented out code is javascript needing ported to c#. ie. using
SJCL available online , i.e MediusLib / SJCLHelpers.
See https://crypto.stanford.edu/sjcl/
Test method needing extended /completed is below.
Input values all below ... output should be data decoded into Json string.
[TestMethod]
public void Test_SJCL_Decode_Test1()
{
var data = "FFAD80319A2794A45FE801109A7D96D46BF1F87DF1A6EBAA6472C065295F56C717F880A70DAA79481A943D4CBFC920EC404B47C9221C2B038D51FB9E05F406EBA1E4DC99778E7A9335450509C198FCBA2456C941A7B925AC1FAD62B09BD051D452B8FFDB0B99BEA922F0EF8D2513C55D17F87DBEA746B70559AC90B98B34DAC0861D8635D0BF7235B567CC8B412F6CFE7A3EF5AFD4F1FE7080EA15FF6A3F3F5EE180BE98665B81C0B5F7BD3084EBC2E0A3C01E3C2B82ED96472FBE7619DB5E448F9DEE879580A9652B2C795AD9F7E1F65FC380FA4DDF00BBAEFAFF44DFE33C5E7F0221D988213B84F1B283F715A06CCE804BDA2898FB1915A1995C7560E4B05C0D0519A6D72F5F06E3C0B39F90BDEF13FADD0E52594C8F7B53055BBD0BE61BA679E7A83C39C41C562C652AA451D37EB004D15030733C76C8D67C4C5339B0245A5524658681FE767CAA802CE472D9532A309A371978417DCC87CE1A1DD37BF3C709E79E8CBD3443A2E54FAEF86BDC6AC6631FE60AA77CE0A8EE77E07E2F9F992F8282E6A04C3FC96B7317456266CBBD5C221206CF19CD69C994E1BB8094B6006B4081EB0A459C367A7575C7D412E88CB090B098D74D4CA72990D49908359CECBF791995B2EC5A4701BE8838CE0FF1E7DA1621FF6662BA6127F70B3811C720EFB5010F8BB66E5A142E9F26B068F21EB0719F38BBA98EC06E1E4811C34D89CB93D2962A349CBA1CD8C92839FD8DC5EF55953DEED91CCFBB5487CBB53C9EDEF021C44F9666B2CCEFBD17815CE8E1828FAE88BC5E025690D0DC793CA35E3B4255A38AE475B04413E355EAF98ECBACD81AFCDB85D5852B801F9ABA31EE4F8076169499657051ED15E2EAC7A818468B3DE854ADB2F947117C5E7EF191C79DC3910F535D6E791FC5F2A306EA18CE73F9DFB59DD4C30DC90D895AF2D0A3109DE5CA27CBD36F13696585731B5E08F24C475B107C5FA74688A4C4CC8361964230C80BEC9E2EAD82A27CEB52325AEA6994D58713862F537EAD0D8BDD1082D168CCCF826B2AC75E5F69E73B4F92CF6A26904215E213D72843C5B1F3B71494500A2147606170793CE1A835361CAEEE89973ACFEF19E060C7997A2BDE7F01E20E147677336732A8330940C054FB3FEC08173705EEB1A4F1243B8B9C04E756E7EFF14CD94E084F59DD479B33688AAA26C95B29A9FA32D078575D7F966B1507BE2E18DCE4CD3459C09637B9DE762911060B786170775AEF19139D58E4958988A0E029E86D961A71470343C4D45303B4D5E945460A63EA81C0E5616DBF0BFB0BDE3D9D3B2FFF6F63D3DD0B6635BF784F6D58B7B83850F6E5DDD44F165C0389EF6F93A54B18CA9F66E5F98BBBC6E57748F950CD8C1F0A39BD66860F3B6F47BDC02C154C201121D84CE158137DC3A862DC8C1A3E62B18A220993EE72F4B0BCE60A3A19C2F49B4628E70F6806699757BFFDD4F491ED07545BC22E1BDB7763DC1CB2C8FC4BC1BBA98F078630D8D22522F983B023350C968609E4D13CAA4C52D573E1D039582844C243606AA1F22E437AF8EB42A2CE7F21C8EB66497713B130D93943B2F8D06BF95DBA755AECF7FC500C3765040EAA5EE85605CDD9A714323C95AAE269076FAD440CF38568D8C53682DDCBFCA9846938AD3CC55F6B363D4626BEF5FFC530354FBC6FD51B4D982D6A056594CDC1A43A86B819D3863CAC0F8FAE974F5467F24099710A4AD2BED2E69C34FFC18257AF5EAA5549675B0E6E3A343D056A2086328CBDCF66878A512D2C44E6B49F674A4F4B0F044E74F88B3F006777C8AFCE440F2135FF620661CE9CB90BD6F04693E1CEF431448EEE67E4CAA6B2611C53933AB111996C4C2BF81845B193644520DB4EC3F3EC2A480544B34989908C5B843BA79C9416AA0AFC640B87BC23486CB577E05A919F4D915A18C32CE267E982A21580CF5DC2D7A2E3F740EEE637E63DEB98FE06EF1042CDED872E7436C191E8274E73EB73F24606122C14A336B7F31463B27251E12C9597BE9EF719158C6AA1F7DDAA334FC6F4B20689D8D6F519FA8FE8EEC3A5B314BF3896C27DA4ACFBE21A029EA7D6553B75576E890E4FE3657F525C883DB63FA60DD444A638CCE7A7F18626A798A58B3C2B77CEFA0A7328CD4551C5D44827CFF3FE412DC7B26F453EBF6811F02D3BE0B2C9D7DF45E21E3D617336B429F1F7B80501030CCA9E949B1AEFE2FBC473B58B5A7482CBF995E8E0C2294B1A50916E54C4BDF6C1D84010D926C8FAD23DB8E248928D8F705B6F1B7552B50AA774B5AB5CA8F62F6AD4828A46F6F70C8B1D40CB86D584B0B448901E4D1D3B504BC5C3799C8116C89791A38DB0EE6DA3A15F8AD18910CC64CAC9082A3D6DA3144FA8E1A1893928C09320175BE8BF6CA40D3F458A89ABF5916E10408359BE673862A799CB9128D894AE5C931445CAEF108059530ECD3FC6B714238359D8A80678A883B877D0C9B9";
var challengeV = "eA7B0BA2B9fAECD289B9b97aCAFCBac6Abceed6fd32e14A855ED75bf5Fdac512";
var iv = challengeV.Substring(16, 16); // "89B9b97aCAFCBac6";
var adata = challengeV.Substring(32, 16); // "Abceed6fd32e14A8";
var derivedk = "5b0565d5d0e7ace1755687b1abab1a17";
//var iv = challengev.Substring(16, 16);
//var adata = challengev.Substring(32, 16);
//cipher c = new sjcl.cipher.aes(sjcl.codec.hex.toBits(derivedk));
//var pt = sjcl.mode.ccm.decrypt(c, sjcl.codec.hex.toBits(data), sjcl.codec.hex.toBits(iv),
sjcl.codec.hex.toBits(adata));
//pt = sjcl.codec.utf8String.fromBits(pt);
// pt = json string of data.
}

Stuart G.
100% (5)Projects Completed
5
Freelancers worked with
5
Projects awarded
86%
Last project
16 Feb 2021
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies