3#include <xrpl/protocol/AccountID.h>
4#include <xrpl/protocol/HashPrefix.h>
5#include <xrpl/protocol/KeyType.h>
6#include <xrpl/protocol/PublicKey.h>
7#include <xrpl/protocol/Rules.h>
8#include <xrpl/protocol/SField.h>
9#include <xrpl/protocol/STObject.h>
10#include <xrpl/protocol/SecretKey.h>
11#include <xrpl/protocol/Serializer.h>
44[[nodiscard]] SField
const*
84 SF_VL const& sigField = sfSignature);
100 SF_VL const& sigField = sfSignature);
int addBitString(BaseUInt< Bits, Tag > const &v)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Serializer startMultiSigningData(STObject const &obj, HashPrefix prefix)
Break the multi-signing hash computation into 2 parts for optimization.
std::optional< SignatureRole > signatureRole(SField const &sigField)
The role that signs into the given field.
HashPrefix signingPrefix(SignatureRole role, bool multiSigning, Rules const &rules)
The hash prefix that binds a transaction signature to the role that made it.
bool verify(PublicKey const &publicKey, Slice const &m, Slice const &sig) noexcept
Verify a signature on a message.
SField const * signatureField(SignatureRole role)
The field that holds this role's signature.
void finishMultiSigningData(AccountID const &signingID, Serializer &s)
SignatureRole
The signature slots on a transaction.
@ Sponsor
The sponsor's signature, in sfSponsorSignature.
@ Counterparty
The counterparty's signature, in sfCounterpartySignature.
TypedField< STBlob > SF_VL
BaseUInt< 160, detail::AccountIDTag > AccountID
A 160-bit unsigned that uniquely identifies an account.
HashPrefix
Prefix for hashing functions.
Buffer sign(PublicKey const &pk, SecretKey const &sk, Slice const &message)
Generate a signature for a message.
Serializer buildMultiSigningData(STObject const &obj, AccountID const &signingID, HashPrefix prefix)
Return a Serializer suitable for computing a multisigning TxnSignature.