noosphere_roast_client library
Classes
- AggregateKeyInfo
- Contains the group details and public shares used to aggregate a signature from shares.
- ApiRequestInterface
- AuthChallenge
- Client
- A high-level abstraction of a FROST participant client with the server API. ClientEvents are passed to the events stream.
- ClientConfig
- ClientEvent
- Events that are specific to the high-level Client class.
- ClientStorageInterface
- These methods need to be implemented for permanent storage of key information.
- CompletedSignaturesRequest
- Provides details of completed signatures upon login
-
DetailsEvent<
T extends Signable> - DkgAck
- A participant acknowledges that they have details for the groupKey if accepted is true.
- DkgAckEvent
- Sent when a participant has provided one or more SignedDkgAcks.
- DkgAckRequest
- Request for ACKs for all participant ids for a single key given by the groupPublicKey. Equal when the groupPublicKey is the same.
- DkgAckRequestEvent
- Sent when the server asks for the SignedDkgAck of participants by a DkgAckRequest for one or more keys. If the receiver owns one or more of these ACKs, they should be provided to the server via ApiRequestInterface.sendDkgAcks.
- DkgCommitmentEvent
- A commitment from the participant for the DKG given by name. When all of these have been received, a DkgCommitmentSet can be generated and round 2 can be commenced.
- DkgCommitmentSet
- Holds the list of public commitments associated with each identifier. These must be the same across all participants. Each participant should verify that all other participants have the same set by receiving a signed hash of commitments from each participant and verifying that they are the same.
- DkgEncryptedSecret
- DkgInProgress
- DkgPart1
- The first step to generate a distributed FROST key. This contains a secret and a public commitment, the latter of which is to be shared between all other participants.
- DkgPart2
- The second step to generate a distributed FROST key. This provides the secrets that must be shared to the participants of each given identifier without revealing them to anyone else. Authentication and encryption must be used to share the secrets.
- DkgPart3
- The third and final part of the DKG. This provides the participantInfo which allows the participant to produce signature shares.
- DkgPublicCommitment
- This class represents information that should be shared to other participants after the first round of the distributed key generation. Participants must ensure that all other participants have the same set of commitments before the DKG can be completed.
- DkgRejectEvent
- Event given when a participant rejects a DKG.
- DkgRound1Secret
- The secret from part 1 of the DKG that is to be kept for part 2. After part 2 this can be disposed with dispose().
- DkgRound2Secret
- The secret from part 2 that is to be held until part 3. After part 3 this can be disposed of with dispose().
- The data from a given participant for the second round of the DKG.
- A secret share that is to be shared to another participant or a secret share that was shared from another participant.
- ECCiphertext
- Provides an authenticated ciphertext with asymmetric ECC encryption/decryption.
- EmptySignatureMetadata
- Event
- Expirable
- ExpirableAuthChallengeResponse
- Expiry
- FinalExpirable
- An implementation of Expirable that merely provides the expiry and nothing else.
- FrostKeyWithDetails
- GroupConfig
-
Configuation for participants in a FROST singing group which can represent
multiple FROST keys for a given set of participants whereby each participant
has an Identifier and associated
cl.ECCompressedPublicKey
. - GroupKeyInfo
- Contains information of a FROST key required for all participants and the coordinator. This includes the group public key and the threshold number.
- GrpcClientApi
-
Provides the client API via a connection to a gRPC server. A
grpc.GrpcError
may be thrown if there is an connection issue with the server. - HDAggregateKeyInfo
- HDDerivableInfo
- HDGroupKeyInfo
- HDKeyInfo
- Information in addition to the FROST key required for BIP32 derivation
- HDParticipantKeyInfo
- HDSigningKeyInfo
- Identifier
- The ID of a participant in a threshold signing group.
- InMemoryClientStorage
- An in-memory storage solution for the ClientStorageInterface. This is used by the tests and example but real applications would benefit from persistant storage.
- KeepaliveEvent
- The only purpose of this event is to keep middleware alive, that may otherwise close in the absence of frequent events.
- KeyInfo
- KeyToComplete
- LoginCompleteResponse
- Provides the participant with a SessionID and information about the current state of signing and DKG requests.
- MapReader
- Reads a map from YAML
- NewDkgDetails
- Details of DKG requested by a participant. This is signed by the participant and sent to the other participants.
- NewDkgEvent
- Signed details of a new DKG and the Identifier of the creator that signed the details. Participants should send their public commitments if they approve of the DKG or call ApiRequestInterface.rejectDkg.
- OnetimeNumber
- Cryptographically secure onetime number of 16 bytes used for ids, challenges etc.
- ParticipantKeyInfo
- Contains all details for a given participant, including the group key, threshold, public shares and private share.
- ParticipantStatusClientEvent
- Provided when a participant logs in or logs out.
- ParticipantStatusEvent
- Gives an event when a participant logs in or logs out.
- PrivateKeyInfo
- Contains the private share required for a participant to submit signature shares for a FROST key.
- Contains the public shares for a FROST shared key
- RejectedDkgClientEvent
- When a DKG has been rejected and therefore removed. The DKG details are provided as the DKG is removed from the Client object.
-
RustObjectWrapper<
T extends RustOpaqueInterface> - SessionID
- SignableHash
- A 32-byte hash used directly for a signature
- SignatureAggregation
- Allows the coordinator to aggregate signature shares taken from selected participants.
- SignatureMetadata
- SignatureNewRoundsEvent
- Provides the SigningCommitmentSets when new ROAST rounds are initiated.
- SignatureNewRoundsResponse
- Provides the SigningCommitmentSets when new ROAST rounds are initiated.
- SignatureReply
- A ROAST reply for a single signature at the position sigI in a request.
- SignatureRoundStart
- SignaturesCompleteClientEvent
- Provided when a signatures request was completed sucessfully. This will be provided upon login for signatures the client may have missed.
- SignaturesCompleteEvent
- Provides the final signatures for a request once ROAST has completed for all of them.
- SignaturesCompleteResponse
- Provides all of the final signatures when ROAST is complete.
- SignaturesExpiryClientEvent
- Provided when the signatures request has expired.
- SignaturesFailureClientEvent
- Provided when the signatures request has failed.
- SignaturesFailureEvent
- Produced when there are not enough signers to complete the signatures request due to rejections or malicious signers.
- The signature share to be sent to the aggregator/coordinator over an authenticated channel.
- SignaturesNonces
- SignaturesRequest
- SignaturesRequestClientEvent
- Provided when there is a new signatures request.
- SignaturesRequestDetails
- Details of requested required signatures
- SignaturesRequestEvent
- Sent when there is a new request for a signature.
- SignaturesRequestId
- 16-byte ID for a SignaturesRequestDetails that implements equality comparison
- SignaturesResponse
- SignDetails
-
Signed<
T extends Signable> - SignedDkgAck
- A signed DkgAck and the signer. These are equal when the signer and group key are the same.
- SigningCommitment
- The commitment to the signature nonce to be used for signing. This should be shared with the signature aggregator.
- SigningCommitmentSet
- Holds the public commitments for signature nonces from signing participants as collected by the coordinator and to be shared with each signing participant.
- SigningKeyInfo
- Contains details required specifically for providing a signature share. This contains the GroupKeyInfo and PrivateKeyInfo but excludes the public shares which aren't needed.
- SigningNonces
- The nonces share for signatures, to be kept by the signing participant.
- SignPart1
- The first stage of the signing process where each signing participant generates nonces and a commitment to those nonces. The commitment is to be shared to the signature aggregator with authentication to start the signing process.
- SignPart2
- Generates the signature share to share with the signature aggregator/coordinator.
- SingleSignatureDetails
- Details for a single signature in a signatures request.
- UnknownSignatureMetadata
- UpdatedDkgClientEvent
- Provided when a DKG has updated its progress or when there is a new DKG request. The DKG may have been replaced.
-
WritableRustObjectWrapper<
T extends RustOpaqueInterface>
Enums
- DkgFault
- DkgStage
- KeyPurpose
- The reason the private key is being requested
- SignaturesRequestStatus
- If waiting the request hasn't received a response by the client, otherwise it has been accepted or rejected by the client.
Mixins
-
BytesMappable<
T> - MapWritable
- Objects that use this mixin provide a Map via map() that represents the object which subsequently is used to output YAML via yaml.
- Signable
Functions
-
getHiddenClientStateForTestsDoNotUse(
Client client) → ClientState - CONSUMERS OF THIS LIBRARY SHOULD AVOID THIS
-
loadFrosty(
) → Future< void>
Typedefs
-
DkgCommitmentList
= List<
DkgCommitmentPair> - DkgCommitmentPair = (Identifier, DkgPublicCommitment)
-
GetPrivateKey
= Future<
ECPrivateKey> Function(KeyPurpose purpose) -
ParticipantMap
= SplayTreeMap<
Identifier, ECCompressedPublicKey> -
SigningCommitmentMap
= Map<
Identifier, SigningCommitment>
Exceptions / Errors
- InvalidAggregation
- Thrown when the signature shares cannot be aggregated into a valid signature and this is not due to an identifiably incorrect signature share (use InvalidAggregationShare).
- Thrown when a participant provided an invalid share. The participant is identified with culprit.
- InvalidIdentifier
- Thrown when a valid identifier cannot be created
- InvalidKeyInfo
- Thrown if the FROST key information is not valid
- InvalidPart2
- Thrown when data provided into part 2 is not valid
- InvalidPart2ProofOfKnowledge
- Thrown when a participant does not provide a valid commitment proof-of-knowledge. culprit contains the identifier of the participant with the invalid commitment. There may be other participants with invalid proof-of-knowledge but only one of them is provided.
- InvalidPart3
- Thrown when data provided into part 3 is not valid
- InvalidPublicCommitment
- Thrown when bytes are not a valid public commitment
- InvalidRequest
- Errors to be thrown when an API method is called where the request cannot be satisfied due to an invalid request.
- Thrown when bytes are not a valid shared secret
- Thrown when bytes are not a valid signature share
- InvalidSignDetails
- Thrown when the message or MAST hash details are invalid
- InvalidSigningCommitment
- Thrown when bytes are not a valid signing commitment
- InvalidSigningNonces
- Thrown when bytes are not valid signing nonces
- InvalidSignPart2
- Thrown when data provided into part 2 of the sign process is not valid
- MapReaderException
- ServerMisbehaviour
- An exception thrown when the server misbehaves
- UseAfterFree