@@ -546,7 +546,7 @@ pub mod pallet {
546546 ) -> DispatchResult {
547547 let code =
548548 Self :: challenge_codes ( who, identity) . ok_or ( Error :: < T > :: ChallengeCodeNotExist ) ?;
549- let msg = Self :: get_expected_web3_message ( who, identity, & code) ?;
549+ let msg = Self :: get_expected_payload ( who, identity, & code) ?;
550550
551551 ensure ! (
552552 msg. as_slice( ) == validation_data. message. as_slice( ) ,
@@ -599,7 +599,7 @@ pub mod pallet {
599599 ) -> DispatchResult {
600600 let code =
601601 Self :: challenge_codes ( who, identity) . ok_or ( Error :: < T > :: ChallengeCodeNotExist ) ?;
602- let msg = Self :: get_expected_web3_message ( who, identity, & code) ?;
602+ let msg = Self :: get_expected_payload ( who, identity, & code) ?;
603603 let digest = Self :: compute_evm_msg_digest ( & msg) ;
604604 if let IdentityMultiSignature :: Ethereum ( sig) = & validation_data. signature {
605605 let recovered_evm_address = Self :: recover_evm_address ( & digest, sig. as_ref ( ) )
@@ -621,18 +621,17 @@ pub mod pallet {
621621 Ok ( ( ) )
622622 }
623623
624- // web3 message format: <challeng-code> + <litentry-AccountId32> + <Identity>, where
625- // <> means SCALE-encoded
626- // Notice: actually we use the same format for web2 message too
627- pub fn get_expected_web3_message (
624+ // Payload format: blake2_256(<challeng-code> + <litentry-AccountId32> + <Identity>), where
625+ // <> means SCALE-encoded. It applies to both web2 and web3 message
626+ pub fn get_expected_payload (
628627 who : & T :: AccountId ,
629628 identity : & Identity ,
630629 code : & ChallengeCode ,
631630 ) -> Result < Vec < u8 > , DispatchError > {
632631 let mut msg = code. encode ( ) ;
633632 msg. append ( & mut who. encode ( ) ) ;
634633 msg. append ( & mut identity. encode ( ) ) ;
635- Ok ( msg)
634+ Ok ( blake2_256 ( & msg) . to_vec ( ) )
636635 }
637636
638637 // we use an EIP-191 message has computing
0 commit comments