SYNOPSIS
        #include <tls.h>

        string hmac(int method, string key, string arg )
        string hmac(int method, string key, bytes  arg )
        string hmac(int method, string key, int *  arg )
        string hmac(int method, bytes  key, string arg )
        string hmac(int method, bytes  key, bytes  arg )
        string hmac(int method, bytes  key, int *  arg )

BESCHREIBUNG
        Berechnet den Hashed Message Authenication Code fuer <arg>
        nach Methode <method> und fuer das Password <key>. Strings
        werden zuvor in eine UTF-8-Bytefolge konvertiert.

        <method> ist eine der TLS_HASH_-Konstanten in tls.h; nicht jede
        beschriebene Methode ist in einem gegebenen Driver vorhanden:

          TLS_HASH_SHA1      (1)
          TLS_HASH_SHA224    (2)
          TLS_HASH_SHA256    (3)
          TLS_HASH_SHA384    (4)
          TLS_HASH_SHA512    (5)
          TLS_HASH_MD5       (6)
          TLS_HASH_RIPEMD160 (7)

        Wenn der Driver ohne OpenSSL- oder GCrypt-Unterstuetzung compiliert
        wurde, erzeugt diese Funktion einen Fehler.


BEISPIELE
        string s;

        s = hmac(TLS_HASH_SHA1, "secret", "Hello");
        s = hmac(TLS_HASH_SHA1, "secret", ({ 'H', 'e', 'l', 'l', 'o' }) )

GESCHICHTE
        Eingefuehrt in LDMud 3.3.714

SIEHE AUCH
        crypt(E), md5(E), md5_crypt(E), sha1(E), hmac(E)
