2.2.3.1 Security Properties
The Security Properties record describes the security configuration of the group. This record is published by the Group's creator, and can only be modified by the Group's creator. The Peer Name used for this Record's creator and 'last modified by' is the Group Peer Name. The Record is signed by the GRC's private key. Some fields cannot be changed once the group is created, as noted below.
The record type for a Security Properties record is {02000000-0000-0000-0000-000000000000}.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Major Version |
Minor Version |
Option Flags |
|||||||||||||||||||||||||||||
|
... |
Number of Lifetimes |
||||||||||||||||||||||||||||||
|
... |
Lifetimes |
||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
... |
Comment Length |
||||||||||||||||||||||||||||||
|
... |
Comment (variable) |
||||||||||||||||||||||||||||||
|
Cloud Length |
|||||||||||||||||||||||||||||||
|
Cloud (variable) |
|||||||||||||||||||||||||||||||
|
Classifier Length |
|||||||||||||||||||||||||||||||
|
Classifier (variable) |
|||||||||||||||||||||||||||||||
|
Group Peer Name Length |
|||||||||||||||||||||||||||||||
|
Group Peer Name (variable) |
|||||||||||||||||||||||||||||||
|
Creator Peer Name Length |
|||||||||||||||||||||||||||||||
|
Creator Peer Name (variable) |
|||||||||||||||||||||||||||||||
|
Friendly Name Length |
|||||||||||||||||||||||||||||||
|
Friendly Name (variable) |
|||||||||||||||||||||||||||||||
Major Version (1 byte): The Group Security major version number. MUST be set to 0x01.
Minor Version (1 byte): The Group Security minor version number. MUST be set to 0x00 or 0x01. When the minor version is 0x01, additional fields relating to authentication schemes MUST be included, as specified in section 2.2.3.1.1.
Option Flags (4 bytes): A bit field specifying various options.
-
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
10
0
0
0
0
M
D
E
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-
Value
Description
M
If set, indicates a member is not required to publish his Membership record unless it is also publishing other data. If not set, a member is required to publish his Membership record as soon as it connects to another peer.
D
If set, indicates that P2P Graphing MUST be configured to not publish presence records automatically. If not set, P2P Graphing MUST be configured to always publish the presence records.
E
If set, record expiration MUST NOT be processed while a node is not connected to other members. If not set, record expiration MUST be processed even when a node is off-line. This flag is used to set the corresponding flag in P2P Graphing.
Number of Lifetimes (4 bytes): The number of lifetimes contained in the Lifetimes field that follows, in little-endian byte order. MUST be set to 0x00000002.
Lifetimes (8 bytes): An array of unsigned binary integers containing record lifetimes, specified in seconds, in little-endian byte order. The meaning of each lifetime is based on its position in the array. P2P Grouping currently defines only two lifetimes. The first element specifies the lifetime for which a Membership record is published. Specifically, when a Membership record is published, its expiration time is set based on the current time plus the specified lifetime. If a Membership record is still required after this period, it MUST be republished prior to the expiration time. Similarly, the second element specifies the lifetime for the P2P Graphing presence record. This value MUST be merely passed to P2P Graphing, as P2P Grouping does not directly implement the presence record publication.
-
This field is fixed at group creation time and MUST NOT be modified.
Comment Length (4 bytes): An unsigned binary integer containing the length of the Comment Field, in bytes, including NULL-terminator, in little-endian byte order. The value MUST be in the range 0 to 1024, inclusive, and MUST be even.
Comment (variable): A null-terminated Unicode string representing the "comment" associated with group. This is a user-displayable string that has no other effect on the protocol. This field MUST NOT be present if the Comment Length field is zero.
Cloud Length (4 bytes): An unsigned binary integer containing the length of the Cloud field, in bytes, including NULL-terminator, in little-endian byte order. MUST be in the range 0 to 254, and MUST NOT be odd.
Cloud (variable): A null-terminated Unicode string representing the name of the PNRP Cloud which is used for group publication and discovery. This field is fixed at group creation time and MUST NOT be modified.
Classifier Length (4 bytes): An unsigned binary integer containing the length of the Classifier field, in bytes, including NULL-terminator, in little-endian byte order. MUST be in the range 0 to 300, and MUST NOT be odd.
Classifier (variable): A null-terminated Unicode string representing the group classifier. This field is fixed at group creation time and MUST NOT be modified. This field MUST match the classifier present in the Group Peer Name.
Group Peer Name Length (4 bytes): An unsigned binary integer containing the length of the Group Peer Name field, in bytes, including NULL-terminator, in little-endian byte order. MUST be in the range 0 to 360, and MUST NOT be odd.
Group Peer Name (variable): A null-terminated Unicode string representing the Peer Name of the Group. This field is fixed at group creation time and MUST NOT be modified.
Creator Peer Name Length (4 bytes): An unsigned binary integer containing the length of the Creator Peer Name field, in bytes, including NULL-terminator, in little-endian byte order. MUST be in the range is 0 to 382, and MUST NOT be odd.
Creator Peer Name (variable): A null-terminated Unicode string representing the Peer Name of the creator of the Group. This field is fixed at group creation time and MUST NOT be modified.
Friendly Name Length (4 bytes): An unsigned binary integer containing the length of the Friendly Name field, in bytes, including NULL-terminator, in little-endian byte order. MUST be in the range 0 to 254, and MUST NOT be odd.
Friendly Name (variable): A null-terminated Unicode string representing the friendly name of the group. This is a user-displayable string that has no other effect on the protocol.