An error enum for issues related to transaction or account authentication.
An AccountAuthenticator
is an an abstraction of a signature scheme. It must know:
(1) How to check its signature against a message and public key
(2) How to convert its public key into an AuthenticationKeyPreimage
structured as
(public_key | signaure_scheme_id).
Each on-chain DiemAccount
must store an AuthenticationKey
(computed via a sha3 hash of an
AuthenticationKeyPreimage
).
Each transaction submitted to the Diem blockchain contains a TransactionAuthenticator
. During
transaction execution, the executor will check if every AccountAuthenticator
’s signature on
the transaction hash is well-formed and whether the sha3 hash of the
AccountAuthenticator
’s AuthenticationKeyPreimage
matches the AuthenticationKey
stored
under the participating signer’s account address.