@ -603,7 +603,9 @@ window.textsecure.crypto = new function() {
case 0 : //TYPE_MESSAGE_PLAINTEXT
case 0 : //TYPE_MESSAGE_PLAINTEXT
return Promise . resolve ( decodePushMessageContentProtobuf ( getString ( proto . message ) ) ) ;
return Promise . resolve ( decodePushMessageContentProtobuf ( getString ( proto . message ) ) ) ;
case 1 : //TYPE_MESSAGE_CIPHERTEXT
case 1 : //TYPE_MESSAGE_CIPHERTEXT
return decryptWhisperMessage ( proto . source , getString ( proto . message ) ) ;
return decryptWhisperMessage ( proto . source , getString ( proto . message ) ) . then ( function ( result ) {
return { message : result , pushMessage : proto } ;
} ) ;
case 3 : //TYPE_MESSAGE_PREKEY_BUNDLE
case 3 : //TYPE_MESSAGE_PREKEY_BUNDLE
if ( proto . message . readUint8 ( ) != ( 2 << 4 | 2 ) )
if ( proto . message . readUint8 ( ) != ( 2 << 4 | 2 ) )
throw new Error ( "Bad version byte" ) ;
throw new Error ( "Bad version byte" ) ;
@ -612,7 +614,7 @@ window.textsecure.crypto = new function() {
return decryptWhisperMessage ( proto . source , getString ( preKeyProto . message ) , sessions [ 0 ] ) . then ( function ( result ) {
return decryptWhisperMessage ( proto . source , getString ( preKeyProto . message ) , sessions [ 0 ] ) . then ( function ( result ) {
if ( sessions [ 1 ] !== undefined )
if ( sessions [ 1 ] !== undefined )
crypto _storage . saveSession ( proto . source , sessions [ 1 ] ) ;
crypto _storage . saveSession ( proto . source , sessions [ 1 ] ) ;
return result ;
return { message : result , pushMessage : proto } ;
} ) ;
} ) ;
} ) ;
} ) ;
}
}