Meki Cherkaoui | 88d59cd | 2012-05-14 07:34:58 -0700 | [diff] [blame] | 1 | |
| 2 | |
| 3 | var KeyManager = function KeyManager(){ |
| 4 | |
| 5 | this.certificate = |
Axel Colin de Verdiere | e5e666f | 2012-05-22 23:32:00 -0700 | [diff] [blame] | 6 | // "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhfTCn2CirG4QLF1QtyvYgev0iHghrKmDRbLf1REi6nz8IvNCZ2yHdFip3nmGqie7lVNOkfeIwvHrFkNUkBnw4mLum9dxDYLhF7aSMvZzxJqcjRF8OGVLXMlp1+vVWFE+amK9xhrAnhoW44sCL6ocXG03uWFwYKClbU5XrShd3nwIDAQAB"; |
Meki Cherkaoui | 88d59cd | 2012-05-14 07:34:58 -0700 | [diff] [blame] | 7 | 'MIIBvTCCASYCCQD55fNzc0WF7TANBgkqhkiG9w0BAQUFADAjMQswCQYDVQQGEwJK'+ |
| 8 | 'UDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwHhcNMTAwNTI4MDIwODUxWhcNMjAwNTI1'+ |
| 9 | 'MDIwODUxWjAjMQswCQYDVQQGEwJKUDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwgZ8w'+ |
| 10 | 'DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANGEYXtfgDRlWUSDn3haY4NVVQiKI9Cz'+ |
| 11 | 'Thoua9+DxJuiseyzmBBe7Roh1RPqdvmtOHmEPbJ+kXZYhbozzPRbFGHCJyBfCLzQ'+ |
| 12 | 'fVos9/qUQ88u83b0SFA2MGmQWQAlRtLy66EkR4rDRwTj2DzR4EEXgEKpIvo8VBs/'+ |
| 13 | '3+sHLF3ESgAhAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAEZ6mXFFq3AzfaqWHmCy1'+ |
| 14 | 'ARjlauYAa8ZmUFnLm0emg9dkVBJ63aEqARhtok6bDQDzSJxiLpCEF6G4b/Nv/M/M'+ |
| 15 | 'LyhP+OoOTmETMegAVQMq71choVJyOFE5BtQa6M/lCHEOya5QUfoRF2HF9EjRF44K'+ |
| 16 | '3OK+u3ivTSj3zwjtpudY5Xo='; |
| 17 | |
| 18 | this.privateKey = |
Axel Colin de Verdiere | e5e666f | 2012-05-22 23:32:00 -0700 | [diff] [blame] | 19 | // '3082025c02010002818100bd9565559c1795c049a5ef4dc9d1bc8b981b66097ea253f5d0f50f1a1df908ac4e69a797dadd2c0590944a6e849e1fbb7371c53dfddbe7802656e1d5f449b8530d9c7da8d6abebd90e06124d927f2f6c5721f1d0e49e7f6a1167caf960d96ff5afaa2d2567337772a944c8e6ceb859b25a231d9eca873574ff98225c853f38ef02030100010281805e8e57d7661e014bc1afe87644d5be1365cf2c8a49c5ced888dae1286690a1f9c6b63da7a8baad4d2d3a39117c459d9011d949c64c8a54a17efdd06fb502dbd27c27d89a6d984eddc7c41a20178ad3cf6998c82d4ca576c6e34b47d1e49d39e7f4ddb31371e2af7bf2f6ef21bf79a82132035e756b6e2ab44d4d8521dd0bb461024100efcd7cdc0f32e32565cd4980cd2f42b122b81f9ae49cce5abb4db30ae6b7c3c18433233eb5b7d870197fb4d84b128086ff6d99e0097212d37e3fa5e6511e9631024100ca638d4921c4b3a9aaa28bf1df74a140f63e16fd5c84b51f34002d4da77e23ad68a470bf7cbffd891c040fb867f181d662a769e0cedaad5e5cd7be1efc94591f02400f08f63421ebd1dc0d66f29dd5bf89d1eb5859faef2c79afaca0b18214771f19e9fcfecfb6bb0121fe2748a26b0a8cee69e3684b68ac334bf9556a44677fa07102401970b61bd140d68ca744536f0df5ad276b4c96bb365c002071faebb6ed2ceff3264a3559fca66d8a449946189a084397dd42ca0e56322ac4c7cadebd2a66c365024100c040c81d88e824684420ab98cbdf6615bb90bcedcb82081ab19375972c706d6596101b0d313017e26ec106ff814371b70db2deb00f8b25897b9b46ce8dd135d1'; |
| 20 | // '30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100bd9565559c1795c049a5ef4dc9d1bc8b981b66097ea253f5d0f50f1a1df908ac4e69a797dadd2c0590944a6e849e1fbb7371c53dfddbe7802656e1d5f449b8530d9c7da8d6abebd90e06124d927f2f6c5721f1d0e49e7f6a1167caf960d96ff5afaa2d2567337772a944c8e6ceb859b25a231d9eca873574ff98225c853f38ef02030100010281805e8e57d7661e014bc1afe87644d5be1365cf2c8a49c5ced888dae1286690a1f9c6b63da7a8baad4d2d3a39117c459d9011d949c64c8a54a17efdd06fb502dbd27c27d89a6d984eddc7c41a20178ad3cf6998c82d4ca576c6e34b47d1e49d39e7f4ddb31371e2af7bf2f6ef21bf79a82132035e756b6e2ab44d4d8521dd0bb461024100efcd7cdc0f32e32565cd4980cd2f42b122b81f9ae49cce5abb4db30ae6b7c3c18433233eb5b7d870197fb4d84b128086ff6d99e0097212d37e3fa5e6511e9631024100ca638d4921c4b3a9aaa28bf1df74a140f63e16fd5c84b51f34002d4da77e23ad68a470bf7cbffd891c040fb867f181d662a769e0cedaad5e5cd7be1efc94591f02400f08f63421ebd1dc0d66f29dd5bf89d1eb5859faef2c79afaca0b18214771f19e9fcfecfb6bb0121fe2748a26b0a8cee69e3684b68ac334bf9556a44677fa07102401970b61bd140d68ca744536f0df5ad276b4c96bb365c002071faebb6ed2ceff3264a3559fca66d8a449946189a084397dd42ca0e56322ac4c7cadebd2a66c365024100c040c81d88e824684420ab98cbdf6615bb90bcedcb82081ab19375972c706d6596101b0d313017e26ec106ff814371b70db2deb00f8b25897b9b46ce8dd135d1'; |
| 21 | // "MIICXAIBAAKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQABAoGAXo5X12YeAUvBr+h2RNW+E2XPLIpJxc7YiNrhKGaQofnGtj2nqLqtTS06ORF8RZ2QEdlJxkyKVKF+/dBvtQLb0nwn2JptmE7dx8QaIBeK089pmMgtTKV2xuNLR9HknTnn9N2zE3Hir3vy9u8hv3moITIDXnVrbiq0TU2FId0LtGECQQDvzXzcDzLjJWXNSYDNL0KxIrgfmuSczlq7TbMK5rfDwYQzIz61t9hwGX+02EsSgIb/bZngCXIS034/peZRHpYxAkEAymONSSHEs6mqoovx33ShQPY+Fv1chLUfNAAtTad+I61opHC/fL/9iRwED7hn8YHWYqdp4M7arV5c174e/JRZHwJADwj2NCHr0dwNZvKd1b+J0etYWfrvLHmvrKCxghR3Hxnp/P7PtrsBIf4nSKJrCozuaeNoS2isM0v5VWpEZ3+gcQJAGXC2G9FA1oynRFNvDfWtJ2tMlrs2XAAgcfrrtu0s7/MmSjVZ/KZtikSZRhiaCEOX3ULKDlYyKsTHyt69KmbDZQJBAMBAyB2I6CRoRCCrmMvfZhW7kLzty4IIGrGTdZcscG1llhAbDTEwF+JuwQb/gUNxtw2y3rAPiyWJe5tGzo3RNdE="; |
Meki Cherkaoui | 88d59cd | 2012-05-14 07:34:58 -0700 | [diff] [blame] | 22 | 'MIICWwIBAAKBgQDRhGF7X4A0ZVlEg594WmODVVUIiiPQs04aLmvfg8SborHss5gQ'+ |
| 23 | 'Xu0aIdUT6nb5rTh5hD2yfpF2WIW6M8z0WxRhwicgXwi80H1aLPf6lEPPLvN29EhQ'+ |
| 24 | 'NjBpkFkAJUbS8uuhJEeKw0cE49g80eBBF4BCqSL6PFQbP9/rByxdxEoAIQIDAQAB'+ |
| 25 | 'AoGAA9/q3Zk6ib2GFRpKDLO/O2KMnAfR+b4XJ6zMGeoZ7Lbpi3MW0Nawk9ckVaX0'+ |
| 26 | 'ZVGqxbSIX5Cvp/yjHHpww+QbUFrw/gCjLiiYjM9E8C3uAF5AKJ0r4GBPl4u8K4bp'+ |
| 27 | 'bXeSxSB60/wPQFiQAJVcA5xhZVzqNuF3EjuKdHsw+dk+dPECQQDubX/lVGFgD/xY'+ |
| 28 | 'uchz56Yc7VHX+58BUkNSewSzwJRbcueqknXRWwj97SXqpnYfKqZq78dnEF10SWsr'+ |
| 29 | '/NMKi+7XAkEA4PVqDv/OZAbWr4syXZNv/Mpl4r5suzYMMUD9U8B2JIRnrhmGZPzL'+ |
| 30 | 'x23N9J4hEJ+Xh8tSKVc80jOkrvGlSv+BxwJAaTOtjA3YTV+gU7Hdza53sCnSw/8F'+ |
| 31 | 'YLrgc6NOJtYhX9xqdevbyn1lkU0zPr8mPYg/F84m6MXixm2iuSz8HZoyzwJARi2p'+ |
| 32 | 'aYZ5/5B2lwroqnKdZBJMGKFpUDn7Mb5hiSgocxnvMkv6NjT66Xsi3iYakJII9q8C'+ |
| 33 | 'Ma1qZvT/cigmdbAh7wJAQNXyoizuGEltiSaBXx4H29EdXNYWDJ9SS5f070BRbAIl'+ |
| 34 | 'dqRh3rcNvpY6BKJqFapda1DjdcncZECMizT/GMrc1w=='; |
| 35 | }; |
| 36 | |
| 37 | |
| 38 | KeyManager.prototype.verify = function verify(message,signature){ |
| 39 | |
| 40 | var input = message; |
| 41 | |
| 42 | var _PEM_X509CERT_STRING_ = this.certificate; |
| 43 | |
| 44 | var x509 = new X509(); |
| 45 | |
| 46 | x509.readCertPEM(_PEM_X509CERT_STRING_); |
| 47 | |
| 48 | var result = x509.subjectPublicKeyRSA.verifyString(input, signature); |
| 49 | |
| 50 | return result; |
| 51 | |
| 52 | }; |
| 53 | |
| 54 | KeyManager.prototype.sign= function sign(message){ |
| 55 | |
| 56 | var input = message; |
| 57 | |
| 58 | var _PEM_PRIVATE_KEY_STRING_ = this.privateKey; |
| 59 | |
| 60 | var rsa = new RSAKey(); |
| 61 | rsa.readPrivateKeyFromPEMString(_PEM_PRIVATE_KEY_STRING_); |
| 62 | |
| 63 | var hSig = rsa.signString(input, "sha256"); |
| 64 | |
| 65 | return hSig; |
| 66 | |
| 67 | }; |
| 68 | |
| 69 | |
| 70 | |
| 71 | var globalKeyManager = new KeyManager(); |
| 72 | //var KeyPair = { "public" : "PUBLIC KEY" , "private" : "PRIVATE KEY" }; |
| 73 | |
| 74 | |