Subversion Repositories oidplus

Compare Revisions

Regard whitespace Rev 1331 → Rev 1332

/trunk/doc/oidplus_custom_guid.md
3,15 → 3,15
OIDplus automatically assigns a UUID to every object it manages. It is based on the custom UUID type (UUIDv8) which was defined in the new version of RFC 4122.
 
| Block | Byte | Length | Description |
|--|--|--|--|
| 1 | 0-3 | 1 bit | Reserved, must be 0. |
| | | 31 bits | OIDplus SystemID (lower 31 bits of SHA1 of Public Key); 0 if not available |
| 2 | 4-5 | 16 bits | Creation timestamp: Days since 01.01.1970 00:00 GMT; 0 if unknown. Max possible: 0xFFFF = 06 June 2149 |
| 3 | 6-7 | 4 bits | UUID Version, must be 0x8 [Custom] |
| | | 12 bits | Reserved, must be 0x0000 |
| 4 | 8-9 | 2 bits | UUID Variant, must be 0b10 (RFC 4122) |
| | | 14 bits | Namespace (lower 14 bits of SHA1 of Namespace OID) |
| 5 |10-15| 48 bits | Object name (lower 48 bits of SHA1 of canonical object name) |
|-----|------|---------|----------------------|
| 1 | 0-3 | 1 bit | Reserved, must be 0.
| | | 31 bits | OIDplus SystemID (lower 31 bits of SHA1 of Public Key); 0 if not available
| 2 | 4-5 | 16 bits | Creation timestamp: Days since 01.01.1970 00:00 GMT; 0 if unknown. Max possible: 0xFFFF = 06 June 2149
| 3 | 6-7 | 4 bits | UUID Version, must be 0x8 (Custom UUID)
| | | 12 bits | Reserved, must be 0x0000
| 4 | 8-9 | 2 bits | UUID Variant, must be 0b10 (RFC 4122)
| | | 14 bits | Namespace (lower 14 bits of SHA1 of Namespace OID)
| 5 |10-15 | 48 bits | Object name (lower 48 bits of SHA1 of canonical object name)
 
 
## Example
23,17 → 23,17
It contains the information as follows:
 
|Block| Description | Value | Interpretation |
|--|--|--|--|
| 1 | System ID | [0x6E932DD7] | SHA1(PubKey) & 0x7FFF.FFFF = 1855139287 |
| 2 | Timestamp | [0x458C] | 30 September 2018 (17804 days since 1 January 1970) |
| 3 | Reserved+Version | [0x8000] | 0x0000 \| 0x8000 |
| 4 | Namespace+Variant | [0xB9E9] | SHA1('1.3.6.1.4.1.37476.2.5.2.4.8.6') & 0x3FFF \| 0x8000 |
| 5 | Object Name | [0xC1E3894D1105] | SHA1('com.example') & 0xFFFF.FFFF.FFFF |
|-----|-------------------|----------------|----------------|
| 1 | System ID | 0x6E932DD7 | SHA1(PubKey) & 0x7FFF.FFFF = 1855139287
| 2 | Timestamp | 0x458C | 30 September 2018 (17804 days since 1 January 1970)
| 3 | Reserved+Version | 0x8000 | 0x0000 \| 0x8000
| 4 | Namespace+Variant | 0xB9E9 | SHA1('1.3.6.1.4.1.37476.2.5.2.4.8.6') & 0x3FFF \| 0x8000
| 5 | Object Name | 0xC1E3894D1105 | SHA1('com.example') & 0xFFFF.FFFF.FFFF
 
## Known namespaces
 
|Vendor | Namespace | OID | SHA1 hash | UUID block 4 | Notes |
|--|--|--|--|--|--|
| Vendor |Namespace| OID | SHA1 hash | Block 4| Notes |
|--------------|---------|--------------------------------|-----------|--------|--------------|
| ViaThinkSoft | doi | 1.3.6.1.4.1.37476.2.5.2.4.8.1 | 0x...2259 | 0xA259 |
| ViaThinkSoft | gs1 | 1.3.6.1.4.1.37476.2.5.2.4.8.2 | 0x...021E | 0x821E |
| ViaThinkSoft | guid | 1.3.6.1.4.1.37476.2.5.2.4.8.3 | 0x...B924 | 0xB924 | In OIDplus, only the UUID itself will be shown
58,7 → 58,8
-->
 
Note: When a new object type plugin is developed, the plugin author should check
if their plugin OID does conflict with plugin OIDs of other vendors, and consider
if their "Block 4" hash based on their plugin OID does conflict with the
"Block 4" hashes of plugins from other vendors, and consider
using a different plugin OID in that case.
Between ViaThinkSoft OIDs, the lowest collision is `1.3.6.1.4.1.37476.2.5.2.4.8.186`
which collides with `1.3.6.1.4.1.37476.2.5.2.4.8.48`.