case class FrostSessionContext(signingContext: FrostSigningContext, aggNonce: FrostNoncePub, tweaks: Vector[FieldElement], isXOnly: Vector[Boolean], message: ByteVector) extends Product with Serializable
Container for a FROST signing session.
This class encapsulates all the information needed for a single FROST signing session, including the signing context (participant information), aggregated nonces, optional tweaks, and the message to be signed.
The session context is used to compute session-specific values (via
getSessionValues) such as:
b: the nonce coefficient used to combine R1 and R2R: the effective nonce point used in the signaturee: the challenge scalar derived from R, the (tweaked) aggregate public key, and the message
These values are required by both the signing and verification algorithms.
- signingContext
the signing context containing participant information, their public key shares, and the threshold public key
- aggNonce
the aggregated public nonce from all signing participants (R1_agg, R2_agg)
- tweaks
optional scalar tweaks to apply to the threshold public key (e.g., for taproot key path spending)
- isXOnly
for each tweak, indicates whether it was derived from an x-only public key (affects parity handling)
- message
the message bytes to be signed
- Alphabetic
- By Inheritance
- FrostSessionContext
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new FrostSessionContext(signingContext: FrostSigningContext, aggNonce: FrostNoncePub, tweaks: Vector[FieldElement], isXOnly: Vector[Boolean], message: ByteVector)
- signingContext
the signing context containing participant information, their public key shares, and the threshold public key
- aggNonce
the aggregated public nonce from all signing participants (R1_agg, R2_agg)
- tweaks
optional scalar tweaks to apply to the threshold public key (e.g., for taproot key path spending)
- isXOnly
for each tweak, indicates whether it was derived from an x-only public key (affects parity handling)
- message
the message bytes to be signed
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val aggNonce: FrostNoncePub
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getSessionValues: FrostSessionValues
Computes session-specific values needed for FROST signing and verification.
Computes session-specific values needed for FROST signing and verification.
This method derives the following values from the session context:
- **
b**: the nonce coefficient (binding factor) computed by hashing the sorted participant IDs, aggregated nonce, (tweaked) threshold public key, and message. This value binds the nonces to the specific signing session. - **
R**: the effective nonce point computed as R = R1 + b·R2, where R1 and R2 are from the aggregated nonce. If R' (before parity adjustment) is the point at infinity, the generator G is used instead. - **
e**: the challenge scalar computed via BIP-340 challenge hash from R (x-only), the (tweaked) threshold public key (x-only), and the message. - **
tweakCtx**: the tweak context containing the (tweaked) aggregate public key Q and the tweak/parity accumulators (tacc, gacc) after applying all tweaks.
The returned
FrostSessionValuescontains all these computed values along with participant IDs and their public key shares. These values are used in both the signing equation (s = k1 + b·k2 + e·λ·d) and the verification equation (s·G = R + e·λ·gacc·g·X).- returns
FrostSessionValues containing b, R, e, the tweak context, participant IDs, and public shares
- Exceptions thrown
IllegalArgumentExceptionif the computed b or e equals zero (negligible probability)
- **
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val isXOnly: Vector[Boolean]
- val message: ByteVector
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def r1: SecpPoint
- def r2: SecpPoint
- val signingContext: FrostSigningContext
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val tweaks: Vector[FieldElement]
- def v: Long
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()