@@ -15,6 +15,7 @@ var ProtoBuf = require("protobufjs")
1515var zlib = require ( 'zlib' ) ;
1616
1717const _ = require ( 'lodash' ) ;
18+ const multiProto = require ( '../proto/MultiEncrypt' )
1819
1920var AESKeyLength = 32 ;
2021var AESBlockLength = 16 ;
@@ -357,7 +358,7 @@ var encryptText = function(plainText,listPublic){
357358 }
358359 //publickey -hash
359360 var pubKey = Secp256k1 . keyFromPublic ( publicKey , 'hex' ) ;
360- var pubHash = quarterSha512 ( new Buffer ( publicKey , 'hex' ) ) ;
361+ var pubHash = quarterSha512 ( Buffer . from ( publicKey , 'hex' ) ) ;
361362 listPubHash . push ( pubHash ) ;
362363
363364 //encrypt
@@ -366,30 +367,26 @@ var encryptText = function(plainText,listPublic){
366367 }
367368
368369 return new Promise ( function ( resolve , reject ) {
369- ProtoBuf . load ( "proto/MultiEncrypt.proto" , function ( err , root ) {
370- if ( err ) throw err ;
371- var MultiEncrypt = root . lookup ( "MultiEncrypt" ) ;
372- //create a new message
373- var data = { } ;
374- data . publicOther = Buffer . from ( ephPublicKey , 'hex' ) ;
375- data . cipher = Buffer . from ( aesCipher , 'hex' ) ;
376- data . hashTokenPair = [ ] ;
377- for ( var i = 0 ; i < listPubHash . length ; i ++ ) {
378- var tokenPair = {
379- publicHash : listPubHash [ i ] ,
380- token : listPassCipher [ i ]
381- }
382- data . hashTokenPair . push ( tokenPair ) ;
370+ //create a new message
371+ var data = { } ;
372+ data . publicOther = Buffer . from ( ephPublicKey , 'hex' ) ;
373+ data . cipher = Buffer . from ( aesCipher , 'hex' ) ;
374+ data . hashTokenPair = [ ] ;
375+ for ( var i = 0 ; i < listPubHash . length ; i ++ ) {
376+ var tokenPair = {
377+ publicHash : listPubHash [ i ] ,
378+ token : listPassCipher [ i ]
383379 }
384- var message = MultiEncrypt . create ( data ) ;
385- var buffer = MultiEncrypt . encode ( message ) . finish ( ) ;
386-
387- zlibCompressText ( buffer ) . then ( function ( res ) {
388- // if(err) reject(err);
389- resolve ( res . toString ( 'hex' ) ) ;
390- } ) . catch ( function ( err ) {
391- reject ( err ) ;
392- } )
380+ data . hashTokenPair . push ( tokenPair ) ;
381+ }
382+ var message = multiProto . MultiEncrypt . create ( data ) ;
383+ var buffer = multiProto . MultiEncrypt . encode ( message ) . finish ( ) ;
384+
385+ zlibCompressText ( buffer ) . then ( function ( res ) {
386+ // if(err) reject(err);
387+ resolve ( res . toString ( 'hex' ) ) ;
388+ } ) . catch ( function ( err ) {
389+ reject ( err ) ;
393390 } )
394391 } )
395392}
@@ -399,33 +396,29 @@ var decryptText = function(cipherText,secret){
399396 //Zlib-decompress
400397 var cipherBytes = Buffer . from ( cipherText , 'hex' ) ;
401398 zlibDeCompressText ( cipherBytes ) . then ( function ( res ) {
402- ProtoBuf . load ( "proto/MultiEncrypt.proto" , function ( err , root ) {
403- if ( err ) throw err ;
404- var MultiEncrypt = root . lookup ( "MultiEncrypt" ) ;
405- var message = MultiEncrypt . decode ( res ) ;
406- var keypair = keypairs . deriveKeypair ( secret ) ;
407- var privateKey = keypair . privateKey ;
408- var sPubHashSelf = quarterSha512 ( new Buffer ( keypair . publicKey , 'hex' ) ) ;
409-
410- var password ;
411- var pubOther = message . publicOther ;
412- var listPubHashToken = message . hashTokenPair ;
413- for ( var i = 0 ; i < listPubHashToken . length ; i ++ ) {
414- var hashTokenPair = listPubHashToken [ i ] ;
415- if ( _ . isEqual ( hashTokenPair . publicHash , Buffer . from ( sPubHashSelf ) ) ) {
416- var ephPrivKey = Secp256k1 . keyFromPrivate ( privateKey , 'hex' ) ;
417- var pubKey = Secp256k1 . keyFromPublic ( pubOther ) ;
418- password = simpleDecrypt ( hashTokenPair . token , ephPrivKey , pubKey ) ;
419- break ;
420- }
421- }
422- if ( password ) {
423- var plain = aesDecrypt ( password , message . cipher ) ;
424- resolve ( plain ) ;
425- } else {
426- reject ( 'error when get aesKey' )
399+ var message = multiProto . MultiEncrypt . decode ( res ) ;
400+ var keypair = keypairs . deriveKeypair ( secret ) ;
401+ var privateKey = keypair . privateKey ;
402+ var sPubHashSelf = quarterSha512 ( Buffer . from ( keypair . publicKey , 'hex' ) ) ;
403+
404+ var password ;
405+ var pubOther = message . publicOther ;
406+ var listPubHashToken = message . hashTokenPair ;
407+ for ( var i = 0 ; i < listPubHashToken . length ; i ++ ) {
408+ var hashTokenPair = listPubHashToken [ i ] ;
409+ if ( _ . isEqual ( hashTokenPair . publicHash , Buffer . from ( sPubHashSelf ) ) ) {
410+ var ephPrivKey = Secp256k1 . keyFromPrivate ( privateKey , 'hex' ) ;
411+ var pubKey = Secp256k1 . keyFromPublic ( pubOther ) ;
412+ password = simpleDecrypt ( hashTokenPair . token , ephPrivKey , pubKey ) ;
413+ break ;
427414 }
428- } )
415+ }
416+ if ( password ) {
417+ var plain = aesDecrypt ( password , message . cipher ) ;
418+ resolve ( plain ) ;
419+ } else {
420+ reject ( 'error when get aesKey' )
421+ }
429422 } ) . catch ( function ( err ) {
430423 reject ( err ) ;
431424 } )
0 commit comments