trait HasCryptographicEvidence extends AnyRef
Trait for deterministically serializing an object to a com.google.protobuf.ByteString.
A class should extend this trait to indicate that the serialize
method yields the same ByteString
if invoked
several times.
Typical use cases of this behavior include:
- Classes that represent a leaf of a Merkle tree.
- Classes that represent content that is signed e.g. Hash or SignedProtocolMessageContent.
- Classes that are mere wrappers of ByteString (for convenience of the caller) e.g. AuthenticationToken.
If a class merely represents content that is transmitted over a network, the class does not need to extend this trait.
It is strongly recommended to extend this trait by mixing in ProtocolVersionedMemoizedEvidence or MemoizedEvidenceWithFailure, instead of directly extending this trait.
Classes C
implementing HasCryptographicEvidence must define a
fromByteString: ByteString => C
method in their companion object
that converts a serialization back into an equal object.
In particular, c.fromByteString(byteString).toByteString
must equal byteString
.
- Alphabetic
- By Inheritance
- HasCryptographicEvidence
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def getCryptographicEvidence: ByteString
Returns the serialization of the object into a com.google.protobuf.ByteString.
Returns the serialization of the object into a com.google.protobuf.ByteString. In particular, every instance
i
of this trait must equalfromByteString(i.toByteString)
.This method must yield the same result if it is invoked several times.
Concrete 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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])