summaryrefslogtreecommitdiff
path: root/lib/crypto/doc/src/crypto.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/crypto/doc/src/crypto.xml')
-rw-r--r--lib/crypto/doc/src/crypto.xml546
1 files changed, 337 insertions, 209 deletions
diff --git a/lib/crypto/doc/src/crypto.xml b/lib/crypto/doc/src/crypto.xml
index d2e6429022..e0b190a508 100644
--- a/lib/crypto/doc/src/crypto.xml
+++ b/lib/crypto/doc/src/crypto.xml
@@ -178,13 +178,13 @@
<note>
<p>The actual supported algorithms and features depends on their availability in the actual libcrypto used.
- See the <seealso marker="crypto:crypto_app">crypto (App)</seealso> about dependencies.
+ See the <seeapp marker="crypto:crypto_app">crypto (App)</seeapp> about dependencies.
</p>
<p>Enabling FIPS mode will also disable algorithms and features.
</p>
</note>
- <p>The <seealso marker="users_guide">CRYPTO User's Guide</seealso> has more information on
+ <p>The <seeguide marker="index">CRYPTO User's Guide</seeguide> has more information on
FIPS, Engines and Algorithm Details like key lengths.
</p>
</description>
@@ -210,11 +210,47 @@
<name name="cipher_aead"/>
<desc>
<p>Ciphers known by the CRYPTO application when using the
- <seealso marker="crypto:new_api#the-new-api">new API</seealso>.</p>
+ <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.</p>
<p>Note that this list might be reduced if the underlying libcrypto does not support all of them.</p>
</desc>
</datatype>
+ <datatype>
+ <name name="crypto_opts"/>
+ <name name="crypto_opt"/>
+ <desc>
+ <p>Selects encryption (<c>{encrypt,true}</c>) or decryption (<c>{encrypt,false}</c>)
+ in the <seeguide marker="crypto:new_api#the-new-api"><i>New API</i></seeguide>.
+ </p>
+ </desc>
+ </datatype>
+
+ <datatype>
+ <name name="padding"/>
+ <desc>
+ <p>This option handles padding in the last block. If not set, no padding is done
+ and any bytes in the last unfilled block is silently discarded.
+ </p>
+ </desc>
+ </datatype>
+ <datatype>
+ <name name="cryptolib_padding"/>
+ <desc>
+ <p>The <c>cryptolib_padding</c> are paddings that may be present in the underlying cryptolib
+ linked to the Erlang/OTP crypto app.
+ </p>
+ <p>For OpenSSL, see the <url href="http:www.openssl.org">OpenSSL documentation</url>.
+ and find <c>EVP_CIPHER_CTX_set_padding()</c> in cryptolib for your linked version.
+ </p>
+ </desc>
+ </datatype>
+ <datatype>
+ <name name="otp_padding"/>
+ <desc>
+ <p>Erlang/OTP adds a either padding of zeroes or padding with random bytes.</p>
+ </desc>
+ </datatype>
+
<datatype_title>Ciphers, old API</datatype_title>
<datatype>
<name name="block_cipher_with_iv"/>
@@ -255,7 +291,7 @@
<name name="ecb_cipher"/>
<desc>
<p>Ciphers known by the CRYPTO application when using the
- <seealso marker="crypto:new_api#the-old-api">old API</seealso>.</p>
+ <seeguide marker="crypto:new_api#the-old-api">old API</seeguide>.</p>
<p>Note that this list might be reduced if the underlying libcrypto does not support all of them.</p>
</desc>
</datatype>
@@ -279,10 +315,10 @@
<name name="retired_ecb_cipher_aliases"/>
<desc>
<p>Alternative, old names of ciphers known by the CRYPTO application when using the
- <seealso marker="crypto:new_api#the-old-api">old API</seealso>.
- See <seealso marker="crypto:new_api#retired-cipher-names">Retired cipher names</seealso> for names to
+ <seeguide marker="crypto:new_api#the-old-api">old API</seeguide>.
+ See <seeguide marker="crypto:new_api#retired-cipher-names">Retired cipher names</seeguide> for names to
use instead to be prepared for an easy convertion to the
- <seealso marker="crypto:new_api#the-new-api">new API</seealso>.
+ <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
</p>
<p>Note that this list might be reduced if the underlying libcrypto does not support all of them.</p>
</desc>
@@ -375,7 +411,7 @@
<name name="des3_key"/>
<desc>
<p>For keylengths, iv-sizes and blocksizes see the
- <seealso marker="crypto:algorithm_details#ciphers">User's Guide</seealso>.
+ <seeguide marker="crypto:algorithm_details#ciphers">User's Guide</seeguide>.
</p>
<p>A key for des3 is a list of three iolists</p>
</desc>
@@ -398,9 +434,10 @@
<code>rsa_private() = [E, N, D] | [E, N, D, P1, P2, E1, E2, C]</code>
<p>Where E is the public exponent, N is public modulus and D is
the private exponent. The longer key format contains redundant
- information that will make the calculation faster. P1,P2 are first
- and second prime factors. E1,E2 are first and second exponents. C
- is the CRT coefficient. Terminology is taken from <url href="http://www.ietf.org/rfc/rfc3477.txt"> RFC 3447</url>.</p>
+ information that will make the calculation faster. P1 and P2 are first
+ and second prime factors. E1 and E2 are first and second exponents. C
+ is the CRT coefficient. The terminology is taken from
+ <url href="http://www.ietf.org/rfc/rfc3447.txt"> RFC 3447</url>.</p>
</desc>
</datatype>
@@ -447,19 +484,15 @@
<datatype>
<name name="srp_gen_params"/>
<name name="srp_comp_params"/>
- <desc>
- <marker id="type-srp_user_gen_params"/>
- <code>srp_user_gen_params() = [DerivedKey::binary(), Prime::binary(), Generator::binary(), Version::atom()]</code>
- <marker id="type-srp_host_gen_params"/>
- <code>srp_host_gen_params() = [Verifier::binary(), Prime::binary(), Version::atom() ]</code>
- <marker id="type-srp_user_comp_params"/>
- <code>srp_user_comp_params() = [DerivedKey::binary(), Prime::binary(), Generator::binary(), Version::atom() | ScramblerArg::list()]</code>
- <marker id="type-srp_host_comp_params"/>
- <code>srp_host_comp_params() = [Verifier::binary(), Prime::binary(), Version::atom() | ScramblerArg::list()]</code>
- <p>Where Verifier is <c>v</c>, Generator is <c>g</c> and Prime is<c> N</c>, DerivedKey is <c>X</c>, and Scrambler is
- <c>u</c> (optional will be generated if not provided) from <url href="http://srp.stanford.edu/design.html">SRP design</url>
- Version = '3' | '6' | '6a'
- </p>
+ <name>srp_user_gen_params() = [DerivedKey::binary(), Prime::binary(), Generator::binary(), Version::atom()]</name>
+ <name>srp_host_gen_params() = [Verifier::binary(), Prime::binary(), Version::atom() ]</name>
+ <name>srp_user_comp_params() = [DerivedKey::binary(), Prime::binary(), Generator::binary(), Version::atom() | ScramblerArg::list()]</name>
+ <name>srp_host_comp_params() = [Verifier::binary(), Prime::binary(), Version::atom() | ScramblerArg::list()]</name>
+ <desc>
+ <p>Where Verifier is <c>v</c>, Generator is <c>g</c> and Prime is<c> N</c>, DerivedKey is <c>X</c>, and Scrambler is
+ <c>u</c> (optional will be generated if not provided) from <url href="http://srp.stanford.edu/design.html">SRP design</url>
+ Version = '3' | '6' | '6a'
+ </p>
</desc>
</datatype>
@@ -549,7 +582,7 @@
<name name="engine_key_ref"/>
<name name="engine_ref"/>
<desc>
- <p>The result of a call to <seealso marker="#engine_load-3">engine_load/3</seealso>.
+ <p>The result of a call to <seemfa marker="#engine_load/3">engine_load/3</seemfa>.
</p>
</desc>
</datatype>
@@ -578,7 +611,7 @@
<datatype>
<name name="engine_cmnd"/>
<desc>
- <p>Pre and Post commands for <seealso marker="#engine_load-3">engine_load/3 and /4</seealso>.
+ <p>Pre and Post commands for <seemfa marker="#engine_load/3">engine_load/3 and /4</seemfa>.
</p>
</desc>
</datatype>
@@ -608,7 +641,7 @@
<p>The exception <c>error:notsup</c> signifies that the algorithm is known but is not supported
by current underlying libcrypto or explicitly disabled when building that.
</p>
- <p>For a list of supported algorithms, see <seealso marker="#supports-0">supports/0</seealso>.
+ <p>For a list of supported algorithms, see <seemfa marker="#supports/0">supports/0</seemfa>.
</p>
</desc>
</datatype>
@@ -617,7 +650,7 @@
<name name="descriptive_error"/>
<desc>
<p>This is a more developed variant of the older
- <seealso marker="#type-run_time_error">run_time_error()</seealso>.
+ <seetype marker="#run_time_error">run_time_error()</seetype>.
</p>
<p>The exception is:</p>
<pre>
@@ -647,7 +680,7 @@
<tag><c>error</c></tag>
<item><p>An error condition that should not occur, for example a memory allocation failed or
the underlying cryptolib returned an error code, for example "Can't initialize context, step 1".
- Thoose text usually needs searching the C-code to be understood.</p>
+ Those text usually needs searching the C-code to be understood.</p>
</item>
</taglist>
<p>To catch the exception, use for example:</p>
@@ -665,16 +698,22 @@
</datatypes>
<!--================ FUNCTIONS ================-->
- <section>
- <title>New API</title>
- </section>
+
<funcs>
+ <fsdescription>
+ <title>New API</title>
+ </fsdescription>
<func>
<name name="crypto_init" arity="3" since="OTP 22.0"/>
<fsummary>Initializes a series of encryptions or decryptions</fsummary>
<desc>
- <p>As <seealso marker="#crypto_init/4">crypto_init/4</seealso> but for ciphers without IVs.</p>
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
+ </p>
+ <p>Equivalent to the call
+ <seemfa marker="#crypto_init/4"><c>crypto_init(Cipher, Key, &lt;&lt;>>, FlagOrOptions)</c></seemfa>.
+ It is intended for ciphers without an IV (nounce).
+ </p>
</desc>
</func>
@@ -682,16 +721,54 @@
<name name="crypto_init" arity="4" since="OTP 22.0"/>
<fsummary>Initializes a series of encryptions or decryptions</fsummary>
<desc>
- <p>Part of the <seealso marker="crypto:new_api#the-new-api">new API</seealso>.
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
Initializes a series of encryptions or decryptions and creates an internal state
with a reference that is returned.
+ </p>
+ <p>If <c>IV = &lt;&lt;>></c>, no IV is used. This is intended for ciphers without an IV (nounce).
+ See <seemfa marker="#crypto_init/3">crypto_init/3</seemfa>.
+ </p>
+ <p>
+ If <c>IV = undefined</c>, the IV must be added by calls to
+ <seemfa marker="crypto#crypto_dyn_iv_update/3">crypto_dyn_iv_update/3</seemfa>. This is intended
+ for cases where the IV (nounce) need to be changed for each encryption and decryption.
+ See <seemfa marker="#crypto_dyn_iv_init/3">crypto_dyn_iv_init/3</seemfa>.
+ </p>
+ <p>
The actual encryption or decryption is done by
- <seealso marker="crypto#crypto_update/2">crypto_update/2</seealso>.
+ <seemfa marker="crypto#crypto_update/2">crypto_update/2</seemfa> (or
+ <seemfa marker="crypto#crypto_dyn_iv_update/3">crypto_dyn_iv_update/3</seemfa>
+ ).
+ </p>
+ <p>For encryption, set the <c>FlagOrOptions</c> to <c>true</c> or <c>[{encrypt,true}]</c>.
+ For decryption, set it to <c>false</c> or <c>[{encrypt,false}]</c>.
+ </p>
+ <p>Padding could be enabled with the option
+ <seetype marker="#padding">{padding,Padding}</seetype>. The
+ <seetype marker="#cryptolib_padding">cryptolib_padding</seetype> enables
+ <c>pkcs_padding</c> or no padding (<c>none</c>).
+ The paddings <c>zero</c> or <c>random</c> fills the last part of the last block with zeroes or random bytes.
+ If the last block is already full, nothing is added.
+ </p>
+ <p>In decryption, the <seetype marker="#cryptolib_padding">cryptolib_padding</seetype> removes
+ such padding, if present.
+ The <seetype marker="#otp_padding">otp_padding</seetype> is not
+ removed - it has to be done elsewhere.
+ </p>
+ <p>If padding is <c>{padding,none}</c> or not specifed and the total data from all subsequent
+ <seemfa marker="crypto#crypto_update/2">crypto_updates</seemfa> does
+ not fill the last block fully, that last data is lost. In case of <c>{padding,none}</c> there will
+ be an error in this case. If padding is not specified, the bytes of the unfilled block is silently
+ discarded.
+ </p>
+ <p>The actual padding is performed by
+ <seemfa marker="crypto#crypto_final/1">crypto_final/1</seemfa>.
</p>
- <p>For encryption, set the <c>EncryptFlag</c> to <c>true</c>. For decryption, set it to <c>false</c>.
+ <p>
+ For blocksizes call <seemfa marker="#cipher_info/1">cipher_info/1</seemfa>.
</p>
- <p>See <seealso marker="crypto:new_api#examples-of-crypto_init-4-and-crypto_update-2">
- examples in the User's Guide.</seealso>
+ <p>See <seeguide marker="crypto:new_api#examples-of-crypto_init-4-and-crypto_update-2">
+ examples in the User's Guide.</seeguide>
</p>
</desc>
</func>
@@ -700,17 +777,17 @@
<name name="crypto_update" arity="2" since="OTP 22.0"/>
<fsummary>Do an actual crypto operation on a part of the full text</fsummary>
<desc>
- <p>Part of the <seealso marker="crypto:new_api#the-new-api">new API</seealso>.
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
It does an actual crypto operation on a part of the full text. If the part is less
than a number of full blocks, only the full blocks (possibly none) are encrypted
or decrypted and the remaining bytes are saved to the next <c>crypto_update</c> operation.
The <c>State</c> should be created with
- <seealso marker="crypto#crypto_init/3">crypto_init/3</seealso>
+ <seemfa marker="crypto#crypto_init/3">crypto_init/3</seemfa>
or
- <seealso marker="crypto#crypto_init/4">crypto_init/4</seealso>.
+ <seemfa marker="crypto#crypto_init/4">crypto_init/4</seemfa>.
</p>
- <p>See <seealso marker="crypto:new_api#examples-of-crypto_init-4-and-crypto_update-2">
- examples in the User's Guide.</seealso>
+ <p>See <seeguide marker="crypto:new_api#examples-of-crypto_init-4-and-crypto_update-2">
+ examples in the User's Guide.</seeguide>
</p>
</desc>
</func>
@@ -719,13 +796,60 @@
<name name="crypto_dyn_iv_init" arity="3" since="OTP 22.0"/>
<fsummary>Initializes a series of encryptions or decryptions where the IV is provided later</fsummary>
<desc>
- <p>Part of the <seealso marker="crypto:new_api#the-new-api">new API</seealso>.
- Initializes a series of encryptions or decryptions where the IV is provided later.
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
+ </p>
+ <p>Initializes a series of encryptions or decryptions where the IV is provided later.
The actual encryption or decryption is done by
- <seealso marker="crypto#crypto_dyn_iv_update/3">crypto_dyn_iv_update/3</seealso>.
+ <seemfa marker="crypto#crypto_dyn_iv_update/3">crypto_dyn_iv_update/3</seemfa>.
+ </p>
+ <p>The function is equivalent to
+ <seemfa marker="#crypto_init/4"><c>crypto_init(Cipher, Key, undefined, FlagOrOptions)</c></seemfa>.
+ </p>
+ </desc>
+ </func>
+
+ <func>
+ <name name="crypto_final" arity="1" since=""/>
+ <fsummary>Ends a series of encryptions or decryptions</fsummary>
+ <desc>
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
+ </p>
+ <p>
+ Finalizes a series of encryptions or decryptions and delivers the final bytes of the final block.
+ The data returned from this function may be empty if no padding was enabled in
+ <seemfa marker="#crypto_init/3">crypto_init/3,4</seemfa> or
+ <seemfa marker="#crypto_dyn_iv_init/3">crypto_dyn_iv_init/3</seemfa>.
+ </p>
+ </desc>
+ </func>
+
+ <func>
+ <name name="crypto_get_data" arity="1" since=""/>
+ <fsummary>Get information about crypto states</fsummary>
+ <desc>
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
</p>
- <p>For encryption, set the <c>EncryptFlag</c> to <c>true</c>. For decryption, set it to <c>false</c>.
+ <p>
+ Returns information about the State in the argument. The information is the form of a map,
+ which currently contains at least:
</p>
+ <taglist>
+ <tag><c>size</c></tag>
+ <item>The number of bytes encrypted or decrypted so far.
+ </item>
+ <tag><c>padding_size</c></tag>
+ <item>After a call to
+ <seemfa marker="#crypto_final/1">crypto_final/1</seemfa> it contains
+ the number of bytes padded. Otherwise 0.
+ </item>
+ <tag><c>padding_type</c></tag>
+ <item>The type of the padding as provided in the call ot
+ <seemfa marker="#crypto_init/3">crypto_init/3,4</seemfa>.
+ </item>
+ <tag><c>encrypt</c></tag>
+ <item>Is <c>true</c> if encryption is performed. It is <c>false</c> otherwise.
+ </item>
+ </taglist>
</desc>
</func>
@@ -733,10 +857,10 @@
<name name="crypto_dyn_iv_update" arity="3" since="OTP 22.0"/>
<fsummary>Do an actual crypto operation on a part of the full text and the IV is supplied for each part</fsummary>
<desc>
- <p>Part of the <seealso marker="crypto:new_api#the-new-api">new API</seealso>.
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
Do an actual crypto operation on a part of the full text and the IV is supplied for each part.
The <c>State</c> should be created with
- <seealso marker="crypto#crypto_dyn_iv_init/3">crypto_dyn_iv_init/3</seealso>.
+ <seemfa marker="crypto#crypto_dyn_iv_init/3">crypto_dyn_iv_init/3</seemfa>.
</p>
</desc>
</func>
@@ -745,7 +869,7 @@
<name name="crypto_one_time" arity="4" since="OTP 22.0"/>
<fsummary>Do a complete encrypt or decrypt of the full text</fsummary>
<desc>
- <p>As <seealso marker="#crypto_one_time/5">crypto_one_time/5</seealso> but for ciphers without IVs.</p>
+ <p>As <seemfa marker="#crypto_one_time/5">crypto_one_time/5</seemfa> but for ciphers without IVs.</p>
</desc>
</func>
@@ -753,12 +877,14 @@
<name name="crypto_one_time" arity="5" since="OTP 22.0"/>
<fsummary>Do a complete encrypt or decrypt of the full text</fsummary>
<desc>
- <p>Part of the <seealso marker="crypto:new_api#the-new-api">new API</seealso>.
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
Do a complete encrypt or decrypt of the full text in the argument <c>Data</c>.
</p>
- <p>For encryption, set the <c>EncryptFlag</c> to <c>true</c>. For decryption, set it to <c>false</c>.
+ <p>For encryption, set the <c>FlagOrOptions</c> to <c>true</c>. For decryption, set it to <c>false</c>.
+ For setting other options, see
+ <seemfa marker="crypto#crypto_init/4">crypto_init/4</seemfa>.
</p>
- <p>See <seealso marker="crypto:new_api#example-of-crypto_one_time-5">examples in the User's Guide.</seealso>
+ <p>See <seeguide marker="crypto:new_api#example-of-crypto_one_time-5">examples in the User's Guide.</seeguide>
</p>
</desc>
</func>
@@ -768,7 +894,7 @@
<name name="crypto_one_time_aead" arity="7" since="OTP 22.0"/>
<fsummary>Do a complete encrypt or decrypt with an AEAD cipher of the full text</fsummary>
<desc>
- <p>Part of the <seealso marker="crypto:new_api#the-new-api">new API</seealso>.
+ <p>Part of the <seeguide marker="crypto:new_api#the-new-api">new API</seeguide>.
Do a complete encrypt or decrypt with an AEAD cipher of the full text.
</p>
<p>For encryption, set the <c>EncryptFlag</c> to <c>true</c> and set the <c>TagOrTagLength</c>
@@ -778,7 +904,7 @@
<p>For decryption, set the <c>EncryptFlag</c> to <c>false</c> and put the tag to be checked
in the argument <c>TagOrTagLength</c>.
</p>
- <p>See <seealso marker="crypto:new_api#example-of-crypto_one_time_aead-6">examples in the User's Guide.</seealso>
+ <p>See <seeguide marker="crypto:new_api#example-of-crypto_one_time_aead-6">examples in the User's Guide.</seeguide>
</p>
</desc>
</func>
@@ -789,7 +915,7 @@
<desc>
<p> Can be used to determine which crypto algorithms that are supported
by the underlying libcrypto library</p>
- <p>See <seealso marker="#hash_info-1">hash_info/1</seealso> and <seealso marker="#cipher_info-1">cipher_info/1</seealso>
+ <p>See <seemfa marker="#hash_info/1">hash_info/1</seemfa> and <seemfa marker="#cipher_info/1">cipher_info/1</seemfa>
for information about the hash and cipher algorithms.
</p>
</desc>
@@ -799,7 +925,7 @@
<name name="mac" arity="3" since="OTP 22.1"/>
<fsummary></fsummary>
<desc>
- <p>Short for <seealso marker="#mac-4">mac(Type, undefined, Key, Data)</seealso>.
+ <p>Short for <seemfa marker="#mac/4">mac(Type, undefined, Key, Data)</seemfa>.
</p>
</desc>
</func>
@@ -815,31 +941,31 @@
</p>
<list>
<item>For <c>hmac</c> it is a hash algorithm, see
- <seealso marker="algorithm_details#hmac">Algorithm Details</seealso> in the User's Guide.
+ <seeguide marker="algorithm_details#hmac">Algorithm Details</seeguide> in the User's Guide.
</item>
<item>For <c>cmac</c> it is a cipher suitable for cmac, see
- <seealso marker="algorithm_details#cmac">Algorithm Details</seealso> in the User's Guide.
+ <seeguide marker="algorithm_details#cmac">Algorithm Details</seeguide> in the User's Guide.
</item>
<item>For <c>poly1305</c> it should be set to <c>undefined</c> or the
- <seealso marker="#mac_init-2">mac/2</seealso> function could be used instead, see
- <seealso marker="algorithm_details#poly1305">Algorithm Details</seealso> in the User's Guide.
+ <seemfa marker="#mac_init/2">mac/2</seemfa> function could be used instead, see
+ <seeguide marker="algorithm_details#poly1305">Algorithm Details</seeguide> in the User's Guide.
</item>
</list>
<p><c>Key</c> is the authentication key with a length according to the
<c>Type</c> and <c>SubType</c>.
The key length could be found with the
- <seealso marker="#hash_info-1">hash_info/1</seealso> (<c>hmac</c>) for and
- <seealso marker="#cipher_info-1">cipher_info/1</seealso> (<c>cmac</c>)
+ <seemfa marker="#hash_info/1">hash_info/1</seemfa> (<c>hmac</c>) for and
+ <seemfa marker="#cipher_info/1">cipher_info/1</seemfa> (<c>cmac</c>)
functions. For <c>poly1305</c> the key length is 32 bytes. Note that
the cryptographic quality of the key is not checked.
</p>
<p>The <c>Mac</c> result will have a default length depending on the <c>Type</c> and <c>SubType</c>.
- To set a shorter length, use <seealso marker="#macN-4">macN/4</seealso> or
- <seealso marker="#macN-5">macN/5</seealso> instead.
+ To set a shorter length, use <seemfa marker="#macN/4">macN/4</seemfa> or
+ <seemfa marker="#macN/5">macN/5</seemfa> instead.
The default length is documented in
- <seealso marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seealso>
+ <seeguide marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seeguide>
in the User's Guide.
</p>
</desc>
@@ -849,7 +975,7 @@
<name name="macN" arity="4" since="OTP 22.1"/>
<fsummary></fsummary>
<desc>
- <p>Short for <seealso marker="#macN-5">macN(Type, undefined, Key, Data, MacLength)</seealso>.
+ <p>Short for <seemfa marker="#macN/5">macN(Type, undefined, Key, Data, MacLength)</seemfa>.
</p>
</desc>
</func>
@@ -859,7 +985,7 @@
<fsummary></fsummary>
<desc>
<p>Computes a MAC (Message Authentication Code)
- as <seealso marker="#mac-3">mac/3</seealso> and <seealso marker="#mac-4">mac/4</seealso> but
+ as <seemfa marker="#mac/3">mac/3</seemfa> and <seemfa marker="#mac/4">mac/4</seemfa> but
<c>MacLength</c> will limit the size of the resultant <c>Mac</c> to
at most <c>MacLength</c> bytes.
Note that if <c>MacLength</c> is greater than the actual number of
@@ -867,7 +993,7 @@
that shorter length instead.
</p>
<p>The max <c>MacLength</c> is documented in
- <seealso marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seealso>
+ <seeguide marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seeguide>
in the User's Guide.
</p>
</desc>
@@ -877,7 +1003,7 @@
<name name="mac_init" arity="2" since="OTP 22.1"/>
<fsummary></fsummary>
<desc>
- <p>Short for <seealso marker="#mac_init-3">mac_init(Type, undefined, Key)</seealso>.
+ <p>Short for <seemfa marker="#mac_init/3">mac_init(Type, undefined, Key)</seemfa>.
</p>
</desc>
</func>
@@ -895,35 +1021,35 @@
</p>
<list>
<item>For <c>hmac</c> it is a hash algorithm, see
- <seealso marker="algorithm_details#hmac">Algorithm Details</seealso> in the User's Guide.
+ <seeguide marker="algorithm_details#hmac">Algorithm Details</seeguide> in the User's Guide.
</item>
<item>For <c>cmac</c> it is a cipher suitable for cmac, see
- <seealso marker="algorithm_details#cmac">Algorithm Details</seealso> in the User's Guide.
+ <seeguide marker="algorithm_details#cmac">Algorithm Details</seeguide> in the User's Guide.
</item>
<item>For <c>poly1305</c> it should be set to <c>undefined</c> or the
- <seealso marker="#mac_init-2">mac/2</seealso> function could be used instead, see
- <seealso marker="algorithm_details#poly1305">Algorithm Details</seealso> in the User's Guide.
+ <seemfa marker="#mac_init/2">mac/2</seemfa> function could be used instead, see
+ <seeguide marker="algorithm_details#poly1305">Algorithm Details</seeguide> in the User's Guide.
</item>
</list>
<p><c>Key</c> is the authentication key with a length according to the
<c>Type</c> and <c>SubType</c>.
The key length could be found with the
- <seealso marker="#hash_info-1">hash_info/1</seealso> (<c>hmac</c>) for and
- <seealso marker="#cipher_info-1">cipher_info/1</seealso> (<c>cmac</c>)
+ <seemfa marker="#hash_info/1">hash_info/1</seemfa> (<c>hmac</c>) for and
+ <seemfa marker="#cipher_info/1">cipher_info/1</seemfa> (<c>cmac</c>)
functions. For <c>poly1305</c> the key length is 32 bytes. Note that
the cryptographic quality of the key is not checked.
</p>
<p>The returned <c>State</c> should be used in one or more subsequent calls to
- <seealso marker="#mac_update-2">mac_update/2</seealso>.
+ <seemfa marker="#mac_update/2">mac_update/2</seemfa>.
The MAC value is finally returned by calling
- <seealso marker="#mac_final-1">mac_final/1</seealso> or
- <seealso marker="#mac_finalN-2">mac_finalN/2</seealso>.
+ <seemfa marker="#mac_final/1">mac_final/1</seemfa> or
+ <seemfa marker="#mac_finalN/2">mac_finalN/2</seemfa>.
</p>
- <p>See <seealso marker="crypto:new_api#example-of-mac_init-mac_update-and-mac_final">
- examples in the User's Guide.</seealso>
+ <p>See <seeguide marker="crypto:new_api#example-of-mac_init-mac_update-and-mac_final">
+ examples in the User's Guide.</seeguide>
</p>
</desc>
</func>
@@ -936,8 +1062,8 @@
could be of any length.
</p>
<p>The <c>State0</c> is the State value originally from a MAC init function, that is
- <seealso marker="#mac_init-2">mac_init/2</seealso>,
- <seealso marker="#mac_init-3">mac_init/3</seealso> or
+ <seemfa marker="#mac_init/2">mac_init/2</seemfa>,
+ <seemfa marker="#mac_init/3">mac_init/3</seemfa> or
a previous call of <c>mac_update/2</c>.
The value <c>State0</c> is returned unchanged by the function as <c>State</c>.
</p>
@@ -950,10 +1076,10 @@
<desc>
<p>Finalizes the MAC operation referenced by <c>State</c>. The <c>Mac</c> result will have
a default length depending on the <c>Type</c> and <c>SubType</c> in the
- <seealso marker="#mac_init-3">mac_init/2,3</seealso> call.
- To set a shorter length, use <seealso marker="#mac_finalN-2">mac_finalN/2</seealso> instead.
+ <seemfa marker="#mac_init/3">mac_init/2,3</seemfa> call.
+ To set a shorter length, use <seemfa marker="#mac_finalN/2">mac_finalN/2</seemfa> instead.
The default length is documented in
- <seealso marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seealso>
+ <seeguide marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seeguide>
in the User's Guide.
</p>
</desc>
@@ -971,18 +1097,19 @@
that shorter length instead.
</p>
<p>The max <c>MacLength</c> is documented in
- <seealso marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seealso>
+ <seeguide marker="algorithm_details#message-authentication-codes--macs-">Algorithm Details</seeguide>
in the User's Guide.
</p>
</desc>
</func>
</funcs>
- <section>
- <title>API kept from previous versions</title>
- </section>
+
<funcs>
+ <fsdescription>
+ <title>API kept from previous versions</title>
+ </fsdescription>
<func>
<name name="bytes_to_integer" arity="1" since="OTP R16B01"/>
<fsummary>Convert binary representation, of an integer, to an Erlang integer.</fsummary>
@@ -997,7 +1124,7 @@
<fsummary>Computes the shared secret</fsummary>
<desc>
<p>Computes the shared secret from the private key and the other party's public key.
- See also <seealso marker="public_key:public_key#compute_key-2">public_key:compute_key/2</seealso>
+ See also <seemfa marker="public_key:public_key#compute_key/2">public_key:compute_key/2</seemfa>
</p>
</desc>
</func>
@@ -1017,7 +1144,7 @@
<fsummary>Generates a public key of type <c>Type</c></fsummary>
<desc>
<p>Generates a public key of type <c>Type</c>.
- See also <seealso marker="public_key:public_key#generate_key-1">public_key:generate_key/1</seealso>.
+ See also <seemfa marker="public_key:public_key#generate_key/1">public_key:generate_key/1</seemfa>.
May raise exception:
</p>
<list type="bulleted">
@@ -1049,7 +1176,7 @@
<desc>
<p>Initializes the context for streaming hash operations. <c>Type</c> determines
which digest to use. The returned context should be used as argument
- to <seealso marker="#hash_update-2">hash_update</seealso>.</p>
+ to <seemfa marker="#hash_update/2">hash_update</seemfa>.</p>
<p>May raise exception <c>error:notsup</c> in case the chosen <c>Type</c>
is not supported by the underlying libcrypto implementation.</p>
</desc>
@@ -1060,10 +1187,10 @@
<fsummary></fsummary>
<desc>
<p>Updates the digest represented by <c>Context</c> using the given <c>Data</c>. <c>Context</c>
- must have been generated using <seealso marker="#hash_init-1">hash_init</seealso>
+ must have been generated using <seemfa marker="#hash_init/1">hash_init</seemfa>
or a previous call to this function. <c>Data</c> can be any length. <c>NewContext</c>
must be passed into the next call to <c>hash_update</c>
- or <seealso marker="#hash_final-1">hash_final</seealso>.</p>
+ or <seemfa marker="#hash_final/1">hash_final</seemfa>.</p>
</desc>
</func>
@@ -1072,7 +1199,7 @@
<fsummary></fsummary>
<desc>
<p>Finalizes the hash operation referenced by <c>Context</c> returned
- from a previous call to <seealso marker="#hash_update-2">hash_update</seealso>.
+ from a previous call to <seemfa marker="#hash_update/2">hash_update</seemfa>.
The size of <c>Digest</c> is determined by the type of hash
function used to generate it.</p>
</desc>
@@ -1088,13 +1215,13 @@
running in FIPS mode) or <c>not_enabled</c>. For other builds
this value is always <c>not_supported</c>.
</p>
- <p>See <seealso marker="#enable_fips_mode-1">enable_fips_mode/1</seealso> about how to enable
+ <p>See <seemfa marker="#enable_fips_mode/1">enable_fips_mode/1</seemfa> about how to enable
FIPS mode.
</p>
<warning>
<p>In FIPS mode all non-FIPS compliant algorithms are
disabled and raise exception <c>error:notsup</c>. Check
- <seealso marker="#supports-0">supports</seealso> that in
+ <seemfa marker="#supports/0">supports</seemfa> that in
FIPS mode returns the restricted list of available
algorithms.</p>
</warning>
@@ -1111,7 +1238,7 @@
<p>Note that to enable FIPS mode succesfully, OTP must be built with the configure option <c>--enable-fips</c>,
and the underlying libcrypto must also support FIPS.
</p>
- <p>See also <seealso marker="#info_fips-0">info_fips/0</seealso>.
+ <p>See also <seemfa marker="#info_fips/0">info_fips/0</seemfa>.
</p>
</desc>
</func>
@@ -1144,7 +1271,7 @@
<p>Provides a map with information about block_size, size and possibly other properties of the
hash algorithm in question.
</p>
- <p>For a list of supported hash algorithms, see <seealso marker="#supports-0">supports/0</seealso>.
+ <p>For a list of supported hash algorithms, see <seemfa marker="#supports/0">supports/0</seemfa>.
</p>
</desc>
</func>
@@ -1165,7 +1292,7 @@
<p>Always use a <c>Type</c> with an explicit key length,
</p>
</note>
- <p>For a list of supported cipher algorithms, see <seealso marker="#supports-0">supports/0</seealso>.
+ <p>For a list of supported cipher algorithms, see <seemfa marker="#supports/0">supports/0</seemfa>.
</p>
</desc>
</func>
@@ -1196,11 +1323,11 @@
<fsummary>Decrypts CipherText using the private Key.</fsummary>
<desc>
<p>Decrypts the <c>CipherText</c>, encrypted with
- <seealso marker="#public_encrypt-4">public_encrypt/4</seealso> (or equivalent function)
+ <seemfa marker="#public_encrypt/4">public_encrypt/4</seemfa> (or equivalent function)
using the <c>PrivateKey</c>, and returns the
plaintext (message digest). This is a low level signature verification operation
used for instance by older versions of the SSL protocol.
- See also <seealso marker="public_key:public_key#decrypt_private-2">public_key:decrypt_private/[2,3]</seealso>
+ See also <seemfa marker="public_key:public_key#decrypt_private/2">public_key:decrypt_private/[2,3]</seemfa>
</p>
</desc>
</func>
@@ -1212,8 +1339,8 @@
<p>Encrypts the <c>PlainText</c> using the <c>PrivateKey</c>
and returns the ciphertext. This is a low level signature operation
used for instance by older versions of the SSL protocol. See
- also <seealso
- marker="public_key:public_key#encrypt_private-2">public_key:encrypt_private/[2,3]</seealso>
+ also <seemfa
+ marker="public_key:public_key#encrypt_private/2">public_key:encrypt_private/[2,3]</seemfa>
</p>
</desc>
</func>
@@ -1223,11 +1350,11 @@
<fsummary>Decrypts CipherText using the public Key.</fsummary>
<desc>
<p>Decrypts the <c>CipherText</c>, encrypted with
- <seealso marker="#private_encrypt-4">private_encrypt/4</seealso>(or equivalent function)
+ <seemfa marker="#private_encrypt/4">private_encrypt/4</seemfa>(or equivalent function)
using the <c>PrivateKey</c>, and returns the
plaintext (message digest). This is a low level signature verification operation
used for instance by older versions of the SSL protocol.
- See also <seealso marker="public_key:public_key#decrypt_public-2">public_key:decrypt_public/[2,3]</seealso>
+ See also <seemfa marker="public_key:public_key#decrypt_public/2">public_key:decrypt_public/[2,3]</seemfa>
</p>
</desc>
</func>
@@ -1238,8 +1365,8 @@
<desc>
<p>Encrypts the <c>PlainText</c> (message digest) using the <c>PublicKey</c>
and returns the <c>CipherText</c>. This is a low level signature operation
- used for instance by older versions of the SSL protocol. See also <seealso
- marker="public_key:public_key#encrypt_public-2">public_key:encrypt_public/[2,3]</seealso>
+ used for instance by older versions of the SSL protocol. See also <seemfa
+ marker="public_key:public_key#encrypt_public/2">public_key:encrypt_public/[2,3]</seemfa>
</p>
</desc>
</func>
@@ -1252,7 +1379,7 @@
RAND_seed function from openssl. Only use this if the system
you are running on does not have enough "randomness" built in.
Normally this is when
- <seealso marker="#strong_rand_bytes/1">strong_rand_bytes/1</seealso>
+ <seemfa marker="#strong_rand_bytes/1">strong_rand_bytes/1</seemfa>
raises <c>error:low_entropy</c></p>
</desc>
</func>
@@ -1305,17 +1432,17 @@
<desc>
<p>
Creates state object for
- <seealso marker="stdlib:rand">random number generation</seealso>,
+ <seeerl marker="stdlib:rand">random number generation</seeerl>,
in order to generate cryptographically strong random numbers
(based on OpenSSL's <c>BN_rand_range</c>),
and saves it in the process dictionary before returning it as well.
See also
- <seealso marker="stdlib:rand#seed-1">rand:seed/1</seealso> and
- <seealso marker="#rand_seed_s-0">rand_seed_s/0</seealso>.
+ <seemfa marker="stdlib:rand#seed/1">rand:seed/1</seemfa> and
+ <seemfa marker="#rand_seed_s/0">rand_seed_s/0</seemfa>.
</p>
<p>
When using the state object from this function the
- <seealso marker="stdlib:rand">rand</seealso> functions using it
+ <seeerl marker="stdlib:rand">rand</seeerl> functions using it
may raise exception <c>error:low_entropy</c> in case the random generator
failed due to lack of secure "randomness".
</p>
@@ -1333,15 +1460,15 @@ _FloatValue = rand:uniform(). % [0.0; 1.0[</pre>
<desc>
<p>
Creates state object for
- <seealso marker="stdlib:rand">random number generation</seealso>,
+ <seeerl marker="stdlib:rand">random number generation</seeerl>,
in order to generate cryptographically strongly random numbers
(based on OpenSSL's <c>BN_rand_range</c>).
See also
- <seealso marker="stdlib:rand#seed_s-1">rand:seed_s/1</seealso>.
+ <seemfa marker="stdlib:rand#seed_s/1">rand:seed_s/1</seemfa>.
</p>
<p>
When using the state object from this function the
- <seealso marker="stdlib:rand">rand</seealso> functions using it
+ <seeerl marker="stdlib:rand">rand</seeerl> functions using it
may raise exception <c>error:low_entropy</c> in case the random generator
failed due to lack of secure "randomness".
</p>
@@ -1350,7 +1477,7 @@ _FloatValue = rand:uniform(). % [0.0; 1.0[</pre>
The state returned from this function cannot be used
to get a reproducable random sequence as from
the other
- <seealso marker="stdlib:rand">rand</seealso>
+ <seeerl marker="stdlib:rand">rand</seeerl>
functions,
since reproducability does not match cryptographically safe.
</p>
@@ -1372,16 +1499,16 @@ _FloatValue = rand:uniform(). % [0.0; 1.0[</pre>
<marker id="rand_seed_alg-1" />
<p>
Creates state object for
- <seealso marker="stdlib:rand">random number generation</seealso>,
+ <seeerl marker="stdlib:rand">random number generation</seeerl>,
in order to generate cryptographically strong random numbers,
and saves it in the process dictionary before returning it as well.
See also
- <seealso marker="stdlib:rand#seed-1">rand:seed/1</seealso> and
- <seealso marker="#rand_seed_alg_s-1">rand_seed_alg_s/1</seealso>.
+ <seemfa marker="stdlib:rand#seed/1">rand:seed/1</seemfa> and
+ <seemfa marker="#rand_seed_alg_s/1">rand_seed_alg_s/1</seemfa>.
</p>
<p>
When using the state object from this function the
- <seealso marker="stdlib:rand">rand</seealso> functions using it
+ <seeerl marker="stdlib:rand">rand</seeerl> functions using it
may raise exception <c>error:low_entropy</c> in case the random generator
failed due to lack of secure "randomness".
</p>
@@ -1403,11 +1530,11 @@ _FloatValue = rand:uniform(). % [0.0; 1.0[</pre>
<marker id="rand_seed_alg-2" />
<p>
Creates a state object for
- <seealso marker="stdlib:rand">random number generation</seealso>,
+ <seeerl marker="stdlib:rand">random number generation</seeerl>,
in order to generate cryptographically unpredictable random numbers,
and saves it in the process dictionary before returning it as well.
See also
- <seealso marker="#rand_seed_alg_s-2">rand_seed_alg_s/2</seealso>.
+ <seemfa marker="#rand_seed_alg_s/2">rand_seed_alg_s/2</seemfa>.
</p>
<p><em>Example</em></p>
<pre>
@@ -1431,14 +1558,14 @@ FloatValue = rand:uniform(). % again
<marker id="rand_seed_alg_s-1" />
<p>
Creates state object for
- <seealso marker="stdlib:rand">random number generation</seealso>,
+ <seeerl marker="stdlib:rand">random number generation</seeerl>,
in order to generate cryptographically strongly random numbers.
See also
- <seealso marker="stdlib:rand#seed_s-1">rand:seed_s/1</seealso>.
+ <seemfa marker="stdlib:rand#seed_s/1">rand:seed_s/1</seemfa>.
</p>
<p>
If <c>Alg</c> is <c>crypto</c> this function behaves exactly like
- <seealso marker="#rand_seed_s-0">rand_seed_s/0</seealso>.
+ <seemfa marker="#rand_seed_s/0">rand_seed_s/0</seemfa>.
</p>
<p>
If <c>Alg</c> is <c>crypto_cache</c> this function
@@ -1448,19 +1575,19 @@ FloatValue = rand:uniform(). % again
</p>
<p>
When using the state object from this function the
- <seealso marker="stdlib:rand">rand</seealso> functions using it
+ <seeerl marker="stdlib:rand">rand</seeerl> functions using it
may raise exception <c>error:low_entropy</c> in case the random generator
failed due to lack of secure "randomness".
</p>
<p>
The cache size can be changed from its default value using the
- <seealso marker="crypto_app">
+ <seeapp marker="crypto_app">
crypto app's
- </seealso> configuration parameter <c>rand_cache_size</c>.
+ </seeapp> configuration parameter <c>rand_cache_size</c>.
</p>
<p>
When using the state object from this function the
- <seealso marker="stdlib:rand">rand</seealso> functions using it
+ <seeerl marker="stdlib:rand">rand</seeerl> functions using it
may throw exception <c>low_entropy</c> in case the random generator
failed due to lack of secure "randomness".
</p>
@@ -1469,7 +1596,7 @@ FloatValue = rand:uniform(). % again
The state returned from this function cannot be used
to get a reproducable random sequence as from
the other
- <seealso marker="stdlib:rand">rand</seealso>
+ <seeerl marker="stdlib:rand">rand</seeerl>
functions,
since reproducability does not match cryptographically safe.
</p>
@@ -1495,14 +1622,14 @@ FloatValue = rand:uniform(). % again
<marker id="rand_seed_alg_s-2" />
<p>
Creates a state object for
- <seealso marker="stdlib:rand">random number generation</seealso>,
+ <seeerl marker="stdlib:rand">random number generation</seeerl>,
in order to generate cryptographically unpredictable random numbers.
See also
- <seealso marker="#rand_seed_alg-1">rand_seed_alg/1</seealso>.
+ <seemfa marker="#rand_seed_alg/1">rand_seed_alg/1</seemfa>.
</p>
<p>
To get a long period the Xoroshiro928 generator from the
- <seealso marker="stdlib:rand">rand</seealso>
+ <seeerl marker="stdlib:rand">rand</seeerl>
module is used as a counter (with period 2^928 - 1)
and the generator states are scrambled through AES
to create 58-bit pseudo random values.
@@ -1518,7 +1645,7 @@ FloatValue = rand:uniform(). % again
<item>
<p>
If you need cryptographically strong random numbers use
- <seealso marker="#rand_seed_alg_s-1">rand_seed_alg_s/1</seealso>
+ <seemfa marker="#rand_seed_alg_s/1">rand_seed_alg_s/1</seemfa>
with <c>Alg =:= crypto</c> or <c>Alg =:= crypto_cache</c>.
</p>
</item>
@@ -1531,22 +1658,22 @@ FloatValue = rand:uniform(). % again
<p>
If you do not need the statistical quality of this function,
there are faster algorithms in the
- <seealso marker="stdlib:rand">rand</seealso>
+ <seeerl marker="stdlib:rand">rand</seeerl>
module.
</p>
</item>
</list>
<p>
Thanks to the used generator the state object supports the
- <seealso marker="stdlib:rand#jump-0"><c>rand:jump/0,1</c></seealso>
+ <seemfa marker="stdlib:rand#jump/0"><c>rand:jump/0,1</c></seemfa>
function with distance 2^512.
</p>
<p>
Numbers are generated in batches and cached for speed reasons.
The cache size can be changed from its default value using the
- <seealso marker="crypto_app">
+ <seeapp marker="crypto_app">
crypto app's
- </seealso> configuration parameter <c>rand_cache_size</c>.
+ </seeapp> configuration parameter <c>rand_cache_size</c>.
</p>
</desc>
</func>
@@ -1578,7 +1705,7 @@ FloatValue = rand:uniform(). % again
digest (plaintext).</p>
<p>Algorithm <c>dss</c> can only be used together with digest type
<c>sha</c>.</p>
- <p>See also <seealso marker="public_key:public_key#sign-3">public_key:sign/3</seealso>.</p>
+ <p>See also <seemfa marker="public_key:public_key#sign/3">public_key:sign/3</seemfa>.</p>
</desc>
</func>
@@ -1594,16 +1721,17 @@ FloatValue = rand:uniform(). % again
<p>Algorithm <c>dss</c> can only be used together with digest type
<c>sha</c>.</p>
- <p>See also <seealso marker="public_key:public_key#verify-4">public_key:verify/4</seealso>.</p>
+ <p>See also <seemfa marker="public_key:public_key#verify/4">public_key:verify/4</seemfa>.</p>
</desc>
</func>
</funcs>
- <section>
- <title>Engine API</title>
- </section>
+
<funcs>
+ <fsdescription>
+ <title>Engine API</title>
+ </fsdescription>
<!-- Engine functions -->
<func>
<name name="privkey_to_pubkey" arity="2" since="OTP 20.2"/>
@@ -1627,7 +1755,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1649,7 +1777,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1669,7 +1797,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1689,7 +1817,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1709,7 +1837,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1815,7 +1943,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
<p>
@@ -1841,7 +1969,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1864,7 +1992,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1887,7 +2015,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1908,7 +2036,7 @@ FloatValue = rand:uniform(). % again
no engine support in the underlying OpenSSL implementation.
</p>
<p>
- See also the chapter <seealso marker="crypto:engine_load#engine_load">Engine Load</seealso>
+ See also the chapter <seeguide marker="crypto:engine_load#engine_load">Engine Load</seeguide>
in the User's Guide.
</p>
</desc>
@@ -1916,21 +2044,21 @@ FloatValue = rand:uniform(). % again
</funcs>
-<section>
- <title>Old API</title>
-</section>
<funcs>
+ <fsdescription>
+ <title>Old API</title>
+ </fsdescription>
<func>
<name name="block_encrypt" arity="3" since="OTP 18.0"/>
<fsummary>Encrypt <c>PlainText</c> according to <c>Type</c> block cipher</fsummary>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the-new-api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the-new-api</seeguide>.</p></dont>
<p>Encrypt <c>PlainText</c> according to <c>Type</c> block cipher.</p>
<p>May raise exception <c>error:notsup</c> in case the chosen <c>Type</c>
is not supported by the underlying libcrypto implementation.</p>
<p>For keylengths and blocksizes see the
- <seealso marker="crypto:algorithm_details#ciphers">User's Guide</seealso>.
+ <seeguide marker="crypto:algorithm_details#ciphers">User's Guide</seeguide>.
</p>
</desc>
</func>
@@ -1939,12 +2067,12 @@ FloatValue = rand:uniform(). % again
<name name="block_decrypt" arity="3" since="OTP 18.0"/>
<fsummary>Decrypt <c>CipherText</c> according to <c>Type</c> block cipher</fsummary>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p>Decrypt <c>CipherText</c> according to <c>Type</c> block cipher.</p>
<p>May raise exception <c>error:notsup</c> in case the chosen <c>Type</c>
is not supported by the underlying libcrypto implementation.</p>
<p>For keylengths and blocksizes see the
- <seealso marker="crypto:algorithm_details#ciphers">User's Guide</seealso>.
+ <seeguide marker="crypto:algorithm_details#ciphers">User's Guide</seeguide>.
</p>
</desc>
</func>
@@ -1955,16 +2083,16 @@ FloatValue = rand:uniform(). % again
<name since="OTP R16B01">block_encrypt(aes_gcm | aes_ccm, Key, Ivec, {AAD, PlainText, TagLength}) -> {CipherText, CipherTag} | Error </name>
<fsummary>Encrypt <c>PlainText</c> according to <c>Type</c> block cipher</fsummary>
<type>
- <v>Type = <seealso marker="#type-block_cipher_with_iv">block_cipher_with_iv()</seealso></v>
- <v>AeadType = <seealso marker="#type-aead_cipher">aead_cipher()</seealso></v>
- <v>Key = <seealso marker="#type-key">key()</seealso> | <seealso marker="#type-des3_key">des3_key()</seealso></v>
+ <v>Type = <seetype marker="#block_cipher_with_iv">block_cipher_with_iv()</seetype></v>
+ <v>AeadType = <seetype marker="#aead_cipher">aead_cipher()</seetype></v>
+ <v>Key = <seetype marker="#key">key()</seetype> | <seetype marker="#des3_key">des3_key()</seetype></v>
<v>PlainText = iodata()</v>
<v>AAD = IVec = CipherText = CipherTag = binary()</v>
<v>TagLength = 1..16</v>
- <v>Error = <seealso marker="#type-run_time_error">run_time_error()</seealso></v>
+ <v>Error = <seetype marker="#run_time_error">run_time_error()</seetype></v>
</type>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p>Encrypt <c>PlainText</c> according to <c>Type</c> block cipher.
<c>IVec</c> is an arbitrary initializing vector.</p>
<p>In AEAD (Authenticated Encryption with Associated Data) mode, encrypt
@@ -1973,7 +2101,7 @@ FloatValue = rand:uniform(). % again
<p>May raise exception <c>error:notsup</c> in case the chosen <c>Type</c>
is not supported by the underlying libcrypto implementation.</p>
<p>For keylengths, iv-sizes and blocksizes see the
- <seealso marker="crypto:algorithm_details#ciphers">User's Guide</seealso>.
+ <seeguide marker="crypto:algorithm_details#ciphers">User's Guide</seeguide>.
</p>
</desc>
</func>
@@ -1983,16 +2111,16 @@ FloatValue = rand:uniform(). % again
<name since="OTP R16B01">block_decrypt(AeadType, Key, Ivec, {AAD, CipherText, CipherTag}) -> PlainText | Error</name>
<fsummary>Decrypt <c>CipherText</c> according to <c>Type</c> block cipher</fsummary>
<type>
- <v>Type = <seealso marker="#type-block_cipher_with_iv">block_cipher_with_iv()</seealso></v>
- <v>AeadType = <seealso marker="#type-aead_cipher">aead_cipher()</seealso></v>
- <v>Key = <seealso marker="#type-key">key()</seealso> | <seealso marker="#type-des3_key">des3_key()</seealso></v>
+ <v>Type = <seetype marker="#block_cipher_with_iv">block_cipher_with_iv()</seetype></v>
+ <v>AeadType = <seetype marker="#aead_cipher">aead_cipher()</seetype></v>
+ <v>Key = <seetype marker="#key">key()</seetype> | <seetype marker="#des3_key">des3_key()</seetype></v>
<v>PlainText = iodata()</v>
<v>AAD = IVec = CipherText = CipherTag = binary()</v>
- <v>Error = BadTag | <seealso marker="#type-run_time_error">run_time_error()</seealso></v>
+ <v>Error = BadTag | <seetype marker="#run_time_error">run_time_error()</seetype></v>
<v>BadTag = error</v>
</type>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p>Decrypt <c>CipherText</c> according to <c>Type</c> block cipher.
<c>IVec</c> is an arbitrary initializing vector.</p>
<p>In AEAD (Authenticated Encryption with Associated Data) mode, decrypt
@@ -2002,7 +2130,7 @@ FloatValue = rand:uniform(). % again
<p>May raise exception <c>error:notsup</c> in case the chosen <c>Type</c>
is not supported by the underlying libcrypto implementation.</p>
<p>For keylengths, iv-sizes and blocksizes see the
- <seealso marker="crypto:algorithm_details#ciphers">User's Guide</seealso>.
+ <seeguide marker="crypto:algorithm_details#ciphers">User's Guide</seeguide>.
</p>
</desc>
</func>
@@ -2011,12 +2139,12 @@ FloatValue = rand:uniform(). % again
<name name="stream_init" arity="2" since="OTP R16B01"/>
<fsummary></fsummary>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p>Initializes the state for use in RC4 stream encryption
- <seealso marker="#stream_encrypt-2">stream_encrypt</seealso> and
- <seealso marker="#stream_decrypt-2">stream_decrypt</seealso></p>
+ <seemfa marker="#stream_encrypt/2">stream_encrypt</seemfa> and
+ <seemfa marker="#stream_decrypt/2">stream_decrypt</seemfa></p>
<p>For keylengths see the
- <seealso marker="crypto:algorithm_details#ciphers">User's Guide</seealso>.
+ <seeguide marker="crypto:algorithm_details#ciphers">User's Guide</seeguide>.
</p>
</desc>
</func>
@@ -2025,14 +2153,14 @@ FloatValue = rand:uniform(). % again
<name name="stream_init" arity="3" since="OTP R16B01"/>
<fsummary></fsummary>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p>Initializes the state for use in streaming AES encryption using Counter mode (CTR).
<c>Key</c> is the AES key and must be either 128, 192, or 256 bits long. <c>IVec</c> is
an arbitrary initializing vector of 128 bits (16 bytes). This state is for use with
- <seealso marker="#stream_encrypt-2">stream_encrypt</seealso> and
- <seealso marker="#stream_decrypt-2">stream_decrypt</seealso>.</p>
+ <seemfa marker="#stream_encrypt/2">stream_encrypt</seemfa> and
+ <seemfa marker="#stream_decrypt/2">stream_decrypt</seemfa>.</p>
<p>For keylengths and iv-sizes see the
- <seealso marker="crypto:algorithm_details#ciphers">User's Guide</seealso>.
+ <seeguide marker="crypto:algorithm_details#ciphers">User's Guide</seeguide>.
</p>
</desc>
</func>
@@ -2041,10 +2169,10 @@ FloatValue = rand:uniform(). % again
<name name="stream_encrypt" arity="2" since="OTP R16B01"/>
<fsummary></fsummary>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p>Encrypts <c>PlainText</c> according to the stream cipher <c>Type</c> specified in stream_init/3.
<c>Text</c> can be any number of bytes. The initial <c>State</c> is created using
- <seealso marker="#stream_init-2">stream_init</seealso>.
+ <seemfa marker="#stream_init/2">stream_init</seemfa>.
<c>NewState</c> must be passed into the next call to <c>stream_encrypt</c>.</p>
</desc>
</func>
@@ -2053,10 +2181,10 @@ FloatValue = rand:uniform(). % again
<name name="stream_decrypt" arity="2" since="OTP R16B01"/>
<fsummary></fsummary>
<desc>
- <dont><p>Don't use this function for new programs! Use <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <dont><p>Don't use this function for new programs! Use <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p>Decrypts <c>CipherText</c> according to the stream cipher <c>Type</c> specified in stream_init/3.
<c>PlainText</c> can be any number of bytes. The initial <c>State</c> is created using
- <seealso marker="#stream_init-2">stream_init</seealso>.
+ <seemfa marker="#stream_init/2">stream_init</seemfa>.
<c>NewState</c> must be passed into the next call to <c>stream_decrypt</c>.</p>
</desc>
</func>
@@ -2066,11 +2194,11 @@ FloatValue = rand:uniform(). % again
<fsummary>Provide a list of available crypto algorithms.</fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#supports-1">supports/1</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p></dont>
+ <seemfa marker="crypto#supports/1">supports/1</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p></dont>
<p> Can be used to determine which crypto algorithms that are supported
by the underlying libcrypto library</p>
- <p>See <seealso marker="#hash_info-1">hash_info/1</seealso> and <seealso marker="#cipher_info-1">cipher_info/1</seealso>
+ <p>See <seemfa marker="#hash_info/1">hash_info/1</seemfa> and <seemfa marker="#cipher_info/1">cipher_info/1</seemfa>
for information about the hash and cipher algorithms.
</p>
</desc>
@@ -2082,9 +2210,9 @@ FloatValue = rand:uniform(). % again
<fsummary></fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#mac-4">mac/4</seealso> or
- <seealso marker="crypto#macN-5">macN/5</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p>
+ <seemfa marker="crypto#mac/4">mac/4</seemfa> or
+ <seemfa marker="crypto#macN/5">macN/5</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p>
</dont>
<p>Computes a HMAC of type <c>Type</c> from <c>Data</c> using
<c>Key</c> as the authentication key.</p> <p><c>MacLength</c>
@@ -2097,8 +2225,8 @@ FloatValue = rand:uniform(). % again
<fsummary></fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#mac_init-3">mac_init/3</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p>
+ <seemfa marker="crypto#mac_init/3">mac_init/3</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p>
</dont>
<p>Initializes the context for streaming HMAC operations. <c>Type</c> determines
which hash function to use in the HMAC operation. <c>Key</c> is the authentication
@@ -2111,15 +2239,15 @@ FloatValue = rand:uniform(). % again
<fsummary></fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#mac_update-2">mac_update/2</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p>
+ <seemfa marker="crypto#mac_update/2">mac_update/2</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p>
</dont>
<p>Updates the HMAC represented by <c>Context</c> using the given <c>Data</c>. <c>Context</c>
must have been generated using an HMAC init function (such as
- <seealso marker="#hmac_init-2">hmac_init</seealso>). <c>Data</c> can be any length. <c>NewContext</c>
+ <seemfa marker="#hmac_init/2">hmac_init</seemfa>). <c>Data</c> can be any length. <c>NewContext</c>
must be passed into the next call to <c>hmac_update</c>
- or to one of the functions <seealso marker="#hmac_final-1">hmac_final</seealso> and
- <seealso marker="#hmac_final_n-2">hmac_final_n</seealso>
+ or to one of the functions <seemfa marker="#hmac_final/1">hmac_final</seemfa> and
+ <seemfa marker="#hmac_final_n/2">hmac_final_n</seemfa>
</p>
<warning><p>Do not use a <c>Context</c> as argument in more than one
call to hmac_update or hmac_final. The semantics of reusing old contexts
@@ -2134,8 +2262,8 @@ FloatValue = rand:uniform(). % again
<fsummary></fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#mac_final-1">mac_final/1</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p>
+ <seemfa marker="crypto#mac_final/1">mac_final/1</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p>
</dont>
<p>Finalizes the HMAC operation referenced by <c>Context</c>. The size of the resultant MAC is
determined by the type of hash function used to generate it.</p>
@@ -2147,8 +2275,8 @@ FloatValue = rand:uniform(). % again
<fsummary></fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#mac_finalN-2">mac_finalN/2</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p>
+ <seemfa marker="crypto#mac_finalN/2">mac_finalN/2</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p>
</dont>
<p>Finalizes the HMAC operation referenced by <c>Context</c>. <c>HashLen</c> must be greater than
zero. <c>Mac</c> will be a binary with at most <c>HashLen</c> bytes. Note that if HashLen is greater than the actual number of bytes returned from the underlying hash, the returned hash will have fewer than <c>HashLen</c> bytes.</p>
@@ -2161,9 +2289,9 @@ FloatValue = rand:uniform(). % again
<fsummary>Calculates the Cipher-based Message Authentication Code.</fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#mac-4">mac/4</seealso> or
- <seealso marker="crypto#macN-5">macN/5</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p>
+ <seemfa marker="crypto#mac/4">mac/4</seemfa> or
+ <seemfa marker="crypto#macN/5">macN/5</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p>
</dont>
<p>Computes a CMAC of type <c>Type</c> from <c>Data</c> using
<c>Key</c> as the authentication key.</p> <p><c>MacLength</c>
@@ -2176,9 +2304,9 @@ FloatValue = rand:uniform(). % again
<fsummary></fsummary>
<desc>
<dont><p>Don't use this function for new programs! Use
- <seealso marker="crypto#mac-3">mac/3</seealso> or
- <seealso marker="crypto#macN-4">macN/4</seealso> in
- <seealso marker="crypto:new_api">the new api</seealso>.</p>
+ <seemfa marker="crypto#mac/3">mac/3</seemfa> or
+ <seemfa marker="crypto#macN/4">macN/4</seemfa> in
+ <seeguide marker="crypto:new_api">the new api</seeguide>.</p>
</dont>
<p>Computes a POLY1305 message authentication code (<c>Mac</c>) from <c>Data</c> using
<c>Key</c> as the authentication key.</p>