Ejemplo n.º 1
0
    it( 'works correctly for some fixtures', function()
    {
        var encryption_key = "30819F300D06092A864886F70D010101050003818D0030818902818100B21E1FA56085DFEF9DA015A731CA2243FFF2A6354CD6C3AC5210C9D047702908A876F4E822A35A097BF0D8E0397A1B9C3F7BB4A055239E3F67500A707A3B5659FBCA35A1CEFFC251D72BE04F313A4B11451845E01F3A30B18546A521B268772051BC2ADC22EBDA6B9ECE530460A6DFE8818B1F53363E5C91BB7BA450C21AFCE90203010001";
        var decryption_key = "30820278020100300D06092A864886F70D0101010500048202623082025E02010002818100B21E1FA56085DFEF9DA015A731CA2243FFF2A6354CD6C3AC5210C9D047702908A876F4E822A35A097BF0D8E0397A1B9C3F7BB4A055239E3F67500A707A3B5659FBCA35A1CEFFC251D72BE04F313A4B11451845E01F3A30B18546A521B268772051BC2ADC22EBDA6B9ECE530460A6DFE8818B1F53363E5C91BB7BA450C21AFCE902030100010281807401E2A297671A1EBA0ED58B7B8627231AC433346BC344D62AECFC444702E9F6D5A204885C66FFF14563EC1CBDD2A5C0F227E3D0B922E5A26DEB57A1423AFB55B128D0A4289E27D0510CDCCAF268EC471B2FDC8F8A2C270B82BB0FD115A5DF1AFECE4680A64F6F62E64BA515F03E9C5FF891F0832DC2F6103DE02D1915C1DCF1024100E53FC931375907C421471E9A02518543AC4A521E56346586C8D4E7BC3C22F55E6F485781AE23F8A6C904D936147D3EE78FC0674D275D833ED5C1E3E9BA323CEB024100C6E6EB5184781CF25E5273FAFFE9C39EACD7B1986F0356DD3CA8226B1D6AF9A1A77A0E22CB3DBC60C920FEF75C6071643C07BE59B2D09BCB292F05A79E99287B024100BF8255B483A42054BBE809AC669B6B54692D7D0452C75AB90A34B192123AB1F7BDC71533042290A9E3EBE4F8C48D0C6BAD2EF21D05F19C9E753B9005C4C20B19024100B7D0B46C5376059A5F5CE7DE711F022FE42039FA5BADC45B1531750D74D465FAE521C16A9A55658034A00FC15E57AAB32D5F22A516C1FF1893E8E6DAEF912F7D024100BA4216E24F08F731F0DAF2566CB538954148CAEB9DA3F9667A0A421F7D5739B39FD8E0CA8FD41FA1F28559783AAFB15CC542BBC29ACD955D4F02A1F30C90A007";

        var m = '3f33';
        var c = "8a410a36675b34c778280dc892ed3c8a40626aceaa9991fe1888a2b5a77da45d84363372f496495c1f8dfa636b42fc92eb5f1e507f989e6f27cd827623dbf4c25cd1f42fff930b64082d04a8ad14402feb49761dd96644d7ebfea4f508f483eeeda6bf3da1a5691a29a51f87e41774d1dfdcac577b4417f73ce4e73b0d3ae559";

        var cc = crypto.rsa_encrypt(encryption_key, m);

        var d = crypto.rsa_decrypt(decryption_key, c);
        expect(d).toBe(m);

        var c1 = "61B3E404FF62F1EB2B0F435864B8CDA860D1ADB087CB9680B9317B6F8B4D25F844B860656CAADA7F997A5415DA7FAAB89F5D5D8D499E62898A70630C56CDCF74DC65DD34460446D3AFFA233854743F111D5032B4F01E12CFB7CD1271A7120D8D093441D26AD8544F991994D96A3F176B99817FF0305A442C02E872FDA3DFA040";
        var d1 = crypto.rsa_decrypt(decryption_key, c1);
        expect(d1).toBe(m);
    });
Ejemplo n.º 2
0
 it( 'encrypts and then decrypts correctly', function()
 {
     var m = bytesToHex(forge.random.getBytesSync(60)); // a random 60-byte message
     var k = crypto.rsa_keygen();
     var c = crypto.rsa_encrypt(k.encryptionKey, m);
     var d = crypto.rsa_decrypt(k.decryptionKey, c);
     expect(d).toBe(m);
 });
Ejemplo n.º 3
0
    it( 'works correctly with explicitly provided randomness', function ()
    {
        var randomness = '123456789a123456789a123456789012';
        var encryption_key = "30819F300D06092A864886F70D010101050003818D0030818902818100B21E1FA56085DFEF9DA015A731CA2243FFF2A6354CD6C3AC5210C9D047702908A876F4E822A35A097BF0D8E0397A1B9C3F7BB4A055239E3F67500A707A3B5659FBCA35A1CEFFC251D72BE04F313A4B11451845E01F3A30B18546A521B268772051BC2ADC22EBDA6B9ECE530460A6DFE8818B1F53363E5C91BB7BA450C21AFCE90203010001";
        var decryption_key = "30820278020100300D06092A864886F70D0101010500048202623082025E02010002818100B21E1FA56085DFEF9DA015A731CA2243FFF2A6354CD6C3AC5210C9D047702908A876F4E822A35A097BF0D8E0397A1B9C3F7BB4A055239E3F67500A707A3B5659FBCA35A1CEFFC251D72BE04F313A4B11451845E01F3A30B18546A521B268772051BC2ADC22EBDA6B9ECE530460A6DFE8818B1F53363E5C91BB7BA450C21AFCE902030100010281807401E2A297671A1EBA0ED58B7B8627231AC433346BC344D62AECFC444702E9F6D5A204885C66FFF14563EC1CBDD2A5C0F227E3D0B922E5A26DEB57A1423AFB55B128D0A4289E27D0510CDCCAF268EC471B2FDC8F8A2C270B82BB0FD115A5DF1AFECE4680A64F6F62E64BA515F03E9C5FF891F0832DC2F6103DE02D1915C1DCF1024100E53FC931375907C421471E9A02518543AC4A521E56346586C8D4E7BC3C22F55E6F485781AE23F8A6C904D936147D3EE78FC0674D275D833ED5C1E3E9BA323CEB024100C6E6EB5184781CF25E5273FAFFE9C39EACD7B1986F0356DD3CA8226B1D6AF9A1A77A0E22CB3DBC60C920FEF75C6071643C07BE59B2D09BCB292F05A79E99287B024100BF8255B483A42054BBE809AC669B6B54692D7D0452C75AB90A34B192123AB1F7BDC71533042290A9E3EBE4F8C48D0C6BAD2EF21D05F19C9E753B9005C4C20B19024100B7D0B46C5376059A5F5CE7DE711F022FE42039FA5BADC45B1531750D74D465FAE521C16A9A55658034A00FC15E57AAB32D5F22A516C1FF1893E8E6DAEF912F7D024100BA4216E24F08F731F0DAF2566CB538954148CAEB9DA3F9667A0A421F7D5739B39FD8E0CA8FD41FA1F28559783AAFB15CC542BBC29ACD955D4F02A1F30C90A007";
        var m = '3f33';
        var c0 = crypto.rsa_encrypt(encryption_key, m);
        var c1 = crypto.rsa_encrypt(encryption_key, m, randomness);
        var c2 = crypto.rsa_encrypt(encryption_key, m, randomness);
        var d = crypto.rsa_decrypt(decryption_key, c1);

        expect(c1).toBe(c2);
        expect(c1).toBe('a540e006482a8b8e5c5f4c64ed8ac93ff0ee19cd9413202326af336f3fa0942cc5e92faa95b7b5f05907e8dcefb190acd9a46672736cdae9727912bec073dfbfd8c9ba1bd99d355fd4839f0c4d501e008dd80392ff8428bc0235ef8330abc0766f1a8d8ffe6fd1e518963c110dd4b0c107dafb121265b742b504aa8de43a6681');
        expect(c0).not.toBe(c1);
        expect(d).toBe(m);
    });