Reliable Message signed by an asymmetric key
This class is used to sign the SecureMessage
It contains a 'signature' field which signed with sender's private key
data format: {
//-- envelope
"sender" : "moki@xxx",
"receiver" : "hulk@yyy",
"time" : 123,
//-- content data and key/keys
"data" : "...", // base64_encode( symmetric_encrypt(content))
"keys" : {
"{ID}" : "...", // base64_encode(asymmetric_encrypt(pwd))
"digest" : "..." // hash(pwd.data)
},
//-- signature
"signature": "..." // base64_encode(asymmetric_sign(data))
}
Interface for signed reliable messages (third/final stage).
Extends [SecureMessage] with a digital signature generated by the sender's
private key, providing both confidentiality (from encryption) and authenticity/
integrity (from signing). This is the final stage of message transformation
for secure transmission.
Serialized format (Map/JSON):
```json
{
// Envelope metadata (unchanged from previous stages)
"sender": "moki@xxx", // Sender's unique ID
"receiver": "hulk@yyy", // Receiver's unique ID
"time": 123, // Message timestamp (Unix timestamp in seconds)
// Encrypted content and keys (from SecureMessage)
"data": "...", // base64_encode( symmetric_encrypt(content))
"keys": {
"{RecipientID}": "...", // base64_encode(asymmetric_encrypt(pwd))
"digest": "..." // hash(pwd.data)
},
// Digital signature (new for ReliableMessage)
"signature": "..." // Base64-encoded signature (signed with sender's private key)
}
```
- Implemented types
Properties
- data → TransportableData
-
Encrypted message content (Base64-encoded).
no setterinherited
- encryptedKeys → Map?
-
Map of encrypted symmetric keys (recipient ID → encrypted key string).
no setterinherited
-
entries
→ Iterable<
MapEntry< String, dynamic> > -
The map entries of this Map.
no setterinherited
- envelope → Envelope
-
Complete message envelope containing routing metadata.
no setterinherited
- group → ID?
-
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isEmpty → bool
-
Whether there is no key/value pair in the map.
no setterinherited
- isNotEmpty → bool
-
Whether there is at least one key/value pair in the map.
no setterinherited
-
keys
→ Iterable<
String> -
The keys of this Map.
no setterinherited
- length → int
-
The number of key/value pairs in the map.
no setterinherited
- receiver → ID
-
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sender → ID
-
no setterinherited
- signature → TransportableData
-
Digital signature of the encrypted data field.
no setter
- time → DateTime?
-
no setterinherited
- type → String?
-
no setterinherited
- values → Iterable
-
The values of this Map.
no setterinherited
Methods
-
addAll(
Map< String, dynamic> other) → void -
Adds all key/value pairs of
otherto this map.inherited -
addEntries(
Iterable< MapEntry< newEntries) → voidString, dynamic> > -
Adds all key/value pairs of
newEntriesto this map.inherited -
cast<
RK, RV> () → Map< RK, RV> -
Provides a view of this map as having
RKkeys andRVinstances, if necessary.inherited -
clear(
) → void -
Removes all entries from the map.
inherited
-
containsKey(
Object? key) → bool -
Whether this map contains the given
key.inherited -
containsValue(
Object? value) → bool -
Whether this map contains the given
value.inherited -
copyMap(
[bool deepCopy = false]) → Map -
Creates a copy of the internal map.
inherited
-
forEach(
void action(String key, dynamic value)) → void -
Applies
actionto each key/value pair of the map.inherited -
getBool(
String key, [bool? defaultValue]) → bool? -
inherited
-
getDateTime(
String key, [DateTime? defaultValue]) → DateTime? -
inherited
-
getDouble(
String key, [double? defaultValue]) → double? -
inherited
-
getInt(
String key, [int? defaultValue]) → int? -
inherited
-
getString(
String key, [String? defaultValue]) → String? -
Gets a string value for the given key.
inherited
-
map<
K2, V2> (MapEntry< K2, V2> convert(String key, dynamic value)) → Map<K2, V2> -
Returns a new map where all entries of this map are transformed by
the given
convertfunction.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
putIfAbsent(
String key, dynamic ifAbsent()) → dynamic -
Look up the value of
key, or add a new entry if it isn't there.inherited -
remove(
Object? key) → dynamic -
Removes
keyand its associated value, if present, from the map.inherited -
removeWhere(
bool test(String key, dynamic value)) → void -
Removes all entries of this map that satisfy the given
test.inherited -
setDateTime(
String key, DateTime? time) → void -
inherited
-
setMap(
String key, Mapper? mapper) → void -
inherited
-
setString(
String key, Stringer? stringer) → void -
inherited
-
toMap(
) → Map -
Returns the internal map as a Map.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
String key, dynamic update(dynamic value), {dynamic ifAbsent()?}) → dynamic -
Updates the value for the provided
key.inherited -
updateAll(
dynamic update(String key, dynamic value)) → void -
Updates all values.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
Object? key) → dynamic -
The value for the given
key, ornullifkeyis not in the map.inherited -
operator []=(
String key, dynamic value) → void -
Associates the
keywith the givenvalue.inherited
Static Methods
-
convert(
Iterable array) → List< ReliableMessage> -
getFactory(
) → ReliableMessageFactory? -
override
-
parse(
Object? msg) → ReliableMessage? -
override
-
revert(
Iterable< ReliableMessage> messages) → List<Map> -
setFactory(
ReliableMessageFactory factory) → void -
override