diff --git a/doc/src/sgml/pgcrypto.sgml b/doc/src/sgml/pgcrypto.sgml
new file mode 100644
index a0eead7..976c7db
*** a/doc/src/sgml/pgcrypto.sgml
--- b/doc/src/sgml/pgcrypto.sgml
*************** hmac(data bytea, key text, type text) re
*** 95,102 ****
    </para>
  
    <para>
!    The algorithms in <function>crypt()</> differ from usual hashing algorithms
!    like MD5 or SHA1 in the following respects:
    </para>
  
    <orderedlist>
--- 95,102 ----
    </para>
  
    <para>
!    The algorithms in <function>crypt()</> differ from the usual 
!    MD5 or SHA1 hashing algorithms in the following respects:
    </para>
  
    <orderedlist>
*************** hmac(data bytea, key text, type text) re
*** 142,147 ****
--- 142,148 ----
        <entry>Max Password Length</entry>
        <entry>Adaptive?</entry>
        <entry>Salt Bits</entry>
+       <entry>Output length</entry>
        <entry>Description</entry>
       </row>
      </thead>
*************** hmac(data bytea, key text, type text) re
*** 151,156 ****
--- 152,158 ----
        <entry>72</entry>
        <entry>yes</entry>
        <entry>128</entry>
+       <entry>60</entry>
        <entry>Blowfish-based, variant 2a</entry>
       </row>
       <row>
*************** hmac(data bytea, key text, type text) re
*** 158,163 ****
--- 160,166 ----
        <entry>unlimited</entry>
        <entry>no</entry>
        <entry>48</entry>
+       <entry>34</entry>
        <entry>MD5-based crypt</entry>
       </row>
       <row>
*************** hmac(data bytea, key text, type text) re
*** 165,170 ****
--- 168,174 ----
        <entry>8</entry>
        <entry>yes</entry>
        <entry>24</entry>
+       <entry>20</entry>
        <entry>Extended DES</entry>
       </row>
       <row>
*************** hmac(data bytea, key text, type text) re
*** 172,177 ****
--- 176,182 ----
        <entry>8</entry>
        <entry>no</entry>
        <entry>12</entry>
+       <entry>13</entry>
        <entry>Original UNIX crypt</entry>
       </row>
      </tbody>
*************** UPDATE ... SET pswhash = crypt('new pass
*** 205,211 ****
     <para>
      Example of authentication:
  <programlisting>
! SELECT pswhash = crypt('entered password', pswhash) FROM ... ;
  </programlisting>
      This returns <literal>true</> if the entered password is correct.
     </para>
--- 210,216 ----
     <para>
      Example of authentication:
  <programlisting>
! SELECT (pswhash = crypt('entered password', pswhash)) AS pswmatch FROM ... ;
  </programlisting>
      This returns <literal>true</> if the entered password is correct.
     </para>
*************** gen_salt(type text [, iter_count integer
*** 353,359 ****
         <entry>12 years</entry>
        </row>
        <row>
!        <entry><literal>md5</></entry>
         <entry>2345086</entry>
         <entry>1 day</entry>
         <entry>3 years</entry>
--- 358,364 ----
         <entry>12 years</entry>
        </row>
        <row>
!        <entry><literal>md5 hash</></entry>
         <entry>2345086</entry>
         <entry>1 day</entry>
         <entry>3 years</entry>
*************** gen_salt(type text [, iter_count integer
*** 380,386 ****
      </listitem>
      <listitem>
       <para>
!       <literal>md5</> numbers are from mdcrack 1.2.
       </para>
      </listitem>
      <listitem>
--- 385,391 ----
      </listitem>
      <listitem>
       <para>
!       <literal>md5 hash</> numbers are from mdcrack 1.2.
       </para>
      </listitem>
      <listitem>
*************** gen_random_bytes(count integer) returns
*** 1343,1349 ****
        <entry>OpenBSD sys/crypto</entry>
       </row>
       <row>
!       <entry>MD5 and SHA1</entry>
        <entry>WIDE Project</entry>
        <entry>KAME kame/sys/crypto</entry>
       </row>
--- 1348,1354 ----
        <entry>OpenBSD sys/crypto</entry>
       </row>
       <row>
!       <entry>MD5 hash and SHA1</entry>
        <entry>WIDE Project</entry>
        <entry>KAME kame/sys/crypto</entry>
       </row>
