File: Digest.html

package info (click to toggle)
ocaml-doc 4.11-2
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 20,580 kB
  • sloc: sh: 37; makefile: 11
file content (219 lines) | stat: -rw-r--r-- 12,017 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="Start" href="index.html">
<link rel="previous" href="Condition.html">
<link rel="next" href="Dynlink.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of extensions" rel=Appendix href="index_extensions.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Arg" rel="Chapter" href="Arg.html">
<link title="Array" rel="Chapter" href="Array.html">
<link title="ArrayLabels" rel="Chapter" href="ArrayLabels.html">
<link title="Bigarray" rel="Chapter" href="Bigarray.html">
<link title="Bool" rel="Chapter" href="Bool.html">
<link title="Buffer" rel="Chapter" href="Buffer.html">
<link title="Bytes" rel="Chapter" href="Bytes.html">
<link title="BytesLabels" rel="Chapter" href="BytesLabels.html">
<link title="Callback" rel="Chapter" href="Callback.html">
<link title="CamlinternalFormat" rel="Chapter" href="CamlinternalFormat.html">
<link title="CamlinternalFormatBasics" rel="Chapter" href="CamlinternalFormatBasics.html">
<link title="CamlinternalLazy" rel="Chapter" href="CamlinternalLazy.html">
<link title="CamlinternalMod" rel="Chapter" href="CamlinternalMod.html">
<link title="CamlinternalOO" rel="Chapter" href="CamlinternalOO.html">
<link title="Char" rel="Chapter" href="Char.html">
<link title="Complex" rel="Chapter" href="Complex.html">
<link title="Condition" rel="Chapter" href="Condition.html">
<link title="Digest" rel="Chapter" href="Digest.html">
<link title="Dynlink" rel="Chapter" href="Dynlink.html">
<link title="Ephemeron" rel="Chapter" href="Ephemeron.html">
<link title="Event" rel="Chapter" href="Event.html">
<link title="Filename" rel="Chapter" href="Filename.html">
<link title="Float" rel="Chapter" href="Float.html">
<link title="Format" rel="Chapter" href="Format.html">
<link title="Fun" rel="Chapter" href="Fun.html">
<link title="Gc" rel="Chapter" href="Gc.html">
<link title="Genlex" rel="Chapter" href="Genlex.html">
<link title="Hashtbl" rel="Chapter" href="Hashtbl.html">
<link title="Int" rel="Chapter" href="Int.html">
<link title="Int32" rel="Chapter" href="Int32.html">
<link title="Int64" rel="Chapter" href="Int64.html">
<link title="Lazy" rel="Chapter" href="Lazy.html">
<link title="Lexing" rel="Chapter" href="Lexing.html">
<link title="List" rel="Chapter" href="List.html">
<link title="ListLabels" rel="Chapter" href="ListLabels.html">
<link title="Map" rel="Chapter" href="Map.html">
<link title="Marshal" rel="Chapter" href="Marshal.html">
<link title="MoreLabels" rel="Chapter" href="MoreLabels.html">
<link title="Mutex" rel="Chapter" href="Mutex.html">
<link title="Nativeint" rel="Chapter" href="Nativeint.html">
<link title="Obj" rel="Chapter" href="Obj.html">
<link title="Ocaml_operators" rel="Chapter" href="Ocaml_operators.html">
<link title="Oo" rel="Chapter" href="Oo.html">
<link title="Option" rel="Chapter" href="Option.html">
<link title="Parsing" rel="Chapter" href="Parsing.html">
<link title="Printexc" rel="Chapter" href="Printexc.html">
<link title="Printf" rel="Chapter" href="Printf.html">
<link title="Queue" rel="Chapter" href="Queue.html">
<link title="Random" rel="Chapter" href="Random.html">
<link title="Result" rel="Chapter" href="Result.html">
<link title="Scanf" rel="Chapter" href="Scanf.html">
<link title="Seq" rel="Chapter" href="Seq.html">
<link title="Set" rel="Chapter" href="Set.html">
<link title="Spacetime" rel="Chapter" href="Spacetime.html">
<link title="Stack" rel="Chapter" href="Stack.html">
<link title="StdLabels" rel="Chapter" href="StdLabels.html">
<link title="Stdlib" rel="Chapter" href="Stdlib.html">
<link title="Str" rel="Chapter" href="Str.html">
<link title="Stream" rel="Chapter" href="Stream.html">
<link title="String" rel="Chapter" href="String.html">
<link title="StringLabels" rel="Chapter" href="StringLabels.html">
<link title="Sys" rel="Chapter" href="Sys.html">
<link title="Thread" rel="Chapter" href="Thread.html">
<link title="ThreadUnix" rel="Chapter" href="ThreadUnix.html">
<link title="Uchar" rel="Chapter" href="Uchar.html">
<link title="Unit" rel="Chapter" href="Unit.html">
<link title="Unix" rel="Chapter" href="Unix.html">
<link title="UnixLabels" rel="Chapter" href="UnixLabels.html">
<link title="Weak" rel="Chapter" href="Weak.html"><title>Digest</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Condition.html" title="Condition">Previous</a>
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;<a class="post" href="Dynlink.html" title="Dynlink">Next</a>
</div>
<h1>Module <a href="type_Digest.html">Digest</a></h1>

<pre><span id="MODULEDigest"><span class="keyword">module</span> Digest</span>: <code class="code"><span class="keyword">sig</span></code> <a href="Digest.html">..</a> <code class="code"><span class="keyword">end</span></code></pre><div class="info module top">
<div class="info-desc">
<p>MD5 message digest.</p>

<p>This module provides functions to compute 128-bit 'digests' of
   arbitrary-length strings or files. The digests are of cryptographic
   quality: it is very hard, given a digest, to forge a string having
   that digest. The algorithm used is MD5. This module should not be
   used for secure and sensitive cryptographic applications. For these
   kind of applications more recent and stronger cryptographic
   primitives should be used instead.</p>
</div>
</div>
<hr width="100%">

<pre><span id="TYPEt"><span class="keyword">type</span> <code class="type"></code>t</span> = <code class="type">string</code> </pre>
<div class="info ">
<div class="info-desc">
<p>The type of digests: 16-character strings.</p>
</div>
</div>


<pre><span id="VALcompare"><span class="keyword">val</span> compare</span> : <code class="type"><a href="Digest.html#TYPEt">t</a> -> <a href="Digest.html#TYPEt">t</a> -> int</code></pre><div class="info ">
<div class="info-desc">
<p>The comparison function for 16-character digest, with the same
    specification as <a href="Stdlib.html#VALcompare"><code class="code">compare</code></a> and the implementation
    shared with <a href="String.html#VALcompare"><code class="code"><span class="constructor">String</span>.compare</code></a>. Along with the type <code class="code">t</code>, this
    function <code class="code">compare</code> allows the module <code class="code"><span class="constructor">Digest</span></code> to be passed as
    argument to the functors <a href="Set.Make.html"><code class="code"><span class="constructor">Set</span>.<span class="constructor">Make</span></code></a> and <a href="Map.Make.html"><code class="code"><span class="constructor">Map</span>.<span class="constructor">Make</span></code></a>.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.00.0</li>
</ul>
</div>

<pre><span id="VALequal"><span class="keyword">val</span> equal</span> : <code class="type"><a href="Digest.html#TYPEt">t</a> -> <a href="Digest.html#TYPEt">t</a> -> bool</code></pre><div class="info ">
<div class="info-desc">
<p>The equal function for 16-character digest.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.03.0</li>
</ul>
</div>

<pre><span id="VALstring"><span class="keyword">val</span> string</span> : <code class="type">string -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p>Return the digest of the given string.</p>
</div>
</div>

<pre><span id="VALbytes"><span class="keyword">val</span> bytes</span> : <code class="type">bytes -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p>Return the digest of the given byte sequence.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.02.0</li>
</ul>
</div>

<pre><span id="VALsubstring"><span class="keyword">val</span> substring</span> : <code class="type">string -> int -> int -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Digest</span>.substring&nbsp;s&nbsp;ofs&nbsp;len</code> returns the digest of the substring
   of <code class="code">s</code> starting at index <code class="code">ofs</code> and containing <code class="code">len</code> characters.</p>
</div>
</div>

<pre><span id="VALsubbytes"><span class="keyword">val</span> subbytes</span> : <code class="type">bytes -> int -> int -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p><code class="code"><span class="constructor">Digest</span>.subbytes&nbsp;s&nbsp;ofs&nbsp;len</code> returns the digest of the subsequence
    of <code class="code">s</code> starting at index <code class="code">ofs</code> and containing <code class="code">len</code> bytes.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.02.0</li>
</ul>
</div>

<pre><span id="VALchannel"><span class="keyword">val</span> channel</span> : <code class="type"><a href="Stdlib.html#TYPEin_channel">in_channel</a> -> int -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p>If <code class="code">len</code> is nonnegative, <code class="code"><span class="constructor">Digest</span>.channel&nbsp;ic&nbsp;len</code> reads <code class="code">len</code>
   characters from channel <code class="code">ic</code> and returns their digest, or raises
   <code class="code"><span class="constructor">End_of_file</span></code> if end-of-file is reached before <code class="code">len</code> characters
   are read.  If <code class="code">len</code> is negative, <code class="code"><span class="constructor">Digest</span>.channel&nbsp;ic&nbsp;len</code> reads
   all characters from <code class="code">ic</code> until end-of-file is reached and return
   their digest.</p>
</div>
</div>

<pre><span id="VALfile"><span class="keyword">val</span> file</span> : <code class="type">string -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p>Return the digest of the file whose name is given.</p>
</div>
</div>

<pre><span id="VALoutput"><span class="keyword">val</span> output</span> : <code class="type"><a href="Stdlib.html#TYPEout_channel">out_channel</a> -> <a href="Digest.html#TYPEt">t</a> -> unit</code></pre><div class="info ">
<div class="info-desc">
<p>Write a digest on the given output channel.</p>
</div>
</div>

<pre><span id="VALinput"><span class="keyword">val</span> input</span> : <code class="type"><a href="Stdlib.html#TYPEin_channel">in_channel</a> -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p>Read a digest from the given input channel.</p>
</div>
</div>

<pre><span id="VALto_hex"><span class="keyword">val</span> to_hex</span> : <code class="type"><a href="Digest.html#TYPEt">t</a> -> string</code></pre><div class="info ">
<div class="info-desc">
<p>Return the printable hexadecimal representation of the given digest.</p>
</div>
<ul class="info-attributes">
<li><b>Raises</b> <code>Invalid_argument</code> if the argument is not exactly 16 bytes.</li>
</ul>
</div>

<pre><span id="VALfrom_hex"><span class="keyword">val</span> from_hex</span> : <code class="type">string -> <a href="Digest.html#TYPEt">t</a></code></pre><div class="info ">
<div class="info-desc">
<p>Convert a hexadecimal representation back into the corresponding digest.</p>
</div>
<ul class="info-attributes">
<li><b>Since</b> 4.00.0</li>
<li><b>Raises</b> <code>Invalid_argument</code> if the argument is not exactly 32 hexadecimal
   characters.</li>
</ul>
</div>
</body></html>