The MD2 Message-Digest Algorithm is a cryptographic hash function developed by Ronald Rivest in 1989. The algorithm is optimized for 8-bit computers. MD2 is specified in RFC 1319. Although MD2 is no longer considered secure, even as of 2014, it remains in use in public key infrastructures as part of certificates generated with MD2 and RSA.
The 128-bit hash value of any message is formed by padding it to a multiple of the block length (128 bits or 16 bytes) and adding a 16-byte checksum to it. For the actual calculation, a 48-byte auxiliary block and a 256-byte S-table generated indirectly from the digits of the fractional part of pi are used (see nothing up my sleeve number). The algorithm runs through a loop where it permutes each byte in the auxiliary block 18 times for every 16 input bytes processed. Once all of the blocks of the (lengthened) message have been processed, the first partial block of the auxiliary block becomes the hash value of the message.
MD2 is a model format used by id Software's id Tech 2 engine and is thus used by Quake II as well as many other games, most of them using this engine, including SiN and Soldier of Fortune. The format is primarily used for animated player models although it can also be used for static models. Unlike more recent character model formats, MD2 animations are achieved via keyframes on a per-vertex level; the keyframes are stored within the model file and the engine interpolates between them to create a smooth animation.
An MD2 file begins with a fixed length header followed by static model data such as texture coordinates. Dynamic data such as vertices and normals are stored within a number of file chunks called frames (or key-frames) which each have their own short headers.
In defining the file structure several data types will be referred to.
int (4 bytes), short (2 bytes), and char (1 byte)
MD2 Header
At the offset ofs_st there are num_st of this structure:
To recover the floating-point texture coordinates as used by common 3D display API's such as OpenGL, divide the texture coordinates by the respective size dimensions of the texture:
MD2 can refer to: