RFC 4122 UUID functions More...
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include "byteorder.h"
Go to the source code of this file.
Data Structures | |
struct | uuid_t |
UUID layout. More... | |
Macros | |
#define | UUID_NODE_LEN (6U) |
Size of the node identifier in bytes. | |
#define | UUID_STR_LEN (36U) |
Size of a string UUID without null character. | |
Functions | |
void | uuid_v3 (uuid_t *uuid, const uuid_t *ns, const uint8_t *name, size_t len) |
Generate a version 3(md5 based) UUID from a namespace and a byte array. More... | |
void | uuid_v4 (uuid_t *uuid) |
Generate a version 4(Full random) UUID. More... | |
void | uuid_v5 (uuid_t *uuid, const uuid_t *ns, const uint8_t *name, size_t len) |
Generate a version 5(sha1 based) UUID from a namespace and a byte array. More... | |
static unsigned | uuid_version (const uuid_t *uuid) |
Retrieve the type number of a UUID. More... | |
static bool | uuid_equal (const uuid_t *uuid1, const uuid_t *uuid2) |
Compare two UUID's. More... | |
void | uuid_to_string (const uuid_t *uuid, char *str) |
Generate an UUID string from an UUID structure. More... | |
int | uuid_from_string (uuid_t *uuid, const char *str) |
Populate an UUID structure from an UUID string. More... | |
UUID version identifiers | |
#define | UUID_V1 (0x01) |
Type 1 UUID - timestamp based | |
#define | UUID_V2 (0x02) |
Type 2 UUID - DCE Security version. | |
#define | UUID_V3 (0x03) |
Type 3 UUID - Name based with MD5 | |
#define | UUID_V4 (0x04) |
Type 4 UUID - Random generated | |
#define | UUID_V5 (0x05) |
Type 5 UUID - Name based with SHA1. | |
Version part of the time_hi field | |
#define | UUID_VERSION_MASK (0xF000) |
Namespace IDs from RFC4122 | |
Copied from rfc4122 Appendix C | |
const uuid_t | uuid_namespace_dns |
DNS namespace UUID. | |
const uuid_t | uuid_namespace_url |
URL namespace UUID. | |
const uuid_t | uuid_namespace_iso |
ISO OID namespace UUID. | |
const uuid_t | uuid_namespace_x500 |
X.500 DN namespace UUID. | |