Package convex.core.crypto
Class ASignature
java.lang.Object
convex.core.data.AObject
convex.core.data.ACell
convex.core.data.ACountable<T>
convex.core.data.ABlobLike<CVMLong>
convex.core.data.ABlob
convex.core.data.AArrayBlob
convex.core.crypto.ASignature
- All Implemented Interfaces:
IValidated
,IWriteable
,Comparable<ABlob>
- Direct Known Subclasses:
Ed25519Signature
Class representing a cryptographic signature
-
Field Summary
Fields inherited from class convex.core.data.AArrayBlob
length, offset, store
Fields inherited from class convex.core.data.ABlob
contentHash
Fields inherited from class convex.core.data.ACell
cachedRef, EMPTY_ARRAY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
Determines if this Blob is equal to another Blob.static ASignature
Construct a Signature from a Blob Uses Ed25519static ASignature
Construct a Signature from a hex string Uses Ed25519abstract byte[]
getBytes()
Gets the raw bytes representing this signature, as a zero based arraybyte
getTag()
Gets the tag byte for this cell.boolean
Determines if this Cell Represents an embedded object.static ASignature
read
(ByteBuffer bb) Reads a Signature from the given ByteBuffer.abstract boolean
verify
(AArrayBlob message, AccountKey publicKey) Checks if the signature is valid for a given message hashMethods inherited from class convex.core.data.AArrayBlob
append, appendHex, appendSmall, byteAt, byteAtUnchecked, commonHexPrefixLength, compareTo, compareTo, count, encodeRaw, equalsBytes, equalsBytes, getByteBuffer, getBytes, getHexDigit, getInternalArray, getInternalOffset, getRefCount, hexMatches, hexMatchLength, longAt, longValue, rangeMatches, rangeMatches, shortAt, slice, toExactLong, toFlatBlob, updateDigest, validate, validateCell
Methods inherited from class convex.core.data.ABlob
computeHash, empty, equals, get, getChunk, getContentHash, getElementRef, getType, hashCode, hexEquals, hexEquals, hexLength, isCVMValue, isRegularBlob, print, slice, toByteBuffer, toCanonical, toHexString, toHexString
Methods inherited from class convex.core.data.ACountable
isEmpty, size
Methods inherited from class convex.core.data.ACell
announce, announce, attachMemorySize, attachRef, cachedEncoding, cachedHash, calcMemorySize, createAnnounced, createEncoding, createPersisted, createPersisted, createRef, encode, equals, getCanonical, getChildRefs, getEncoding, getEncodingLength, getHash, getMemorySize, getRef, getRef, isCanonical, isCompletelyEncoded, mark, mark, toCVMString, toString, updateRefs
Methods inherited from class convex.core.data.AObject
attachEncoding, print, print
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface convex.core.data.IWriteable
estimatedEncodingSize
-
Constructor Details
-
ASignature
protected ASignature(byte[] signature, int pos)
-
-
Method Details
-
verify
Checks if the signature is valid for a given message hash- Parameters:
message
- Message to verifypublicKey
- Public key of signer- Returns:
- True if signature is valid, false otherwise
-
read
Reads a Signature from the given ByteBuffer. Assumes tag byte already read. Uses Ed25519- Parameters:
bb
- ByteBuffer to read from- Returns:
- Signature instance
- Throws:
BadFormatException
- If encoding is invalid
-
fromHex
Construct a Signature from a hex string Uses Ed25519- Parameters:
hex
- Hex String to read from- Returns:
- Signature instance
-
fromBlob
Construct a Signature from a Blob Uses Ed25519- Parameters:
sigData
- Blob of data representing raw signature- Returns:
- Signature instance
-
isEmbedded
public boolean isEmbedded()Description copied from class:ACell
Determines if this Cell Represents an embedded object. Embedded objects are encoded directly into the encoding of the containing Cell (avoiding the need for a hashed reference). Subclasses should override this if they have a cheap O(1) way to determine if they are embedded or otherwise.- Overrides:
isEmbedded
in classACell
- Returns:
- true if Cell is embedded, false otherwise
-
getTag
public byte getTag()Description copied from class:ACell
Gets the tag byte for this cell. The tag byte is always equal to the first byte of the Cell's canonical Encoding, and is sufficient to distinguish how to read the rest of the encoding.- Overrides:
getTag
in classAArrayBlob
- Returns:
- Tag byte for this Cell
-
getBytes
public abstract byte[] getBytes()Gets the raw bytes representing this signature, as a zero based array -
equals
Description copied from class:ABlob
Determines if this Blob is equal to another Blob. Blobs are defined to be equal if they have the same on-chain representation, i.e. if and only if all of the following are true: - Blob is of the same general type - Blobs are of the same length - All byte values are equal- Overrides:
equals
in classAArrayBlob
- Parameters:
b
- Blob to compare with- Returns:
- true if Blobs are equal, false otherwise
-