| |
| |
| var KeyManager = function KeyManager(){ |
| |
| this.certificate = |
| // "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhfTCn2CirG4QLF1QtyvYgev0iHghrKmDRbLf1REi6nz8IvNCZ2yHdFip3nmGqie7lVNOkfeIwvHrFkNUkBnw4mLum9dxDYLhF7aSMvZzxJqcjRF8OGVLXMlp1+vVWFE+amK9xhrAnhoW44sCL6ocXG03uWFwYKClbU5XrShd3nwIDAQAB"; |
| 'MIIBvTCCASYCCQD55fNzc0WF7TANBgkqhkiG9w0BAQUFADAjMQswCQYDVQQGEwJK'+ |
| 'UDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwHhcNMTAwNTI4MDIwODUxWhcNMjAwNTI1'+ |
| 'MDIwODUxWjAjMQswCQYDVQQGEwJKUDEUMBIGA1UEChMLMDAtVEVTVC1SU0EwgZ8w'+ |
| 'DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANGEYXtfgDRlWUSDn3haY4NVVQiKI9Cz'+ |
| 'Thoua9+DxJuiseyzmBBe7Roh1RPqdvmtOHmEPbJ+kXZYhbozzPRbFGHCJyBfCLzQ'+ |
| 'fVos9/qUQ88u83b0SFA2MGmQWQAlRtLy66EkR4rDRwTj2DzR4EEXgEKpIvo8VBs/'+ |
| '3+sHLF3ESgAhAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAEZ6mXFFq3AzfaqWHmCy1'+ |
| 'ARjlauYAa8ZmUFnLm0emg9dkVBJ63aEqARhtok6bDQDzSJxiLpCEF6G4b/Nv/M/M'+ |
| 'LyhP+OoOTmETMegAVQMq71choVJyOFE5BtQa6M/lCHEOya5QUfoRF2HF9EjRF44K'+ |
| '3OK+u3ivTSj3zwjtpudY5Xo='; |
| |
| this.privateKey = |
| // '3082025c02010002818100bd9565559c1795c049a5ef4dc9d1bc8b981b66097ea253f5d0f50f1a1df908ac4e69a797dadd2c0590944a6e849e1fbb7371c53dfddbe7802656e1d5f449b8530d9c7da8d6abebd90e06124d927f2f6c5721f1d0e49e7f6a1167caf960d96ff5afaa2d2567337772a944c8e6ceb859b25a231d9eca873574ff98225c853f38ef02030100010281805e8e57d7661e014bc1afe87644d5be1365cf2c8a49c5ced888dae1286690a1f9c6b63da7a8baad4d2d3a39117c459d9011d949c64c8a54a17efdd06fb502dbd27c27d89a6d984eddc7c41a20178ad3cf6998c82d4ca576c6e34b47d1e49d39e7f4ddb31371e2af7bf2f6ef21bf79a82132035e756b6e2ab44d4d8521dd0bb461024100efcd7cdc0f32e32565cd4980cd2f42b122b81f9ae49cce5abb4db30ae6b7c3c18433233eb5b7d870197fb4d84b128086ff6d99e0097212d37e3fa5e6511e9631024100ca638d4921c4b3a9aaa28bf1df74a140f63e16fd5c84b51f34002d4da77e23ad68a470bf7cbffd891c040fb867f181d662a769e0cedaad5e5cd7be1efc94591f02400f08f63421ebd1dc0d66f29dd5bf89d1eb5859faef2c79afaca0b18214771f19e9fcfecfb6bb0121fe2748a26b0a8cee69e3684b68ac334bf9556a44677fa07102401970b61bd140d68ca744536f0df5ad276b4c96bb365c002071faebb6ed2ceff3264a3559fca66d8a449946189a084397dd42ca0e56322ac4c7cadebd2a66c365024100c040c81d88e824684420ab98cbdf6615bb90bcedcb82081ab19375972c706d6596101b0d313017e26ec106ff814371b70db2deb00f8b25897b9b46ce8dd135d1'; |
| // '30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100bd9565559c1795c049a5ef4dc9d1bc8b981b66097ea253f5d0f50f1a1df908ac4e69a797dadd2c0590944a6e849e1fbb7371c53dfddbe7802656e1d5f449b8530d9c7da8d6abebd90e06124d927f2f6c5721f1d0e49e7f6a1167caf960d96ff5afaa2d2567337772a944c8e6ceb859b25a231d9eca873574ff98225c853f38ef02030100010281805e8e57d7661e014bc1afe87644d5be1365cf2c8a49c5ced888dae1286690a1f9c6b63da7a8baad4d2d3a39117c459d9011d949c64c8a54a17efdd06fb502dbd27c27d89a6d984eddc7c41a20178ad3cf6998c82d4ca576c6e34b47d1e49d39e7f4ddb31371e2af7bf2f6ef21bf79a82132035e756b6e2ab44d4d8521dd0bb461024100efcd7cdc0f32e32565cd4980cd2f42b122b81f9ae49cce5abb4db30ae6b7c3c18433233eb5b7d870197fb4d84b128086ff6d99e0097212d37e3fa5e6511e9631024100ca638d4921c4b3a9aaa28bf1df74a140f63e16fd5c84b51f34002d4da77e23ad68a470bf7cbffd891c040fb867f181d662a769e0cedaad5e5cd7be1efc94591f02400f08f63421ebd1dc0d66f29dd5bf89d1eb5859faef2c79afaca0b18214771f19e9fcfecfb6bb0121fe2748a26b0a8cee69e3684b68ac334bf9556a44677fa07102401970b61bd140d68ca744536f0df5ad276b4c96bb365c002071faebb6ed2ceff3264a3559fca66d8a449946189a084397dd42ca0e56322ac4c7cadebd2a66c365024100c040c81d88e824684420ab98cbdf6615bb90bcedcb82081ab19375972c706d6596101b0d313017e26ec106ff814371b70db2deb00f8b25897b9b46ce8dd135d1'; |
| // "MIICXAIBAAKBgQC9lWVVnBeVwEml703J0byLmBtmCX6iU/XQ9Q8aHfkIrE5pp5fa3SwFkJRKboSeH7tzccU9/dvngCZW4dX0SbhTDZx9qNar69kOBhJNkn8vbFch8dDknn9qEWfK+WDZb/Wvqi0lZzN3cqlEyObOuFmyWiMdnsqHNXT/mCJchT847wIDAQABAoGAXo5X12YeAUvBr+h2RNW+E2XPLIpJxc7YiNrhKGaQofnGtj2nqLqtTS06ORF8RZ2QEdlJxkyKVKF+/dBvtQLb0nwn2JptmE7dx8QaIBeK089pmMgtTKV2xuNLR9HknTnn9N2zE3Hir3vy9u8hv3moITIDXnVrbiq0TU2FId0LtGECQQDvzXzcDzLjJWXNSYDNL0KxIrgfmuSczlq7TbMK5rfDwYQzIz61t9hwGX+02EsSgIb/bZngCXIS034/peZRHpYxAkEAymONSSHEs6mqoovx33ShQPY+Fv1chLUfNAAtTad+I61opHC/fL/9iRwED7hn8YHWYqdp4M7arV5c174e/JRZHwJADwj2NCHr0dwNZvKd1b+J0etYWfrvLHmvrKCxghR3Hxnp/P7PtrsBIf4nSKJrCozuaeNoS2isM0v5VWpEZ3+gcQJAGXC2G9FA1oynRFNvDfWtJ2tMlrs2XAAgcfrrtu0s7/MmSjVZ/KZtikSZRhiaCEOX3ULKDlYyKsTHyt69KmbDZQJBAMBAyB2I6CRoRCCrmMvfZhW7kLzty4IIGrGTdZcscG1llhAbDTEwF+JuwQb/gUNxtw2y3rAPiyWJe5tGzo3RNdE="; |
| 'MIICWwIBAAKBgQDRhGF7X4A0ZVlEg594WmODVVUIiiPQs04aLmvfg8SborHss5gQ'+ |
| 'Xu0aIdUT6nb5rTh5hD2yfpF2WIW6M8z0WxRhwicgXwi80H1aLPf6lEPPLvN29EhQ'+ |
| 'NjBpkFkAJUbS8uuhJEeKw0cE49g80eBBF4BCqSL6PFQbP9/rByxdxEoAIQIDAQAB'+ |
| 'AoGAA9/q3Zk6ib2GFRpKDLO/O2KMnAfR+b4XJ6zMGeoZ7Lbpi3MW0Nawk9ckVaX0'+ |
| 'ZVGqxbSIX5Cvp/yjHHpww+QbUFrw/gCjLiiYjM9E8C3uAF5AKJ0r4GBPl4u8K4bp'+ |
| 'bXeSxSB60/wPQFiQAJVcA5xhZVzqNuF3EjuKdHsw+dk+dPECQQDubX/lVGFgD/xY'+ |
| 'uchz56Yc7VHX+58BUkNSewSzwJRbcueqknXRWwj97SXqpnYfKqZq78dnEF10SWsr'+ |
| '/NMKi+7XAkEA4PVqDv/OZAbWr4syXZNv/Mpl4r5suzYMMUD9U8B2JIRnrhmGZPzL'+ |
| 'x23N9J4hEJ+Xh8tSKVc80jOkrvGlSv+BxwJAaTOtjA3YTV+gU7Hdza53sCnSw/8F'+ |
| 'YLrgc6NOJtYhX9xqdevbyn1lkU0zPr8mPYg/F84m6MXixm2iuSz8HZoyzwJARi2p'+ |
| 'aYZ5/5B2lwroqnKdZBJMGKFpUDn7Mb5hiSgocxnvMkv6NjT66Xsi3iYakJII9q8C'+ |
| 'Ma1qZvT/cigmdbAh7wJAQNXyoizuGEltiSaBXx4H29EdXNYWDJ9SS5f070BRbAIl'+ |
| 'dqRh3rcNvpY6BKJqFapda1DjdcncZECMizT/GMrc1w=='; |
| }; |
| |
| |
| KeyManager.prototype.verify = function verify(message,signature){ |
| |
| var input = message; |
| |
| var _PEM_X509CERT_STRING_ = this.certificate; |
| |
| var x509 = new X509(); |
| |
| x509.readCertPEM(_PEM_X509CERT_STRING_); |
| |
| var result = x509.subjectPublicKeyRSA.verifyString(input, signature); |
| |
| return result; |
| |
| }; |
| |
| KeyManager.prototype.sign= function sign(message){ |
| |
| var input = message; |
| |
| var _PEM_PRIVATE_KEY_STRING_ = this.privateKey; |
| |
| var rsa = new RSAKey(); |
| rsa.readPrivateKeyFromPEMString(_PEM_PRIVATE_KEY_STRING_); |
| |
| var hSig = rsa.signString(input, "sha256"); |
| |
| return hSig; |
| |
| }; |
| |
| |
| |
| var globalKeyManager = new KeyManager(); |
| //var KeyPair = { "public" : "PUBLIC KEY" , "private" : "PRIVATE KEY" }; |
| |
| |