-
Notifications
You must be signed in to change notification settings - Fork 15
/
surfpcs.3
69 lines (61 loc) · 1.14 KB
/
surfpcs.3
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
.TH surfpcs 3
.SH NAME
surfpcs \- SURF protected counter sums
.SH SYNTAX
.B #include <surfpcs.h>
void \fBsurfpcs_init\fP(&\fIs\fR,\fIseed\fR);
void \fBsurfpcs_add\fP(&\fIs\fR,\fIbuf\fR,\fIlen\fR);
void \fBsurfpcs_out\fP(&\fIs\fR,\fIh\fR);
surfpcs \fIs\fR;
.br
uint32 \fIseed\fR[32];
.br
unsigned char *\fIbuf\fR;
.br
unsigned int \fIlen\fR;
.br
unsigned char \fIh\fR[SURFPCS_LEN];
.SH DESCRIPTION
.B surfpcs
converts a character string to a 256-bit output,
under control of a 1024-bit seed.
When the seed is secret,
.B surfpcs
appears to be indistinguishable from a completely random
variable-length-to-256-bit function.
Applying
.B surfpcs
takes three steps.
First, initialize a
.B surfpcs
variable,
.IR s ,
with
.BR surfpcs_init .
The seed will be recorded inside
.IR s .
Second, feed the input to
.BR surfpcs_add .
.I buf
is a pointer to
.I len
characters of input.
You can split the input across any number of
.B surfpcs_add
calls.
Third, call
.BR surfpcs_out .
The output will be placed into
.IR h ,
an array of
.B SURFPCS_LEN
bytes.
.B SURFPCS_LEN
is 32.
To apply
.B surfpcs
to another input you must call
.B surfpcs_init
again.
.SH "SEE ALSO"
surf(3)