guid.h revision af49da69a12b5383b89c7b2fa574c2a85b9ca310
45312f52ff3a3d4c137447be4c7556500c2f8bf2Timo Sirainen#ifndef GUID_H
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen#define GUID_H
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen#define GUID_128_SIZE 16
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainentypedef uint8_t guid_128_t[GUID_128_SIZE];
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen#define GUID_128_HOST_HASH_SIZE 4
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* Generate a GUID (contains host name) */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenconst char *guid_generate(void);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* Generate 128 bit GUID */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid guid_128_generate(guid_128_t guid_r);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* Returns TRUE if GUID is empty (not set / unknown). */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenbool guid_128_is_empty(const guid_128_t guid);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* Returns GUID as a hex string. */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenconst char *guid_128_to_string(const guid_128_t guid);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* Parse GUID from a string. Returns 0 if ok, -1 if GUID isn't valid. */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenint guid_128_from_string(const char *str, guid_128_t guid_r);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* guid_128 hash/cmp functions for hash.h */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenunsigned int guid_128_hash(const uint8_t *guid);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenint guid_128_cmp(const uint8_t *guid1, const uint8_t *guid2);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* Return the hash of host used by guid_128_generate(). */
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid guid_128_host_hash_get(const char *host,
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen unsigned char hash_r[GUID_128_HOST_HASH_SIZE]);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen#endif
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen