The current version of the credential format is as follows:
+---+------------------------------------------------------------+---+ | | 08b : version number (3) | | | O | 08b : cipher type (munge_cipher_t) | O | | U | 08b : message authentication code type (munge_mac_t) | U | | T | 08b : compression type (munge_zip_t) | T | | E | 08b : length (in bytes) of security realm string | E | | R | var : security realm string (w/o terminating null) | R | | | var : cipher IV (initialization vector) | | +---+------------------------------------------------------------+---+ | M | var : MAC (message authentication code) | M | +---+------------------------------------------------------------+---+ | | 64b : salt | | | | 08b : length (in bytes) of the origin IP address | | | | var : origin IP address (where the credential was encoded) | | | I | 32b : time at which the credential was encoded (time_t) | I | | N | 32b : time to live (in seconds) once encoded | N | | N | 32b : UID of the client that requested the credential | N | | E | 32b : GID of the client that requested the credential | E | | R | 32b : UID of the client allowed to decode the credential | R | | | 32b : GID of the client allowed to decode the credential | | | | 32b : length (in bytes) of payload data | | | | var : payload data being munged into the credential | | +---+------------------------------------------------------------+---+
For encoding, the following rules determine the order of operations:
Consequently, credentials are encoded in the following steps:
| $Date: 2008-07-01 20:43:23 +0200 (Tue, 01 Jul 2008) $ | MUNGE Home |