autodoc.git
/
onepage.xml
version
»
Context lines:
10
20
40
80
file
none
3
autodoc.git/onepage.xml:1:
<?xml version='1.0' encoding='utf-8'?>
-
<manual time-stamp='2019-11-
03
' version='Pike v8.1.13'>
+
<manual time-stamp='2019-11-
05
' version='Pike v8.1.13'>
<dir name='./onepage'> <file name='./onepage/manual.html'> <chapter number='1' title='Control Structures'> <p>In this chapter all the control structures in Pike will be explained. Control structures are used to control the flow of the program execution. Note that functions that make the program pause and simple function calls are not qualified as control structures.</p> <section number='1' title='Conditions'>
autodoc.git/onepage.xml:26650:
<p> If an unsupported scheme is specified an error will be thrown.</p> <p> Supported schemes are:</p> <p> Crypt(3C)-style:</p> <string><group><value>UNDEFINED</value><value>"crypt"</value><value>"{crypt}"</value><text><p>Use the strongest crypt(3C)-style hash that is supported.</p> </text></group><group><value>"6"</value><value>"$6$"</value><text><p><ref resolved='predef::Nettle.Hash.crypt_hash'>SHA512.crypt_hash()</ref> with 96 bits of salt and a default of <expr>5000</expr> rounds.</p> </text></group><group><value>"5"</value><value>"$5$"</value><text><p><ref resolved='predef::Nettle.Hash.crypt_hash'>SHA256.crypt_hash()</ref> with 96 bits of salt and a default of <expr>5000</expr> rounds.</p> </text></group><group><value>"3"</value><value>"NT"</value><text><p>The NTLM MD4 hash.</p> </text></group><group><value>"1"</value><value>"$1$"</value><text><p><ref resolved='predef::Crypto.MD5.crypt_hash'>MD5.crypt_hash()</ref> with 48 bits of salt and <expr>1000</expr> rounds.</p>
+
</text></group><group><value>"P"</value><value>"$P$"</value><value>"H"</value><value>"$H$"</value><text><p><ref resolved='predef::__builtin.Nettle.Hash.crypt_php'>MD5.crypt_php()</ref> with 48 bits of salt and a default of
+
<expr>1<<19</expr> rounds. The specified number of rounds will
+
be rounded up to the closest power of <expr>2</expr>.</p>
+
</text></group><group><value>"U$P$"</value><text><p>Same as <expr>"$P$"</expr>, the supplied <ref resolved='predef::Crypto.Password.hash.password'>password</ref> is assumed to
+
have already been passed through <ref resolved='predef::Nettle.Hash.hash'>MD5.hash()</ref> once. Typically
+
used to upgrade unsalted <ref resolved='predef::Crypto.MD5'>MD5</ref>-password databases.</p>
+
</text></group><group><value>"Q"</value><value>"$Q$"</value><text><p>Same as <expr>"$P$"</expr>, but with <ref resolved='predef::__builtin.Nettle.Hash.crypt_php'>SHA1.crypt_php()</ref>.</p>
+
</text></group><group><value>"S"</value><value>"$S$"</value><text><p>Same as <expr>"$S$"</expr>, but with <ref resolved='predef::__builtin.Nettle.Hash.crypt_php'>SHA512.crypt_php()</ref>.</p>
+
</text></group><group><value>"pbkdf2"</value><value>"$pbkdf2$"</value><text><p><ref resolved='predef::__builtin.Nettle.Hash.pbkdf2'>SHA1.pbkdf2()</ref>.</p>
+
</text></group><group><value>"pbkdf2-sha256"</value><value>"$pbkdf2-sha256$"</value><text><p><ref resolved='predef::__builtin.Nettle.Hash.pbkdf2'>SHA256.pbkdf2()</ref>.</p>
+
</text></group><group><value>"pbkdf2-sha512"</value><value>"$pbkdf2-sha512$"</value><text><p><ref resolved='predef::__builtin.Nettle.Hash.pbkdf2'>SHA512.pbkdf2()</ref>.</p>
</text></group><group><value>""</value><text><p><ref resolved='predef::crypt'>predef::crypt()</ref> with 12 bits of salt.</p> </text></group></string><p>LDAP (<rfc>2307</rfc>)-style. Don't use these if you can avoid it, since they are suspectible to attacks. In particular avoid the unsalted variants at all costs:</p> <string><group><value>"ssha"</value><value>"{ssha}"</value><text><p><ref resolved='predef::Nettle.Hash.hash'>SHA1.hash()</ref> with 96 bits of salt appended to the password.</p> </text></group><group><value>"smd5"</value><value>"{smd5}"</value><text><p><ref resolved='predef::Nettle.Hash.hash'>MD5.hash()</ref> with 96 bits of salt appended to the password.</p> </text></group><group><value>"sha"</value><value>"{sha}"</value><text><p><ref resolved='predef::Nettle.Hash.hash'>SHA1.hash()</ref> without any salt.</p> </text></group><group><value>"md5"</value><value>"{md5}"</value><text><p><ref resolved='predef::Nettle.Hash.hash'>MD5.hash()</ref> without any salt.</p> </text></group></string> </text></group><group><param name='rounds'/><text><p>The number of rounds to use in parameterized schemes. If not
autodoc.git/onepage.xml:26736:
<expr>1000</expr> and <expr>999999999</expr> (inclusive). Source: Unix crypt using SHA-256 and SHA-512 <url>http://www.akkadia.org/drepper/SHA-crypt.txt</url></p> </text></group><group><value>"$3$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"</value><text><p>This is interpreted as the NT LANMANAGER (NTLM) password hash. It is a hex representation of MD4 of the password.</p> </text></group><group><value>"$1$SSSSSSSS$XXXXXXXXXXXXXXXXXXXXXX"</value><text><p>The string is interpreted according to the GNU libc2 extension of <expr>crypt(3C)</expr> where <expr>SSSSSSSS</expr> is up to 8 chars of salt and the <expr>XXX</expr> string is an <ref resolved='predef::Crypto.MD5'>MD5</ref>-based hash created from the password and the salt. Source: GNU libc <url>http://www.gnu.org/software/libtool/manual/libc/crypt.html</url>.</p>
+
</text></group><group><value>"$P$RSSSSSSSSXXXXXXXXXXXXXXXXXXXXXX"</value><text><p>The string is interpreted as a PHPass' Portable Hash password hash,
+
where <expr>R</expr> is an encoding of the 2-logarithm of the number of
+
rounds, <expr>SSSSSSSS</expr> is a salt of 8 characters, and
+
<expr>XXX</expr> is similarily the <ref>MIME.encode_crypt64</ref> of running
+
<ref resolved='predef::Nettle.Hash.hash'>MD5.hash()</ref> repeatedly on the password and the salt.</p>
+
</text></group><group><value>"$H$RSSSSSSSS.XXXXXXXXXXXXXXXXXXXXXX"</value><text><p>Same as expr{"$P$" above. Used by phpBB3.</p>
+
</text></group><group><value>"U$P$RSSSSSSSSXXXXXXXXXXXXXXXXXXXXXX"</value><text><p>This is handled as a Drupal upgraded PHPass Portable Hash password.
+
The password is run once through <ref resolved='predef::Nettle.Hash.hash'>MD5.hash()</ref>, and then passed
+
along to the <expr>"$P$"</expr>-handler above.</p>
+
</text></group><group><value>"$Q$RSSSSSSSSXXXXXXXXXXXXXXXXXXXXXX"</value><text><p>The string is interpreted as a PHPass' Portable Hash password hash,
+
where the base hashing alorithm has been switched to <ref resolved='predef::Crypto.SHA1'>SHA1</ref>.
+
This method is apparently used by some versions of Escher CMS.</p>
+
</text></group><group><value>"$S$RSSSSSSSSXXXXXXXXXXXXXXXXXXXXXX"</value><text><p>The string is interpreted as a PHPass' Portable Hash password hash,
+
where the base hashing alorithm has been switched to <ref resolved='predef::Crypto.SHA256'>SHA256</ref>.
+
This method is apparently used by some versions of Drupal.</p>
</text></group><group><value>"XXXXXXXXXXXXX"</value><text><p>The <expr>XXX</expr> string (which doesn't begin with <expr>"{"</expr>) is taken to be a password hashed using the classic unix <expr>crypt(3C)</expr> function. If the string contains only chars from the set <expr>[a-zA-Z0-9./]</expr> it uses DES and the first two characters as salt, but other alternatives might be possible depending on the <expr>crypt(3C)</expr> implementation in the operating system.</p> </text></group><group><value>""</value><text><p>The empty password hash matches all passwords.</p> </text></group></string> </text><group><returns/><text><p>Returns <expr>1</expr> on success, and <expr>0</expr> (zero) otherwise.</p>