These messages are for things that a key is stating about the world that are 'public' information. Examples of such messages include:
There may be many other kinds of assertions message. The above messages are just given as examples of what kinds of things an assertion message is for.
As an assertion represents a 'public' statement, assertion messages are never encrypted. If you want to privately communicate a set of assertions to another party, you should encapsulate them in an encrypted session, or in a UnicastMessage for the purpose.
All assertions messages have a 'start' time and an 'expiration' time. These define an assertion message's lifetime. An assertion message is not valid, and should not be propogated before the 'start' time is reached. After the 'expiration' time has been reached, the assertion should no longer be considered valued or useful, and should be tossed out of caches, and not propogated.
While those rules apply to all assertion messages, some assertion messages have additional rules that apply. For example, the key existence assertion includes a 'drop dead' time after which the key should be considered comprimised. The expiration time is considered to be the time at which the key is no longer valid for new signatures.
The message number part of an assertion messages refers to the exact format of the assertion being made. This also usually restricts the assertion to some very specific class. In the future, there be an assertion type in which the assertion is made in a well-defined formal language that allows a wide variety of different assertions to be clearly expressed. But, that doesn't exist yet.
This will be a simple list of fields in the message. There are no repeating sections in assertion messages. All fields (except the signature itself of course) are signed in the form they appear in the message.
| Field name | Short name | Basic field type |
| Parts common to all CAKE messages | ||
| See The CAKE Message Layout | ||
| Message family 000 header | ||
| Asserter key name | assertername | key name |
| Start time | starttime | time |
| Expire time | expiretime | time |
| Assertion
The message data section in an assertion message occurs only once, unlike the message data section in a Unicast Message. This is because the message data represents an assertion that should be small, and easy to hold in memory. An implementation is free to limit the size of an assertion it will accept to something like 128kb or so. If some large piece of data, like a detailed picture, movie, or long sound clip needs to be used in an assertion, it should be referred to rather than included. |
||
| Assertion message data | msg | variable length string |
| Signature | ||
| Signature data | signature | variable length string |